2. Domande su TeX e sui suoi pacchetti di macro

Sono qui raccolte le domande su TeX e sui pacchetti di macro come LaTeX, ConTeXt, etc.

1. Metadomande
2.1.1. Che cos'è TeX? Cosa sono LaTeX, ConTeXt, etc.?
2.1.2. Perché TeX e LaTeX si scrivono in codesto buffo modo?
2.1.3. Come si pronunciano le parole "TeX" e "LaTeX"?
2.1.4. Che cos'è LaTeX2e? Cos'è il LaTeX3 project team?
2.1.5. Che cos'è pdfTeX? Che cos'è pdfLaTeX?
2.1.6. Posso usare lo stesso sorgente sia per LaTeX che per pdfLaTeX? Come faccio?
2.1.7. Che cosa sono eTeX, eLaTeX, pdfeTeX, pdfeLaTeX, etc.?
2.1.8. Come posso sfruttare le innovazioni di eTeX senza usare direttamente le sue nuove primitive?
2.1.9. Che cos'è il progetto NTS?
2. Risorse in rete
2.2.1. Che cos'è uno "stile" (style file)? Che s'intende con "pacchetto"? e con "classe"?
2.2.2. Dove posso trovare quella tal macro per TeX, quel tale stile per LaTeX, quella tale fonte, etc.?
2.2.3. Che cos'è un sito CTAN? Come funziona?
2.2.4. Esiste un elenco di tutto il materiale contenuto nella CTAN?
3. Aspetti generali
2.3.1. TeX spezza le parole in modo strano quando le manda a capo. Cosa posso fare per evitarlo?
2.3.2. Come si può ottenere un documento con interlinea doppia?
2.3.3. Vorrei cambiare i margini della pagina. Come si fa?
2.3.4. Come faccio a stampare un libretto di formato A5 su carta di formato A4 da piegare?
2.3.5. È possibile "commentare" una parte di un documento in modo da non farla compilare nel DVI?
2.3.6. Ho provato a togliere la numerazione delle pagine, ma la prima pagina ha ancora il numero. Cosa posso fare?
2.3.7. Come si può fare in modo che i capitoli (le sezioni, etc.) non numerati, cioè quelli ottenuti con \chapter*, figurino nell'indice?
2.3.8. Com'è possibile numerare le equazioni e/o le figure e/o le tabelle all'interno di ogni sezione?
2.3.9. Come si fa a numerare la bibliografia usando cifre arabe senza le parentesi quadre oppure usando soprascritti?
2.3.10. Come faccio a trovare la larghezza di una lettera, una parola o una frase con TeX? E con LaTeX?
2.3.11. Come si fa a definire una nuova funzione matematica tipo \log?
2.3.12. Come si fa a mettere uno \sqrt in un \caption?
4. Dati e immagini
2.4.1. Come si fa ad inserire letteralmente un archivio esterno?
2.4.2. Come posso inserire in una tabella un archivio di dati separati da caratteri di tabulazione e ritorni di carrello?
2.4.3. Come faccio a inserire un'immagine nel mio documento?
2.4.4. Come faccio ad inserire due figure fianco a fianco con la stessa didascalia, distinguendole fra loro con una lettera o un numero?
5. Caratteri e fonti
2.5.1. Come faccio a inserire direttamente le lettere accentate? Si può?
2.5.2. Come si possono inserire i caratteri di citazione "«" e "»"?
2.5.3. Come si possono ottenere i simboli per i "numeri reali", i "numeri complessi", etc.?
2.5.4. Come faccio ad usare famiglie di fonti diverse da Computer Modern?
2.5.5. Cos'è NFSS?
2.5.6. Cos'è PSNFSS?
2.5.7. Quando creo un PDF il risultato è buono in fase di stampa, ma viene visualizzato molto male. Come mai?
2.5.8. Come faccio ad usare fonti PostScript vettoriali in un documento PostScript o PDF?
2.5.9. Come faccio ad inserire il simbolo dell'euro?
6. Classi e stili particolari
2.6.1. È possibile comporre musica con TeX? E se sì, come?
2.6.2. Si possono inserire diagrammi di Feynman? Come?
2.6.3. Si possono inserire formule chimiche? Come?
2.6.4. Dove posso trovare uno stile per scrivere una tesi?
2.6.5. Dove posso trovare uno stile per scrivere il mio Curriculum Vitæ?
7. Varie
2.7.1. Che correttore ortografico si può usare con un sorgente TeX?
2.7.2. È possibile convertire un documento dal formato "X" a TeX e viceversa?

1. Metadomande

2.1.1. Che cos'è TeX? Cosa sono LaTeX, ConTeXt, etc.?

Parafrasando il suo autore, Donald Ervin Knuth, TeX è un programma per la composizione di meravigliosi documenti, insostituibile specialmente per la creazione di quei documenti che contengono molte notazioni matematiche. Il professor Knuth ha disegnato anche una collezione di macro di uso generale che accompagna TeX: il cosiddetto "plain TeX".

LaTeX è un insieme di macro per TeX, originariamente scritte da Leslie Lamport, che rendono più semplice la composizione tipografica di un documento consentendo all'autore di concentrarsi sul contenuto e sulla struttura del documento stesso piuttosto che sull'apparenza visuale del prodotto finito.

ConTeXt è un pacchetto di macro per TeX, con finalità analoghe a LaTeX, sviluppato dalla società olandese Pragma ADE.

Oltre a LaTeX e ConTeXt, esistono molti altri pacchetti di macro, a cui qui non accenniamo per ragioni di brevità.

2.1.2. Perché TeX e LaTeX si scrivono in codesto buffo modo?

La ragione è molto semplice: il logo che Don Knuth ha scelto per identificare la sua creatura è formato dalle tre lettere "T", "E" e "X" affiancate, con la "E" posta leggermente più in basso rispetto alla "T" e alla "X". Nelle situazioni in cui non è tecnicamente possibile rappresentare correttamente questo logo, si usa scrivere "TeX", su suggerimento dello stesso Don Knuth, per richiamare alla mente quella "E" abbassata.

Il caso di LaTeX è identico: il logo scelto da Leslie Lamport è infatti costituito da una "L" ed una "A" anteposte al logo "TeX", con la lettera "A" più piccola e stavolta in posizione leggermente rialzata; di qui, per analogia, l'uso della grafia "LaTeX" nelle analoghe a quelle in cui si usa "TeX".

2.1.3. Come si pronunciano le parole "TeX" e "LaTeX"?

La domanda è tutt'altro che banale, soprattutto per un principiante: infatti la lettera "X" di "TeX" non si pronuncia affatto "ics", ma bensì come la la lettera greca "chi" nella radice greca "tau-epsilon-chi", che indica l'arte e la tecnica, da cui TeX stesso ha preso, non a caso, il nome. In effetti Don Knuth, prima di ufficializzare il nome "TeX" chiamava il suo programma proprio "tau-epsilon-chi".

Quanto a LaTeX, che oltre ad avere la stessa caratteristica di TeX è una parola bisillaba, tenete presente che l'accento è quello di una parola piana.

2.1.4. Che cos'è LaTeX2e? Cos'è il LaTeX3 project team?

LaTeX2e è la nuova versione di LaTeX, preparata e curata dal LaTeX3 project team, un gruppo di persone che si occupa di definire il futuro standard LaTeX. È quasi completamente compatibile con il precedente LaTeX 2.09, ma contiene molti aggiornamenti ed è definitivamente la versione da usare per ottenere i migliori risultati quanto a qualità di stampa, facilità d'uso e compatibilità futura. Particolarmente diversi tra le due versioni sono il supporto per le fonti di caratteri, l'interfaccia con gli stili, il supporto per l'inclusione di grafica e colori e la gestione dei lucidi.

2.1.5. Che cos'è pdfTeX? Che cos'è pdfLaTeX?

pdfTeX è una versione di TeX che produce direttamente archivi PDF, in aggiunta ai familiari archivi DVI. pdfLaTeX, ovviamente è la versione di pdfTeX con il formato di LaTeX precaricato.

2.1.6. Posso usare lo stesso sorgente sia per LaTeX che per pdfLaTeX? Come faccio?

In generale, il preambolo di un documento può contenere impostazioni specifiche per la compilazione con pdfLaTeX piuttosto che con LaTeX o viceversa. Non di rado, queste impostazioni sono incompatibili tra loro, cosa che si traduce in messaggi di errore in fase di compilazione.

Mantenere due sorgenti separati naturalmente è molto scomodo, ma per fortuna non necessario. Una soluzione semplice al problema consiste infatti nell'aggiungere nel preambolo le istruzioni

\newif\ifpdf
\ifx\pdfoutput\undefined
  \pdffalse
\else
  \ifnum\pdfoutput=1
    \pdftrue
  \else
    \pdffalse
  \fi
\fi
per poi separare le istruzioni differenti tra pdfLaTeX e LaTeX così:
\ifpdf
  …
\else
  …
\fi
In questo modo, al momento della compilazione, TeX sceglierà automaticamente quali istruzioni elaborare sulla base del formato di uscita[1].

Inoltre, Heiko Oberdiek ha scritto un pacchetto, dall'ovvio nome di ifpdf, che fa più o meno quanto è scritto qui sopra: se è installato sul tuo sistema, puoi definire il comando \ifpdf semplicemente caricandolo, con \usepackage{ifpdf} (LaTeX), \input ifpdf.sty (TeX), etc.

2.1.7. Che cosa sono eTeX, eLaTeX, pdfeTeX, pdfeLaTeX, etc.?

eTeX è un'estensione di TeX, sviluppata inizialmente dal progetto NTS (vedi la domanda Che cos'è il progetto NTS?). Può operare in due modi: uno completamente identico al normale "modus operandi" di TeX ed uno esteso in cui diventano disponibili alcune primitive nuove ed alcune altre vantaggiose modifiche al codice originale di TeX.

Naturalmente, con eTeX si possono fare tutte le combinazioni possibili con TeX ed esistono quindi eLaTeX, pdfeTeX, pdfeLaTeX, etc., con ovvio significato.

2.1.8. Come posso sfruttare le innovazioni di eTeX senza usare direttamente le sue nuove primitive?

Naturalmente, basta usare un pacchetto di macro che metta a disposizione tali primitive in un modo più semplice. Sembra che l'unico pacchetto ad usarle per il momento sia ConTeXt, nel qual caso vale senz'altro la pena di usare ConTeXt con pdfeTeX, piuttosto che con eTeX.

2.1.9. Che cos'è il progetto NTS?

NTS è un gruppo di lavoro nato nel 1992 sotto l'egida del TUG tedesco DANTE, con lo scopo di sviluppare e perpetuare lo spirito e la filosofia di TeX, pur rispettando la volontà di Knuth di mantenere TeX "congelato". Il progetto ha recentemente prodotto una versione di TeX scritta in Java, il cui simbolo, per ovvie ragioni, è una lumaca. :-)

2. Risorse in rete

2.2.1. Che cos'è uno "stile" (style file)? Che s'intende con "pacchetto"? e con "classe"?

Si tratta di archivi che contengono del codice LaTeX disegnato per svolgere un compito specifico, per esempio adattare le dimensioni delle pagine da stampare al tipo di carta usata dalla propria stampante o consentire l'uso diretto delle lettere accentate nei sorgenti TeX. Oggi sono disponibili migliaia di pacchetti per le esigenze più diverse. Per usarli è sufficiente inserire nel documento LaTeX l'istruzione \usepackage{nome} dove nome rappresenta il nome del pacchetto in questione.

Degli stili speciali che si occupano di definire l'aspetto generale del documento sono chiamati "classi"; in un documento è possibile utilizzare una sola classe specificandola con l'istruzione iniziale \documentclass{classe} dove classe rappresenta il nome della classe in questione.

2.2.2. Dove posso trovare quella tal macro per TeX, quel tale stile per LaTeX, quella tale fonte, etc.?

Il posto più ovvio dove provare per prima cosa è un sito CTAN (vedi la domanda Che cos'è un sito CTAN? Come funziona?); se non avete accesso alla Internet probabilmente un modo conveniente è ottenere uno dei tanti CD contenenti una qualche distribuzione di TeX (ovviamente appropriata per il tipo di macchina di cui disponete). Al momento non mi è noto nessun nodo FidoNet che disponga di materiale utile per TeX, ma molto probabilmente ne esistono diversi: prego chiunque abbia qualche informazione in proposito di farmelo sapere.

2.2.3. Che cos'è un sito CTAN? Come funziona?

Un sito CTAN (Comprehensive TeX Archive Network) è un sito della Internet che contiene materiale specifico per TeX. Tutti i siti CTAN sono identici ed il più vicino all'Italia dovrebbe essere quello del TUG tedesco DANTE (ftp://ftp.dante.de/); l'organizzazione degli archivi all'interno dei siti CTAN comincia con l'elenco /tex-archive/.

In essi è possibile rintracciare virtualmente tutto quello che riguarda TeX e compagnia, ad esempio stili, macro, fonti, etc. Esistono molti siti "mirror" di un sito CTAN, ovvero esistono molti siti speculari che periodicamente aggiornano una loro copia locale, perfettamente identica all'originale, degli archivi presenti in un sito partecipante alla CTAN vera e propria; in generale è consigliabile, per ragioni di rapidità e convenienza, usare sito speculare vicino -- ovviamente nel senso della topologia della Internet. In Italia ne esistono almeno due: quello dell'Università di Napoli (ftp://ftp.unina.it/) e quello dell'Università Tor Vergata di Roma (ftp://cis.utovrm.it/).

Ai siti CTAN ed alle loro copie si può accedere via FTP anonimo: è necessario avere a disposizione una macchina collegata alla Internet (per esempio collegando il proprio calcolatore personale via modem con un ISP) ed usare un programma capace di gestire il protocollo FTP. Chi volesse ulteriori informazioni può provare a chiederle in un'area specifica, ad esempio l'area FidoNet COMMS_RETI.ITA.

2.2.4. Esiste un elenco di tutto il materiale contenuto nella CTAN?

Incredibile, ma vero: http://www.ctan.org/. Oltre alla possibilità di scorrere sequenzialmente l'elenco, c'è naturalmente anche un motore di ricerca.

3. Aspetti generali

2.3.1. TeX spezza le parole in modo strano quando le manda a capo. Cosa posso fare per evitarlo?

Storicamente, per quel che riguarda la lingua inglese, questo problema poteva presentarsi a seguito di un aggiornamento incompleto da TeX 2.9 a TeX 3.0; oggi come oggi non credo che qualcuno usi versioni di TeX tanto preistoriche! :-)

Probabilmente state utilizzando la tabella di sillabazione sbagliata: l'algoritmo di TeX che si occupa della divisione delle sillabe infatti ha bisogno di una specifica tabella per ogni linguaggio, ed ogni volta che volete aggiungerne uno nuovo dovete ricreare i vari archivi di formato (ovviamente sia per TeX, che per LaTeX, che per tutti gli altri pacchetti di macro precompilati).

Se possibile dovreste usare Babel, un pacchetto che rende TeX multilingue in modo molto automatico. Se l'avete installato, con LaTeX è sufficiente inserire il comando \usepackage[italian]{babel}; l'opzione (nell'esempio italian) indica il linguaggio principale del testo e può (anzi, dovrebbe) essere inserita tra le opzioni di \documentclass. Se non l'avete installato... :-) va bene, in futuro questa risposta probabilmente vi spiegherà in dettaglio come fare.[2]

Notate che perché il comando \usepackage[italian]{babel} funzioni, è necessario che la tabella di sillabazione italiana sia stata precaricata negli archivi di formato opportuni. Operativamente, questo significa che compiere i passi seguenti.

  1. Cercate l'archivio language.dat, che contiene un elenco di tutte le lingue per cui è disponibile una tabella di sillabazione: la maggior parte di esse sono commentate, per ragioni di efficienza, perché è bene che solo le tabelle delle lingue effettivamente utilizzate siano precaricate in memoria e, comunque, come regola generale, è bene che esse non superino il numero di cinque.

  2. Se nell'archivio la riga corrispondente all'italiano è commentata[3], togliete il segno di percentuale.

  3. Ricreate i vari archivi di formato; quest'operazione sostanzialmente consiste nell'usare il comando initex -- che sul vostro sistema potrebbe avere un nome leggermente diverso, o essere equivalente all'uso del comando tex con particolari opzioni -- per predigerire una o più collezioni di macro da usare con la vostra installazione di TeX (tipicamente vorrete farlo almeno per gli archivi plain.tex e latex.tex), in modo da generare i corrispondenti archivi di formato, che dovrete quindi mettere nell'elenco opportuno, sostituendo quelli esistenti.

In pratica, con le moderne distribuzioni di TeX non è necessario -- anche se resta ovviamente possibile -- eseguire a mano queste operazioni: è sempre presente infatti un qualche script o un qualche programma di configurazione che si offre di eseguirle per voi. Ad esempio, l'autore di questa raccolta usa la distribuzione teTeX di Thomas Esser con il sistema operativo Debian GNU/Linux e lo script in questione è /usr/sbin/texconfig. Controllate sulla documentazione fornita con la vostra distribuzione per sapere cosa usare nel vostro caso.

2.3.2. Come si può ottenere un documento con interlinea doppia?

In generale sarebbe meglio evitare simili cose, per il brutto effetto che hanno sull'aspetto del documento. Se però non ne potete fare a meno, potete provare ad usare:

linespread

per una doppia interlinea \linespread{1.6} dovrebbe essere il valore corretto;

baselinestretch

in questo caso dovrebbe andar bene un \renewcommand{\baselinestretch}{1.6} (per un'interlinea e mezza provate 1.2);

doublespace

disponibile via CTAN, questo pacchetto introduce l'ambiente spacing, il cui argomento ha lo stesso significato del valore di \baselinestretch;

setspace

basato sul precedente, questo pacchetto è più versatile ed introduce vari comandi di effetto globale su tutto il documento ed ambienti per cambiare l'interlinea a parti specifiche di testo.

2.3.3. Vorrei cambiare i margini della pagina. Come si fa?

È facile: per prima cosa cominciate col dedicarvi allo studio dell'arte tipografica. :-) Seriamente parlando, la scelta dei margini in un documento è molto importante e difficile, perché ne può variare drasticamente la leggibilità: spesso si tendono ad usare righe che contengono troppe parole, oppure a lasciare poco spazio bianco al bordo; queste cose rendono più difficile l'interpretazione del testo stampato e -- alla lunga -- stancano. Se però volete salvare l'Amazzonia, siete sprezzanti del pericolo di affaticamento e pensate di avere un'ottima cultura tipografica, provate a seguire queste regole:

  • i margini possono essere cambiati solo nel preambolo; se avete bisogno di cambiare più di una volta i margini all'interno del vostro documento, è meglio che dedichiate un po' di tempo ad imparare a definire ambienti di tipo list;

  • tutte le misure in un DVI devono tener conto che l'origine è posta a distanza di un pollice dal margine superiore ed un pollice dal margine sinistro;

  • le coordinate orizzontali positive vanno verso destra, mentre le coordinate verticali positive vanno verso il basso; potete usare indifferentemente coordinate positive o negative;

  • tutte le misure di lunghezza si possono cambiare con il comando \setlength;

  • i margini più comunemente usati sono: \topmargin, \leftmargin, \rightmargin (che non è il margine destro di ogni pagina, ma ha la stessa funzione che ha normalmente \leftmargin, però nelle pagine pari, se il documento è fronte retro), \textwidth e \textheight.

Ad esempio, se voleste specificare una distanza dal margine superiore di 1in+1cm, una distanza dal margine sinistro (di ogni pagina, a meno che il documento sia fronte retro) di 1in-1cm, una larghezza del testo di 18cm ed un'altezza di 23cm, dovreste scrivere nel preambolo:

\setlength{\topmargin}{1cm}
\setlength{\leftmargin}{-1cm}
\setlength{\textwidth}{18cm}
\setlength{\textheight}{23cm}

Se volete saperne di più è consigliabile consultare la sezione C.5.3 del libro di Lamport oppure il capitolo quarto del LaTeX companion [4].

Notate anche che esistono alcuni pacchetti che possono semplificarvi la vita, evitando di fare i pochi calcoli necessari a mano, ad esempio l'ottimo geometry oppure vmargin.

2.3.4. Come faccio a stampare un libretto di formato A5 su carta di formato A4 da piegare?

Naturalmente ci sono diverse possibilità. L'autore usa i passi seguenti.

  1. Nel sorgente, far sapere a TeX che si vuole usare il formato A5. Per esempio, con LaTeX dichiarare qualcosa di simile a \documentclass[a5paper]{article}.

  2. Far lavorare TeX per produrre l'archivio DVI e trasformarlo in PostScript con dvips.

  3. Usare le "PS Utils" per trasformare l'archivio PostScript in forma di libretto:

    psbook nome-del-documento.ps | pstops -pa5 '2:0L(21cm,0)+1L(21cm,14.85cm)' > libretto.ps

2.3.5. È possibile "commentare" una parte di un documento in modo da non farla compilare nel DVI?

In questo caso è utile il pacchetto verbatim, che introduce l'ambiente comment, di ovvio utilizzo, oppure, per una soluzione più fai-da-te, inserire la parte da commentare dentro la coppia \iffalse--\fi.

2.3.6. Ho provato a togliere la numerazione delle pagine, ma la prima pagina ha ancora il numero. Cosa posso fare?

Probabilmente questo vi succede perché state usando il comando \maketitle, o comunque qualche comando che internamente esegue un \thispagestyle{plain}. Una possibile soluzione è mettere un \thispagestyle{empty} subito dopo il \maketitle (o il comando di sezione presente sulla pagina numerata), senza linee vuote tra i due. Una soluzione molto migliore -- se vorrete studiarne il funzionamento capirete perché :-) -- è utilizzare il pacchetto fancyhdr[4], disponibile via CTAN.

2.3.7. Come si può fare in modo che i capitoli (le sezioni, etc.) non numerati, cioè quelli ottenuti con \chapter*, figurino nell'indice?

Occorre inserirli esplicitamente per mezzo del comando \addcontentsline, come nell'esempio seguente:

\chapter*{Prefazione}
\addcontentsline{toc}{chapter}{\numberline{}Prefazione}

Il primo argomento del comando (toc) indica di aggiungere il terzo argomento (\numberline{}Prefazione) all'archivio nome-archivio.toc che corrisponde al documento nome-archivio.tex che si sta elaborando, mentre il secondo argomento (chapter) specifica il tipo di sezione che si sta aggiungendo e può avere gli stessi valori dei nomi dei comandi di sezione. La macro \numberline serve per allineare il testo della sezione non numerata con quello delle sezioni numerate: provate a toglierla per vedere l'effetto risultante.

Volendo fare in modo che le intestazioni rispecchino il titolo della sezione non numerata, occorre fare uso delle macro \markboth e/o \markright, come, ad esempio, in:

\chapter*{Prefazione}
\markright{Prefazione}

2.3.8. Com'è possibile numerare le equazioni e/o le figure e/o le tabelle all'interno di ogni sezione?

L'idea di base è di porre in uno stile, oppure nel preambolo all'interno di una coppia \makeatletter-\makeatother, istruzioni del tipo

\renewcommand\theequation{\thesection.\arabic{equation}}
\@addtoreset{equation}{section}

Sostituite figure e/o table rispettivamente al posto di equation per le figure e le tabelle.

2.3.9. Come si fa a numerare la bibliografia usando cifre arabe senza le parentesi quadre oppure usando soprascritti?

Mettete in uno stile, oppure in una coppia \makeatletter-\makeatother nel preambolo, comandi del tipo \renewcommand\@biblabel[1]{#1.} oppure \renewcommand\@biblabel[1]{$^{#1}$}.

2.3.10. Come faccio a trovare la larghezza di una lettera, una parola o una frase con TeX? E con LaTeX?

Con TeX occorre mettere l'oggetto in una scatola e quindi misurarne la larghezza; ad esempio

\setbox0=\hbox{gnu}
\newdimen\gnat
\gnat=\wd0
mette nel comando di lunghezza \gnat la larghezza del testo gnu.

In effetti, se l'oggetto nella scatola è una frase, la misura è approssimata, perché in modalità paragrafo[5] la colla tra parole adiacenti è elastica.

In LaTeX, come Leslie c'insegna

\newlength{\gnat}\settowidth{\gnat}{gnu}
mette nel comando di lunghezza \gnat la larghezza del testo gnu.

2.3.11. Come si fa a definire una nuova funzione matematica tipo \log?

Usate il comando \mathop, come in \newcommand{\diag}{\mathop{\mathrm{diag}}}.

2.3.12. Come si fa a mettere uno \sqrt in un \caption?

Ce lo si mette. :-) Il comando \sqrt era fragile nelle precedenti versioni e per questo andava protetto facendolo precedere dal comando \protect all'interno degli argomenti mobili, quali spesso sono gli argomenti di \caption; se la vostra versione di LaTeX è aggiornata, non ne avete più alcun bisogno.

4. Dati e immagini

2.4.1. Come si fa ad inserire letteralmente un archivio esterno?

Si può usare il pacchetto moreverb, che oltre ad altri utili comandi introduce il comando \verbatiminput: \verbatiminput[tabstop]{nome-archivio} inserisce nome-archivio letteralmente convertendo ogni carattere di tabulazione in tabstop spazi (il default dovrebbe essere otto).

Per una maggiore flessibilità d'uso, si può provare il pacchetto fancyvrb, mentre per inserire archivi sorgente di qualche linguaggio di programmazione ed avere il riconoscimento automatico delle parole chiavi è utilissimo il pacchetto listings.

2.4.2. Come posso inserire in una tabella un archivio di dati separati da caratteri di tabulazione e ritorni di carrello?

Volendo inserire in un documento tabelle di dati scientifici sensibilmente estese, è naturalmente molto più comodo lasciare i dati in un archivio a parte ed inserirli con il comando \input, che inserirli direttamente nel sorgente del documento. Per varie ragioni, può essere utile separare i dati di una stessa riga con caratteri di tabulazione e le righe con semplici avanzamenti di linea (e/o ritorni di carrello, a seconda del proprio sistema operativo), piuttosto che con le combinazioni "&" e "\\" dell'ambiente tabular di LaTeX.

La soluzione è molto semplice: basta istruire TeX sul giusto significato da dare al carattere di tabulazione ed al carattere di fine riga ed il gioco è fatto:

\begingroup
\catcode`\^^I=4
\catcode`\^^M=\active%
\let^^M=\cr%
\begin{tabular}{*{88}}%
\input{dati.dat}%
\end{tabular}%
\endgroup

Attivando "^^M", c'è da stare attenti a non inserirne a sproposito: a questo servono i commenti "%", mentre il numero magico 88 è solo un comodo valore maggiore del numero di colonne presenti in dati.dat, visto che nell'archivio di dati non è sbagliato avere meno colonne di quante se ne dichiarano nell'argomento di tabular.

2.4.3. Come faccio a inserire un'immagine nel mio documento?

La prima cosa da notare per quanto riguarda l'inserimento di immagini all'interno di documenti per TeX è che in realtà nulla viene inserito: a TeX infatti le uniche cose che interessano sono le dimensioni dello spazio da riservare all'immagine; l'inserimento vera e proprio dell'immagine sarà opera del programma che elabora l'archivio DVI (ad esempio dvips).

È voce comune che TeX e LaTeX supportino solo il formato EPS (Encapsulated PostScript). In realtà le immagini in formato EPS hanno solo il vantaggio di essere contenute in archivi di testo semplice (ASCII a 7 bit), e di contenere linee che descrivono in chiaro le proprie dimensioni: questo fa sì che TeX possa dedurre direttamente le dimensioni di una immagine EPS. Inoltre, l'uso comune dei DVI è la loro trasformazione in archivi PostScript, e l'uso di immagini EPS rende semplice questa operazione.

È per questo che ai tempi di LaTeX 2.09 il pacchetto più usato era epsfig, ed esso viene ancor oggi usato spesso anche con LaTeX2e. Il suo uso è però oramai sconsigliato, ed il pacchetto è diventato obsoleto, a favore del più facile e potente pacchetto graphics: esso permette l'inserimento di immagini in qualsiasi formato (non solo EPS), con manipolazioni arbitrarie in termini di riduzioni in scala, rotazioni, etc.

Questo pacchetto è presente in due versioni (graphics e graphicx), di uguali capacità, ma con diversa interfaccia utente. Per l'uso basilare, tuttavia, non vi sono notevoli differenze tra le due versioni: le immagini vengono comunque inserite tramite il comando \includegraphics, come in \includegraphics{nomearchivio}[6].

Poiché il concetto di immagine non è nativo per TeX, il modo di trattare l'inserimento delle immagini cambia in base al programma che usato per elaborare il DVI. È importante, quindi, specificare al momento del caricamento del pacchetto graphics (o graphicx) quale sistema si intende usare in seguito, con un comando come \usepackage[dvips]{graphicx}, oppure \usepackage[dvipdfm]{graphicx}. In assenza di specifiche, TeX sceglie automaticamente dvips, mentre pdfTeX sceglie pdftex. Specificare il sistema da usare è importante anche perché sistemi diversi sono disegnati per usare formati d'immagine diversi, ed hanno bisogno di particolari accorgimenti per essere convinti ad accettarne altri. Nel seguito ci concentreremo solo sui sistemi dvips e pdftex.

È parimenti importante anche evitare di specificare l'estensione dell'archivio, in modo che sistemi diversi possano usare la loro estensione preferita[7].

Un'altra distinzione importante da fare è quella tra immagini vettoriali ed immagini a mappa di bit.

Sono vettoriali tutte le immagini che contengono linee ed archi descritti per le loro proprietà geometriche piuttosto che per i singoli punti che ne formano l'immagine concreta[8]; formati tipici sono EPS, PDF, FIG, WMF, CDR, etc. Se si sta creando una nuova immagine (ad esempio, un grafico o qualcosa del genere) è preferibile crearla in forma vettoriale, perché questo non perde qualità quando lo si sottopone a trasformazioni come riduzioni, ingrandimenti, rotazioni.

Il formato vettoriale usato da dvips è EPS, ed è dunque quindi consigliabile salvare direttamente in questo formato se il programma che si usa per creare l'immagine lo permette; altrimenti, si può salvare in un formato vettoriale diverso, come WMF, ed effettuare in seguito una conversione tramite programmi come wmf2eps.

A differenza di TeX, pdfTeX ovviamente conosce bene il formato PDF e sa come fare ad inserire immagini in tale formato nei propri documenti[9]. Poiché però sono ancora pochi i programmi che possono salvare le immagini in questo formato, se non è possibile usarlo direttamente è consigliabile creare un EPS da convertire poi in PDF con un programma come epstopdf o eps2pdf[10];

Sono invece a mappa di bit tutte le immagini descritte punto per punto, con un numero di punti che dipende dalla risoluzione per la quale l'immagine è stata prodotta; esistono svariati formati per queste immagini: BMP, GIF, JPEG, PBM, PCX, PGM, PNG, PPM, …. Si possono convertire le immagini da uno di questi formati all'altro usando programmi come quelli dei NetPBM tools (disponibili liberamente sia in ambienti POSIX sia in ambiente Win32.

pdfTeX conosce i formati PNG, TIF e JPEG e per inserire queste immagini non è necessaria alcuna conversione. Per gli altri formati, basta fare una semplice conversione. In generale, è consigliabile usare PNG per i disegni, i grafici e gli schemi, e JPEG per le foto.

Al contrario, dvips non sa usare direttamente alcun formato a mappa di bit, giacché ben poche stampanti possono stampare direttamente tali immagini. Tali immagini però si possono inserire all'intero di un programma PostScript, anche in forma di EPS, con gli appositi programmi di conversione, ottenendo un archivio stampabile ovunque si sa parlare il PostScript[11].

Se non si vogliono convertire le immagini a mappa di bit in EPS, spesso è possibile convincere dvips ad accettarle direttamente. Ovviamente, in tal caso, occorre utilizzare una stampante, eventualmente virtuale, che accetti il formato prescelto (GhostScript, ad esempio, supporta il formato PNG). Per dire a LaTeX di inserire anche immagini PNG occorre dichiarare \DeclareGraphicsRule{.png}{bmp}{.bb}{}, che grosso modo vuol dire: tratta gli archivi con estensione .png come archivi del gruppo .bmp (il gruppo predefinito per le immagini a mappa di bit), e cerca la loro dimensione in un archivio avente lo stesso nome ed estensione .bb. L'ultima opzione vuota per ora non ci interessa.

Ovviamente occorre allora creare un archivio .bb contenente le dimensioni di quello .png; la distribuzione del programma dvipdfm comprende un programma chiamato ebb che fa esattamente questo; eseguendo il comando ebb immagine.png, si ottiene l'archivio immagine.bb contenente le dimensioni dell'immagine contenuta in immagine.png.

Con le precedenti istruzioni si fa in modo che l'archivio DVI contenga il codice necessario per l'inserimento delle immagini. Tuttavia, se il programma usato per elaborarlo non accetta immagini immagini nel formato prescelto, si avranno naturalmente problemi (ad esempio, dvips 5.86 accetta solo immagini a mappa di bit in formato BMP, PCX o MSP; quindi le immagini PNG non verranno incluse nel PostScript).

Veniamo ora ad un esempio. Supponiamo di voler includere nel documento pippo.tex tre immagini, contenute negli archivi grafico.eps, diag.png e foto.jpg e supponiamo inoltre che pippo.tex debba essere usato per generare sia un archivio PostScript, con LaTeX seguito da dvips), sia un archivio PDF, direttamente con pdfLaTeX. Occorre allora innanzi tutto convertire l'archivio EPS in un archivio PDF e gli archivi PNG e JPG in EPS; si possono quindi lanciare (da linea di comando) le istruzioni

epstopdf grafico.eps
(che genera l'archivio grafico.pdf) e
jpeg2ps foto.jpg
(che genera l'archivio foto.eps); per il PNG, vista la limitazione di dvips, possiamo fare la seguente (con i NetPBM tools)
pngtopnm diag.png | pnmtops > diag.eps
(per creare un archivio EPS) oppure
pngtopnm diag.png | ppmtopbm > diag.bmp
ebb diag.png
per creare un archivio BMP e il relativo file .bb. Supponiamo di aver fatto la seconda, giusto per complicarci la vita.

Nell'archivio prova.tex occorrerà inserire le seguenti istruzioni nel preambolo (per maggiori informazioni circa \ifpdf, vedi la domanda Posso usare lo stesso sorgente sia per LaTeX che per pdfLaTeX? Come faccio?):

\ifpdf
  % quando usiamo pdfTeX
  \usepackage[pdftex]{graphicx}
  % in realtà non è necessario: graphicx capisce
  % da solo che stiamo usando pdfTeX.  Non è necessario
  % inserire altre istruzioni, giacché pdfTeX cerca
  % automaticamente file con estensione .pdf, .png, .jpg,
  % .tif
\else
  % se non usiamo pdfTeX
  \usepackage[dvips]{graphicx}
  % ancora una volta, non è necessario specificare il
  % gestore, giacché dvips è quello predefinito.
  \DeclareGraphicsRule{.bmp}{bmp}{.bb}{}
  % informa graphics che le dimensioni per i file con
  % estensione .bmp vanno cercate nel corrispondente file
  % con estensione .bb
  \DeclareGraphicsExtensions{.bmp}
  % ordina a graphics di cercare anche i file con
  % estensione .bmp
\endif
mentre nel corpo del documento si useranno poi istruzioni del tipo
\includegraphics{grafico}
% pdfTeX trova grafico.pdf, TeX trova grafico.eps

\includegraphics{foto}
% pdfTeX trova foto.jpg, TeX trova foto.eps

\includegraphics{diag}
% pdfTeX trova diag.png, TeX trova diag.bmp
col che tutto dovrebbe concludersi felicemente.

2.4.4. Come faccio ad inserire due figure fianco a fianco con la stessa didascalia, distinguendole fra loro con una lettera o un numero?

Il pacchetto subfigure introduce il comando omonimo, che si può usare come nell'esempio seguente:

\begin{figure}
  \centering
  \subfigure[Prima figura]{nome-archivio-1.fig}\quad
  \subfigure[Seconda figura]{nome-archivio-2.fig}
\end{figure}
Il pacchetto si può applicare anche alle tabelle ed a tutti gli altri ambienti mobili ed è accompagnato da una buona documentazione con numerosi esempi d'uso.

5. Caratteri e fonti

2.5.1. Come faccio a inserire direttamente le lettere accentate? Si può?

Se il vostro sistema operativo supporta lo standard ISO-8859-1, più noto come "(iso)latin1" è sufficiente far uso del pacchetto inputenc, inserendo nel documento il comando \usepackage[latin1]{inputenc}.

Se la vostra installazione non è recente potreste non avere il pacchetto inputenc; in questo caso potrete comunque usare il vecchio pacchetto isolatin1, che è ora obsoleto.

Se utilizzate tabelle di caratteri differenti ed avete a disposizione inputenc probabilmente potrete utilizzarle inserendone il nome come opzione; ad esempio, per usare la code-page 850 si può scrivere \usepackage[cp850]{inputenc}.

Per sapere quali tabelle sono supportate e con quale nome, riferitevi ai sorgenti di inputenc. Se non l'avete, la vostra tabella di caratteri potrebbe essere supportata o meno, da qualche altro pacchetto: cercate nella vostra distribuzione di TeX.

2.5.2. Come si possono inserire i caratteri di citazione "«" e "»"?

La soluzione più pulita è usare il pacchetto fontenc con l'opzione T1 oppure, in sua mancanza, il pacchetto t1enc, ovvero scrivere nel preambolo \usepackage[T1]{fontenc}, oppure \usepackage{t1enc}. In questo modo le combinazioni naturali "<<" e ">>" faranno quanto desiderato.

Ovviamente potete inserire direttamente i caporali -- se la vostra tastiera ve lo consente -- utilizzando opportunamente il pacchetto inputenc (vedi la domanda Come faccio a inserire direttamente le lettere accentate? Si può?).

Un'altra possibilità, se si usa Babel è di scrivere \flqq all'inizio della citazione e \frqq alla fine; attenti a non lasciare uno spazio prima di \frqq se non lo volete anche nel risultato.

La soluzione minimale, se non si può o non si vuole usare né la codifica di Cork né Babel è di scrivere $\ll$ (molto minore) e $\gg$ (molto maggiore), ma il risultato grafico è decisamente insoddisfacente; lo si può migliorare notevolmente in questo modo:

\def\lcaporali{\hskip 0pt \raise .28ex \hbox{\tiny $\ll$}}
\def\rcaporali{\hskip 0pt \raise .28ex \hbox{\tiny $\gg$}}
Queste due righe definiscono i comandi \lcaporali e \rcaporali, di uso intuitivo, e sono valide sia in TeX che in LaTeX.

Per chi usa LaTeX c'è anche una soluzione alternativa: prendere le virgolette da un'altra fonte, per esempio le virgolette del Times:

\newcommand{\lcaporali}{{\fontencoding{T1}\fontfamily{ptm}\selectfont<<}}
\newcommand{\rcaporali}{{\fontencoding{T1}\fontfamily{ptm}\selectfont>>}}

2.5.3. Come si possono ottenere i simboli per i "numeri reali", i "numeri complessi", etc.?

Questi simboli sono noti come "blackboard bold" e sono disponibili con le fonti dell'AMS (American Mathematical Society), che si possono trovare via CTAN. Con LaTeX si può usare il pacchetto amsmath per averli convenientemente a disposizione.

2.5.4. Come faccio ad usare famiglie di fonti diverse da Computer Modern?

Supponendo di aver installato la fonte che si vuole usare in un posto accessibile alla propria distribuzione, per usarla con TeX basta definire un comando con la primitiva \font, come in \font\nuovafonte=nomedellafonte, dove nomedellafonte è il nome di sistema con cui TeX può trovare la fonte.

Per LaTeX, generalmente con ogni fonte viene distribuito uno stile che si occupa di tutti i dettagli, di modo che l'uso si riduce ad un'istruzione \usepackage{fonte} nel preambolo ed ad opportuni comandi e/o ambienti nel testo. Un esempio di tali stili è PSNFSS (vedi la domanda Cos'è PSNFSS?). Se manca lo stile, si può sempre convincere LaTeX ad usare qualsiasi fonte installata con i meccanismi di NFSS, che sarebbe un po' troppo lungo discutere qui (vedi la domanda Cos'è NFSS? ed il LaTeX Companion [4]).

2.5.5. Cos'è NFSS?

NFSS è un'estensione a LaTeX scritta da Frank Mittelbach e Rainer Schöpf. Il suo scopo è consentire agli utenti di cambiare indipendentemente l'uno dall'altro i parametri che descrivono una fonte, cioè la famiglia, la serie, il peso e la larghezza. È stato inglobato in LaTeX2e ed è adesso lo standard per l'uso delle fonti. Per una buona descrizione delle regole del gioco, si può consultare il LaTeX Companion [4].

2.5.6. Cos'è PSNFSS?

PSNFSS è un insieme di pacchetti, sviluppato da Sebastian Rahtz sulla base di un precedente lavoro di Kresten Thorup e Timothy van Zandt, che permette di usare nei propri documenti fonti PostScript con grande facilità; solitamente è parte di ogni distribuzione di LaTeX.

Ad esempio, per usare la fonte Times come base e, appropriatamente, la fonte Helvetica come fonte senza grazie e la fonte Courier come fonte a spaziatura fissa, basta scrivere nel preambolo \usepackage{times}. Analogamente a times, in PSNFSS ci sono per le fonti più diffuse i pacchetti palatino, helvet, avant, newcent e bookman, ed in più un certo numero di pacchetti per altre fonti commercialmente disponibili. Lo speciale pacchetto pifont, sempre parte di PSNFSS, dà accesso ai simboli della fonte ZapfDingbats tramite una serie di comandi e ambienti particolari, come \ding, dinglist e dingautolist.

2.5.7. Quando creo un PDF il risultato è buono in fase di stampa, ma viene visualizzato molto male. Come mai?

Molto probabilmente, la ragione dello spiacevole effetto visivo è dovuta all'uso di fonti a mappa di bit. Le fonti utilizzabili nei documenti PostScript e PDF possono essere di due tipi: vettoriali ed a mappa di bit. Le fonti a mappa di bit contengono una rappresentazione punto per punto dei caratteri, mentre le fonti vettoriali li descrivono sotto forma di curve algebriche. In realtà, per stampare o visualizzare un carattere, occorre sempre avere una mappa di bit, della risoluzione del dispositivo usato per rappresentare il carattere, cosicché anche le fonti vettoriali vengono effettivamente convertite in mappa di bit, dalla stampante o da un programma. La differenza tra i due tipi di fonti, è che quelle vettoriali permettono di generare mappe di bit di buona qualità a qualsiasi risoluzione, da quella alta o molto alta di una stampante (300 e più punti per pollice) a quella piuttosto bassa del video (tipicamente tra i 72 e i 100 punti per pollice); le fonti a mappa di bit, invece, sono state preparate in anticipo per una risoluzione predefinita, tipicamente quella di una stampante: per essere usate con risoluzioni differenti devono essere scalate, in genere linearmente, producendo effetti molto scadenti alle basse risoluzioni.

Nonostante i sorgenti delle fonti generate da METAFONT diano anch'essi una descrizione algebrica, anzi, un'ottima descrizione algebrica dei caratteri, tale descrizione non può essere direttamente inclusa in un archivio DVI, PostScript o PDF: il procedimento di conversione in mappa di bit dei metasorgenti è computazionalmente troppo impegnativo per essere fatto al volo (come vi sarà certamente capitato di notare visualizzando o stampando un DVI con riferimenti a metafonti non ancora precalcolate); occorre quindi precalcolare le mappe di bit necessarie specificando a METAFONT la risoluzione desiderata (nonché vari altri parametri tipici meno importanti ai fini di questo discorso introduttivo). Al contrario, le fonti vettoriali PostScript sono semplici da calcolare, anche se il risultato è tipograficamente un po' meno buono di quello che si ottiene con le metafonti (specialmente se le fonti PostScript non contengono i cosiddetti suggerimenti per le risoluzioni più basse): si possono quindi inserire direttamente negli archivi PostScript o PDF, lasciando il compito di tradurle in mappe di bit, al volo, alla stampante, nel caso abbia il supporto PostScript, oppure ai programmi usati per stampare o visualizzare.

Di solito, a meno di non fare altrimenti, con TeX si usano metafonti e questa è la ragione della scarsa qualità a video dei PDF che dà lo spunto a questa domanda. Tuttavia, alcune anime buone della AMS hanno commissionato la creazione di versioni PostScript vettoriali liberamente distribuibili per le fonti più comunemente usate con TeX, quelle della famiglia Computer Modern. Quindi, se il proprio documento usa queste fonti e se le si sono installate sul proprio sistema, è possibile creare documenti PostScript o PDF contenenti fonti vettoriali, invece che a mappa di bit precalcolata. In questo modo, il documento sarà bello da vedere anche a video, non solo sulla carta stampata.

Dopo questa lunga discussione, vi sarà venuta voglia di provare: benissimo, se non sapete già come fare, vi basterà leggere la prossima domanda! :-)

2.5.8. Come faccio ad usare fonti PostScript vettoriali in un documento PostScript o PDF?

Niente di più semplice! Per prima cosa, se le fonti che si vogliono usare non sono già presenti nella propria distribuzione di TeX, occorre naturalmente installarle, seguendo le istruzioni della propria guida locale. Una volta certi che le fonti siano installate sul proprio sistema, il passo successivo da fare dipende dal tipo di archivio che si vuol produrre, PostScript o PDF:

  • se si produce un archivio PostScript con dvips, anche nel caso in cui questo sia solo un passaggio intermedio per distillare in seguito un PDF, occorre istruire opportunamente dvips, come in dvips -Ppdf nome-del-documento oppure, se si usano i pacchetti dell'AMS, dvips -Pams nome-del-documento

  • se si crea un PDF attraverso dvipdf o dvipdfm occorre vedere quale archivio di configurazione usano questi programmi, modificandolo per far loro usare fonti vettoriali PostScript;

  • infine, se si usa pdfTeX, occorre controllare che l'archivio di configurazione pdftex.cfg nell'elenco $TEXMF/pdftex/config/ faccia uso di una mappa con fonti vettoriali PostScript, com'è normalmente il caso.

ATTENZIONE! Assicuratevi di utilizzare le fonti della famiglia Computer Modern, o comunque fonti per le quali avete a disposizione sorgenti vettoriali PostScript. La maggior parte degli utenti italiani di TeX usa il pacchetto fontenc con la codifica "T1", che specifica come fonti predefinite quelle della famiglia European Modern, molto simile alla Computer Modern, ma con in più le lettere con accenti e altri segni diacritici europei (la cosa è utile per aiutare TeX a sillabare completamente le parole che li contengono). Fino a poco tempo fa, di questa famiglia non esistevano versioni vettoriali PostScript liberamente distribuibili, benché ne esistessero diverse commerciali, legalmente non redistribuibili dai loro acquirenti. Per ovviare al problema occorreva fare a meno di usare il pacchetto fontenc e la famiglia European Modern, oppure fare uso di un pacchetto come ae o ze, che risolve il problema con la tecnica delle fonti virtuali, sostituendo i riferimenti a quasi tutti i caratteri della European Modern con i corrispondenti caratteri della Computer Modern -- senza problemi di sillabazione per le parole con segni diacritici, magari aggiungendo ad ae anche aecompl e aeguill, per risolvere anche i riferimenti ai caratteri della European Modern che non si possono ottenere dalla Computer Modern[12]. Recentemente, finalmente, sono state installate sui siti CTAN ben due versioni liberamente scaricabili di fonti vettoriali (PostScript) sia per la famiglia European Modern che per altre che fino a questo momento non ne avevano; se la tua distribuzione non le comprende ancora, puoi trovarle entrambe via CTAN nell'elenco /tex-archive/fonts/ps-type1/[13].

2.5.9. Come faccio ad inserire il simbolo dell'euro?

Per avere il simbolo dell'euro con LaTeX c'è solo l'imbarazzo della scelta: puoi usare il pacchetto textcomp, che fornisce il comando \texteuro, il pacchetto marvosym, che mette a disposizione i comandi \EURtm, \EURhv ed \EURcr, rispettivamente intonati per le fonti Times, Helvetica e Courier, oppure, infine, il pacchetto eurosym, il cui comando \officialeuro disegna il simbolo dell'euro secondo le specifiche della Commissione Europea. Naturalmente ognuno di questi pacchetti è accompagnato dalle relative fonti, che puoi anche usare direttamente con TeX.

6. Classi e stili particolari

2.6.1. È possibile comporre musica con TeX? E se sì, come?

È possibile: ci sono almeno due pacchetti che lo consentono. Il primo si chiama MuTeX, di Andrea Steinbach ed Angelika Schofer ed è capace di comporre musica su di un singolo rigo; si può trovare via ftp anonimo presso ftp://ftp.cs.ruu.nl/pub/TEX/MuTeX.tar.Z. Il secondo consente di scrivere musica polifonica ed orchestrale e si chiama MusicTeX, di Daniel Taupin; esistono anche numerosi pacchetti che permettono di semplificare l'uso di MusicTeX nei casi d'utilizzo più comuni. Dovrebbe essere disponibile via ftp anonimo presso ftp://rsovax.ups.circe.fr/. In aggiunta, questi pacchetti sono entrambi presenti in qualsiasi sito CTAN.

2.6.2. Si possono inserire diagrammi di Feynman? Come?

Si possono inserire facilmente ed il risultato è niente male! :-) Ci sono diverse soluzioni, io ho provato con soddisfazione il pacchetto feynmf, disponibile via CTAN. È consigliabile avere anche MetaPost, oltre a METAFONT, ma non è indispensabile. Si usa facilmente, ma le istruzioni sono un po' troppo lunghe, per esser scritte qui, e non so a quanti di voi interessi realmente (fisici di tutto il mondo unitevi! :-)).

2.6.3. Si possono inserire formule chimiche? Come?

Sì, per la gioia dei nostri amici chimici, sì. In giro ci sono diversi pacchetti; io ho provato con successo sia XyMTeX[14], sia PPCHTeX (distribuito con ConTeXt, anche via CTAN). Vi consiglio di scorrere i manuali e di scegliere quello che vi ispira di più.

2.6.4. Dove posso trovare uno stile per scrivere una tesi?

Generalmente parlando, le regole per lo stile di tesi variano da università ad università e non ci sono pacchetti predefiniti che vadan bene per tutti. Il mio consiglio è di scriversi personalmente lo stile -- anche per una questione di gusto -- magari consultando estensivamente il LaTeX companion [4], che può rivelarsi molto prezioso in questi casi.

Se proprio non volete partire a mani vuote potete dare un'occhiata allo stile ucthesis, disponibile via CTAN, della University of California. Qui in Italia esistono un pacchetto di nome toptesi, reperibile presso il Politecnico di Torino (ftp://ftp.polito.it/pub/tex/politonew/toptesi/) ed uno di nome TesiBase, reperibile presso il Dipartimento di Ingegneria Elettronica dell'Università di Firenze (http://lenst.die.unifi.it/~pecos/papers/TesiBase.tgz).

2.6.5. Dove posso trovare uno stile per scrivere il mio Curriculum Vitæ?

È possibile preparare il proprio Curriculum Vitæ utilizzando il pacchetto currvita, reperibile via CTAN, nell'elenco: /tex-archive/macros/latex/contrib/supported/currvita/.

Tra l'altro, utilizzando il pacchetto currvita insieme ad hyperref ed elaborando il proprio documento con pdfLaTeX, si può produrre un elegante risultato in PDF, con collegamenti ipertestuali, per esempio, alla propria università, alla propria sede di lavoro, o magari alle proprie pubblicazioni presenti in rete.

7. Varie

2.7.1. Che correttore ortografico si può usare con un sorgente TeX?

In ambienti unix ispell è la Cosa Giusta. Da qualche tempo è disponibile anche un vocabolario italiano (non del tutto completo, ancora) per questo programma. È disponibile via CTAN.

Sotto DOS esiste un programma chiamato jspell, di funzionalità simili ad ispell: dovrebbe essere reperibile via CTAN.

Per VMS esiste un correttore presso ftp.spc.edu in [.MACRO32.SAVESETS]; servono gli archivi SPELL.ZIP e SPELL_DICTIONARY.ZIP.

Col Macintosh si può usare Excalibur, disponibile via CTAN.

2.7.2. È possibile convertire un documento dal formato "X" a TeX e viceversa?

Esistono diversi convertitori che accettano in ingresso o in uscita un archivio TeX. In tutti i casi occorre comunque ricordare che un convertitore non può fare miracoli, né riprodurre la struttura di un documento LaTeX in, o a partire da, un formato che non è naturalmente strutturato[15]. Brevemente, questi sono i convertitori più noti:

troff-to-latex

disponibile via CTAN, converte dal formato troff a LaTeX;

wp2latex

disponibile via CTAN, converte da WordPerfect 5.0 e seguenti a LaTeX;

pcwritex

disponibile via CTAN, è un gestore di stampa per PC-Write che stampa un documento PC-Write V2.71 in un archivio TeX-compatibile;

rtf2TeX, rtf2LaTeX

disponibili via CTAN, convertono da RTF a TeX e LaTeX;

wd2latex

disponibile via CTAN, dovrebbe convertire da Word a LaTeX; forse è meglio usare uno dei due convertitori precedenti dopo aver convertito (con Word) il documento originale in RTF;

word2x

disponibile via CTAN, converte da Word a LaTeX e da Word a testo.

Altre informazioni sui tipi di conversione e sui programmi di conversione disponibili si possono trovare nell'apposita FAQ di Wilfried Hennings (http://www.kfa-juelich.de/isr/1/texconv/texcnv.html).

Note

[1]

Nota che per produrre un PDF con pdfTeX, piuttosto che un DVI, dovrai anche dichiarare da qualche parte \pdfoutput=1, possibilmente prima di definire \ifpdf.

[2]

Come sempre, questo significa: appena ho tempo di scriverlo o qualcuno mi manda delle istruzioni già scritte.

[3]

Se cioè appare preceduta da un "%" come in %italian ithyph.tex.

[4]

Il pacchetto fancyhdr si chiamava anticamente fancyheadings.

[5]

Ciò che il TeXbook chiama "paragraph mode".

[6]

La differenza d'interfaccia tra le due versioni si nota nell'uso delle opzioni -- ad esempio per la riduzione in scala o la rotazione. Per una discussione più approfondita rimandiamo al manuale del pacchetto graphics, grfguide, disponibile anche in italiano, tradotto dalla Gilda/Guild.

[7]

Ad esempio, dvips userà se possibile l'estensione .eps, mentre pdftex cercherà di usare .pdf.

[8]

Per esempio, per descrivere in forma vettoriale un cerchio, si possono specificare le coordinate del suo centro del il suo raggio; per descrivere lo stesso cerchio in forma a mappa di bit, si devono specificare tutti i singoli punti che, ad una data risoluzione, lo costituiscono.

[9]

Inoltre, come caso speciale, pdfTeX sa lavorare anche con le immagini EPS create da MetaPost.

[10]

Tutti questi programmi si servono di GhostScript per effettuare la conversione, ed è quindi necessario averlo installato sulla propria macchina per poterli usare.

[11]

Per le immagini in formato JPEG esiste il programma jpeg2ps, capace di avvolgere l'immagine JPEG con del codice PostScript che la rende interpretabile. Per convertire da altri formati a mappa di bit in EPS conviene ancora usare i programmi dei NetPBM tools.

[12]

Tipicamente si tratta dei caporali, le virgolette italiane.

[13]

Si tratta di pacchetti molto voluminosi e probabilmente uno è più che sufficiente. L'autore consiglia di prendere cm-super.

[14]

Prendete almeno la versione 2.00; se non la trovate via CTAN provate a casa dell'autore, Shinsaku Fujita (http://www.chem.kit.ac.jp/fujita/fujitas/fujita.html).

[15]

Un esempio per tutti: gli archivi Word sono malamente strutturati, da questo punto di vista. Sì, è vero, non solo da questo. :-)