Scrivere la tesi di laurea con LaTeX - veicoli.ing.unipi.it · Scrivere la tesi di laurea con...

18
Scrivere la tesi di laurea con L A T E X2 ε Lapo F. Mori * 30 gennaio 2007 Sommario Lo scopo del presente articolo è fornire gli stru- menti per scrivere una tesi di laurea utilizzando L A T E X2 ε . Tale obiettivo è conseguito analizzando i problemi tipici incontrati durante la stesura della tesi e le possibili soluzioni; si pone particolare atten- zione ai pacchetti da usare nelle varie circostanze. I singoli argomenti non vengono approfonditi nei dettagli ma si rimanda alla letteratura specifica o ad i manuali dei pacchetti suggeriti, ove necessario. Premessa Il presente articolo non è una guida di scrittura per tesi di laurea, 1 bensì spiega come utilizzare L A T E X2 ε per scriverla. La filosofia seguita è quella di non approfondire i vari temi nei dettagli (per i quali si rimanda a manuali specifici) ma di trattare il più vasto numero di argomenti e di indicare le soluzioni che l’autore ritiene migliori. La scelta dei contenuti deriva in primo luogo dall’esperienza dell’autore ed in secondo dai numerosi interventi riguardanti tesi di laurea presenti sul forum del g u It (Gruppo Utilizzatori Italiani di T E X), 2 che resta sempre un valido riferimento per tutte le tematiche trattate nel presente documento. Il testo presume che il lettore conosca già i rudi- menti di L A T E X2 ε , ovvero che abbia letto una delle numerose guide di base disponibili gratuitamente in rete [2, 3, 13, 19, 30, 35, 37] oppure un libro [4, 9, 15, 17, 18, 2024]; per alcuni argomenti (ad esempio figure e tabelle) si rimanda alla lettura di testi specifici ed in generale si invitano gli utenti a consultare le fonti Web presentate nel par. 7. Ogni- qualvolta si cita un pacchetto, non si fornisce una descrizione completa del suo funzionamento, per la quale si rimanda al relativo manuale, 3 ma si ana- * Ringrazio in primo luogo Fabiano Busdraghi che ha collaborato alla scrittura del par. 4. Ringrazio inoltre tutti coloro che mi hanno consigliato durante la stesura e la revisione di questo documento ed in particolare Claudio Beccari, Gustavo Cevolani, Massimo Guiggiani, Maurizio Himmelmann, Lorenzo Pantieri ed Emiliano Vavassori. 1. Sono attualmente disponibili numerose guide di scrit- tura sia per tesi di laurea di tipo generico [10, 26] che specifiche per tesi di laurea scientifiche [27, 28]. 2. Il forum del g u It è raggiungibile al seguente indirizzo http://www.guit.sssup.it/forum/. 3. La maggioranza dei pacchetti per L A T E X è accompa- gnata da un manuale che ne descrive l’utilizzo e spesso presenta degli esempi. La posizione del manuale dipende dalla distribuzione T E X che si usa ma in generale esso si trova in una sottocartella di /texmf/doc. lizzano le opzioni più importanti e se ne suggerisce l’utilizzo. 1 La documentclass Per una tesi di laurea è consigliabile utilizzare la classe book. Nelle opzioni della classe, oltre alla di- mensione del font di base (10pt, 11pt o 12pt) 4 ea quella del foglio (tipicamente a4paper), è possibile scegliere: se avere un documento fronte-retro (twoside) o solo fronte (oneside), se collocare la prima pagina dei capitoli su fac- ciate destre (openright) o indifferentemente (openany). Si suggerisce di utilizzare la classe book invece di quella report in quanto la prima prevede tre coman- di (\frontmatter, \mainmatter e \backmatter) 5 che controllano il formato del numero di pagina e la numerazione dei capitoli. Nel frontmatter le pagine sono numerate con i numeri romani minuscoli (i, ii, iii, ecc.) ed i capitoli non sono numerati (come se si utilizzasse il comando asteriscato \chapter*{}). Nel mainmatter le pagine sono numerate con nu- meri arabi (la numerazione riparte da 1) e i capitoli sono numerati con in numeri arabi. Nel backmatter le pagine sono numerate come nel mainmatter (la numerazione prosegue da quella del mainmatter) ma i capitoli non sono numerati. Si consiglia inoltre di utilizzare l’opzione fronte- retro (twoside) in quanto: si dimezza lo spreco di fogli di carta, 6 è possibile usare testatine differenziate per pagine sinistre e destre, i libri sono scritti in questo modo (e dunque ci si aspetta che chi legge la tesi sia abituato a questo layout). 4. Per avere una buona leggibilità su fogli A4 è consigliabile usare un font di base di dimensione 11 pt. 5. Per l’uso dei comandi si rimanda al par. 3. 6. Un comportamento comune a molti laureandi con- siste nell’usare qualunque strumento tipografico possibile per aumentare il numero di pagine della tesi (allargando i margini, aumentando la dimensione del font, aumentando l’interlinea, inserendo molte figure, stampando solo fronte, ecc.). Tralasciando il fatto che la qualità dei contenuti è più importante della quantità, spesso questi espedienti produ- cono dei risultati tipografici pessimi. Si consiglia dunque di concentrarsi sui contenuti e lasciar perdere l’impostazione tipografica (a questo pensa il L A T E X) ed in particolare il numero di pagine prodotto. 1

Transcript of Scrivere la tesi di laurea con LaTeX - veicoli.ing.unipi.it · Scrivere la tesi di laurea con...

Scrivere la tesi di laurea con LATEX2ε

Lapo F. Mori∗

30 gennaio 2007

Sommario

Lo scopo del presente articolo è fornire gli stru-menti per scrivere una tesi di laurea utilizzandoLATEX2ε. Tale obiettivo è conseguito analizzando iproblemi tipici incontrati durante la stesura dellatesi e le possibili soluzioni; si pone particolare atten-zione ai pacchetti da usare nelle varie circostanze.I singoli argomenti non vengono approfonditi neidettagli ma si rimanda alla letteratura specifica oad i manuali dei pacchetti suggeriti, ove necessario.

Premessa

Il presente articolo non è una guida di scritturaper tesi di laurea,1 bensì spiega come utilizzareLATEX2ε per scriverla. La filosofia seguita è quelladi non approfondire i vari temi nei dettagli (per iquali si rimanda a manuali specifici) ma di trattareil più vasto numero di argomenti e di indicare lesoluzioni che l’autore ritiene migliori. La sceltadei contenuti deriva in primo luogo dall’esperienzadell’autore ed in secondo dai numerosi interventiriguardanti tesi di laurea presenti sul forum delguIt (Gruppo Utilizzatori Italiani di TEX),2 cheresta sempre un valido riferimento per tutte letematiche trattate nel presente documento.

Il testo presume che il lettore conosca già i rudi-menti di LATEX2ε, ovvero che abbia letto una dellenumerose guide di base disponibili gratuitamentein rete [2, 3, 13, 19, 30, 35, 37] oppure un libro[4, 9, 15, 17, 18, 20–24]; per alcuni argomenti (adesempio figure e tabelle) si rimanda alla lettura ditesti specifici ed in generale si invitano gli utenti aconsultare le fonti Web presentate nel par. 7. Ogni-qualvolta si cita un pacchetto, non si fornisce unadescrizione completa del suo funzionamento, per laquale si rimanda al relativo manuale,3 ma si ana-

∗Ringrazio in primo luogo Fabiano Busdraghi che hacollaborato alla scrittura del par. 4. Ringrazio inoltre tutticoloro che mi hanno consigliato durante la stesura e larevisione di questo documento ed in particolare ClaudioBeccari, Gustavo Cevolani, Massimo Guiggiani, MaurizioHimmelmann, Lorenzo Pantieri ed Emiliano Vavassori.

1. Sono attualmente disponibili numerose guide di scrit-tura sia per tesi di laurea di tipo generico [10, 26] chespecifiche per tesi di laurea scientifiche [27, 28].

2. Il forum del guIt è raggiungibile al seguente indirizzohttp://www.guit.sssup.it/forum/.

3. La maggioranza dei pacchetti per LATEX è accompa-gnata da un manuale che ne descrive l’utilizzo e spessopresenta degli esempi. La posizione del manuale dipendedalla distribuzione TEX che si usa ma in generale esso sitrova in una sottocartella di /texmf/doc.

lizzano le opzioni più importanti e se ne suggeriscel’utilizzo.

1 La documentclassPer una tesi di laurea è consigliabile utilizzare la

classe book. Nelle opzioni della classe, oltre alla di-mensione del font di base (10pt, 11pt o 12pt)4 e aquella del foglio (tipicamente a4paper), è possibilescegliere:

• se avere un documento fronte-retro (twoside)o solo fronte (oneside),

• se collocare la prima pagina dei capitoli su fac-ciate destre (openright) o indifferentemente(openany).

Si suggerisce di utilizzare la classe book invece diquella report in quanto la prima prevede tre coman-di (\frontmatter, \mainmatter e \backmatter)5che controllano il formato del numero di pagina e lanumerazione dei capitoli. Nel frontmatter le paginesono numerate con i numeri romani minuscoli (i, ii,iii, ecc.) ed i capitoli non sono numerati (come sesi utilizzasse il comando asteriscato \chapter*{}).Nel mainmatter le pagine sono numerate con nu-meri arabi (la numerazione riparte da 1) e i capitolisono numerati con in numeri arabi. Nel backmatterle pagine sono numerate come nel mainmatter (lanumerazione prosegue da quella del mainmatter)ma i capitoli non sono numerati.

Si consiglia inoltre di utilizzare l’opzione fronte-retro (twoside) in quanto:

• si dimezza lo spreco di fogli di carta,6

• è possibile usare testatine differenziate perpagine sinistre e destre,

• i libri sono scritti in questo modo (e dunqueci si aspetta che chi legge la tesi sia abituatoa questo layout).

4. Per avere una buona leggibilità su fogli A4 èconsigliabile usare un font di base di dimensione 11 pt.

5. Per l’uso dei comandi si rimanda al par. 3.6. Un comportamento comune a molti laureandi con-

siste nell’usare qualunque strumento tipografico possibileper aumentare il numero di pagine della tesi (allargando imargini, aumentando la dimensione del font, aumentandol’interlinea, inserendo molte figure, stampando solo fronte,ecc.). Tralasciando il fatto che la qualità dei contenuti è piùimportante della quantità, spesso questi espedienti produ-cono dei risultati tipografici pessimi. Si consiglia dunque diconcentrarsi sui contenuti e lasciar perdere l’impostazionetipografica (a questo pensa il LATEX) ed in particolare ilnumero di pagine prodotto.

1

Lapo F. Mori Scrivere la tesi di laurea con LATEX2ε

Se ad esempio si vuole avere la tesi con dimensio-ne del corpo 11 pt, stampata fronte-retro su fogliA4, con collocazione della prima pagina dei capitolisu facciate destre, dovremo usare il comando

\documentclass [11pt,a4paper ,twoside ,%openright ]{book}

Alternativamente può essere utilizzata la clas-se memoir che risulta particolarmente flessibile epermette di personalizzare molti aspetti del docu-mento (testatine, titoli capitoli, note, indici, ecc.)senza dover caricare altri pacchetti; si rimanda alladocumentazione della classe per i dettagli.

2 Organizzazione dei files

La gestione di documenti articolati come un li-bro o una tesi di laurea può diventare complessae dunque è auspicabile suddividere il testo in piùfile. LATEX2ε permette di avere un main file cheviene compilato ed in cui sono richiamati gli altrifile con i comandi \include e \input. Il comando\input{nomefile} permette il nesting, ovvero èpossibile richiamare un file che ne richiama un altro.Il comando \include{nomefile} non permette ilnesting ma inserisce un \clearpage prima del te-sto che contiene e permette di utilizzare il comando\includeonly{nomefile1,nomefile2,...} perinserire solo i file tra parentesi. Quando si usa\includeonly{nomefile1,nomefile2,...} ven-gono compilati solamente i file tra parentesi graffeed i contatori (numeri di pagina, numeri di note,ecc.) non vengono aggiornati.

3 Sezioni della tesi

L’organizzazione della tesi di laurea è argomentodei manuali di scrittura [10, 26–28] ed in particolarmodo della normativa ISO relativa alla presenta-zione dei rapporti scientifici e tecnici [1]. In questoparagrafo si propone una possibile struttura perla tesi e si affrontano le problematiche relative adogni sezione.

La tesi può in generale presentarsi con laseguente struttura:7

7. Il simbolo * contraddistingue le sezioni facoltativementre ◦ indica che le sezioni non devono essere presentenell’indice.

• Il frontespizio◦

• La dedica*◦

• Il sommario*◦

• I ringraziamenti*◦

• Gli indici◦

• I simboli e lenotazioni*

• La prefazione*

frontmatter

• I capitoli interni

• Le appendici*

}mainmatter

• La bibliografia

• L’elenco degliacronimi*

• L’indice analitico*

backmatter

3.1 Il frontespizio

La struttura ed il contenuto del frontespizio sonogeneralmente imposti dalla facoltà presso cui lalaurea è conseguita, dunque è necessario crearload hoc. Spesso il frontespizio è costituito da duepagine, una in cui compare solo il nome del candi-dato ed un’altra in cui è presente anche quello deirelatori e dei correlatori, accanto ai quali vengonoapposte le rispettive firme. Per la creazione di que-ste pagine si faccia riferimento ai comandi standarddel LATEX2ε [4, 9, 13, 15, 17, 22–24, 30]. Alcunispunti su come impostare il codice per generare ilfrontespizio sono disponibili in rete.8

Per ottenere il logo dell’università sullo sfondocome in fig. 1(a) a fronte può essere utilizzato ilpacchetto eso-pic e definito il comando\newcommand\AlCentroPagina [1]{%

\AddToShipoutPicture *{\ AtPageCenter{%\makebox (0 ,0){\ includegraphics%[width =0.9\ paperwidth ]{#1}}}}}

che si usa così\AlCentroPagina{nome_logo}

I puntini su cui fare la firma presenti in fig. 1(b)nella pagina successiva possono essere ottenuti conil comando \dotfill.

Il pacchetto titling permette di modificare il ty-pesetting prodotto con il comando \maketitle maspesso il frontespizio di una tesi di laurea differiscetroppo da quello prodotto dalle classi standard edè quindi necessario ridefinirlo completamente.

3.2 La dedica

La dedica, ove presente, può assumere le piùsvariate forme a seconda dei gusti dell’autore. Di

8. http://zoonek.free.fr/LaTeX/LaTeX_samples_title/0.html

2

Scrivere la tesi di laurea con LATEX2ε Lapo F. Mori

(a) (b)

Figura 1: Esempio di frontespizio.

solito (vedi ad esempio la fig. 2 nella pagina se-guente) è costituita da una riga allineata a destraad esempio con il comando\begin{flushright}...\end{flushright}

La posizione verticale della riga nella paginapuò essere scelta a piacere e per controllarla risultaparticolarmente conveniente l’uso di una coppiadi comandi \vspace{\stretch{...}}; in questomodo è infatti possibile impostare il rapporto tralo spazio che precede la dedica e quello che segue.Se ad esempio si vuole che lo spazio che segue siail doppio di quello che precede, è possibile usare icomandi\null\vspace {\ stretch {1}}...\vspace {\ stretch {2}}\ null

3.3 Il sommario

Il sommario o abstract viene generato conl’ambiente\begin{abstract}...\end{abstract}

che è definito nelle classi article e report. Se siutilizza la classe book è necessario inserire nel pre-ambolo la definizione di tale ambiente (si riportala definizione presente nella classe report)9

9. Per l’utilizzo del pacchetto fancyhdr si rimanda alpar. 6.2.1.

\usepackage{fancyhdr}\pagestyle{empty}

\newenvironment{abstract}%{\ cleardoublepage\null \vfill\begin{center}%\bfseries \abstractname \end{center }}%

{\vfill\null}

Per le tesi di laurea in italiano è spesso richiestoche sia presente anche la traduzione inglese dell’ab-stract. Utilizzando il pacchetto babel è possibile se-lezionare la lingua per le due versioni dell’abstractin modo che sia effettuata la corretta sillabazionedelle parole e che sia caricato in automatico il cor-retto titolo del sommario. Dopo aver richiamato ilpacchetto nel preambolo con il comando\usepackage[italian ,english ]{babel}

è sufficiente inserire i sommari come segue\begin{abstract}... versione del sommario in italiano ...\end{abstract}

\selectlanguage{english}%\begin{abstract}... English version of the abstract ...\end{abstract}\selectlanguage{italian}%

Il risultato è riportato in fig. 3 nella pagina 5.

3.4 Gli indici

Gli indici di solito sono posizionati subito dopoil sommario nel seguente ordine:

• indice

• elenco delle figure

3

Lapo F. Mori Scrivere la tesi di laurea con LATEX2ε

Figura 2: Esempio di dedica.

• elenco delle tabelle

• altri elenchi

e vengono prodotti automaticamente da LATEX2εcon i comandi\tableofcontents\listoffigures\listoftables

Per creare elenchi di oggetti flottanti personaliz-zati (ad esempio listati di programmi, algoritmi,ecc.) si faccia riferimento al pacchetto float ed airelativi comandi \newfloat e \listof. Per modi-ficare il layout degli indici è possibile utilizzare ilpacchetto tocloft.

3.5 I simboli e le notazioni

Talvolta risulta opportuno far precedere un elen-co dei simboli e delle notazioni utilizzate al testodella tesi. A questo scopo può essere utilizzatoil pacchetto nomencl che genera l’elenco automa-ticamente per mezzo del programma MakeIndex.Alternativamente è possibile creare manualmentel’elenco ad esempio utilizzando l’ambiente tabular.In fig. 4 nella pagina 6 si riporta un esempio.

3.6 Le appendici

Le appendici sono dei normali capitoli la cuinumerazione è però in lettere latine. LATEX2εpermette di crearle semplicemente con il coman-do \chapter{...} preceduto da \appendix; se

si hanno più appendici, \appendix deve essererichiamato solo una volta. Si riporta un esempio:...\mainmatter\include{capitolo 1}\include{capitolo 2}\include{capitolo 3}

\appendix\include{appendice 1}\include{appendice 2}...

3.7 L’indice analitico

L’indice analitico può essere creato in automati-co per mezzo del pacchetto makeidx e del program-ma MakeIndex. Nel preambolo deve essere presenteanche il comando \makeindex.

3.8 La bibliografia

Così come l’indice analitico, anche la bibliografiapuò essere gestita in modo automatico da LATEX2ε.Essa può essere creata manualmente per mezzodell’ambiente thebibliography, tuttavia è altamentepreferibile l’utilizzo del programma BibTEX chepermette di separare il contenuto dei riferimentibibliografici (archiviati in appositi databases .bib)e la loro formattazione (gestita da stili .bst).

Un pacchetto particolarmente utile per la gestio-ne della bibliografia è costituito da natbib, che èaccompagnato da una esaustiva guida ed al qua-le si può affiancare lo stile natbib_ita.bst perbibliografie in italiano.10 Qualora sia necessarioinserire degli indirizzi di siti web nella bibliografiaè consigliabile l’utilizzo del pacchetto url. Il coman-do \url{} offerto da tale pacchetto è una formadi \verb che permette l’accapo in corrispondenzadi certi caratteri che tipicamente compaiono de-gli indirizzi web ed email (ad esempio / e .). Unesempio di utilizzo è presente a pagina 15.

La distribuzione standard di LATEX e il pacchet-to natbib offrono numerosi stili bibliografici (fi-les .bst), tuttavia esiste un modo facile e velocedi crearsi uno stile personalizzato: il programmamakebst, disponibile su CTAN.11 È sufficiente com-pilare con LATEX il file makebst.tex e risponderein modo interattivo alle domande. Alla fine vie-ne creato un file .dbj che va rinominato .tex ecompilato con LATEX per ottenere il .bst.

Per far comparire la bibliografia nell’indice(\tableofcontents) è necessario utilizzare il co-mando \addcontentsline. Il seguente codice vi-sualizza i riferimenti bibliografici con lo stile plain,aggiunge all’indice la sezione (nel caso di una tesiè un capitolo) della bibliografia e richiama il da-tabase tesibib.bib; si noti che viene utilizzatoil comando \bibname per rendere il nome dellabibliografia dipendente dalla lingua utilizzata.12

10. natbib_ita.bst è scaricabile da http://www.guit.sssup.it/downloads/natbib_ita.zip.

11. http://www.ctan.org/12. Con l’opzione italian di babel \bibname produ-

4

Scrivere la tesi di laurea con LATEX2ε Lapo F. Mori

(a) (b)

Figura 3: Esempio di abstract in doppia lingua.

\cleardoublepage\bibliographystyle{plain}\refstepcounter{section}\addcontentsline{toc}{ chapter }{\ bibname}\bibliography{tesibib}

4 Gli oggetti

4.1 Le figure

Le figure sono uno degli argomenti trattati piùestesamente dalle guide; esistono anche guide [6, 8,33] e libri [16] interamente dedicati all’argomento acui si rimanda il lettore per ogni approfondimento.I problemi incontrati dagli utenti LATEX2ε durantel’inserimento di figure sono generalmente di duetipi. Una parte dei problemi derivano dalle figurein sé, ovvero dal file che si cerca di inserire in undocumento, (verrà trattato nel par. 4.1.1) mentreun altro tipo di problemi, totalmente distinto dalprecedente, è quello degli oggetti flottanti (verràtrattato nel par. 4.3).

4.1.1 Formati

Esistono due grandi classi di figure, le immaginivettoriali e le immagini bitmap. Le prime sonodescritte da forme e possono essere scalate e/o de-formate senza perdere definizione; sono soprattuttoadatte per i grafici e per gli schemi. Le seconde

ce “Bibliografia” mentre con l’opzione english produce“Bibliography”.

sono matrici di pixel colorati e sono adatte per lefotografie.

La prima cosa da fare è produrre figure nel for-mato più adatto per i propri scopi. È inutile salvaregrafici o schemi in .jpeg per poi convertirli in .epsin quanto la conversione di un’immagine bitmap in.eps include semplicemente il file bitmap in una“cornice” .eps senza migliorare in alcun modo laqualità. È inutile anche fare la conversione oppostada file vettoriale a bitmap perché in questo modo siperdono le informazioni sulla geometria contenutanella figura e quindi si abbassa la qualità del file.

Il parametro più importante di un .eps sono iBounding Box (BB), che determinano la taglia ef-fettiva dell’immagine e che servono a LATEX2ε percalcolare lo spazio da riservare alla figura. Ideal-mente i BB dovrebbero essere al limite massimodel contenuto dell’immagine, ma spesso i program-mi di grafica lasciano grandi bordi bianchi attornoalla figura disegnata. Questo porta spesso a grandiconfusioni, perché di fatto LATEX2ε sta lasciandoalla figura lo spazio corretto, ma visivamente partedi questo è utilizzato per il bordo bianco, quindila figura appare troppo piccola, non centrata, coneccessivi margini verticali, etc. La prima cosa daverificare è quindi che il nostro programma di gra-fica generi degli .eps con BB corretti. Per farlobasta aprire la figura con Ghostview e attivarela visualizzazione dei BB. Se questi non sono cor-retti bisogna cercare di configurare correttamente

5

Lapo F. Mori Scrivere la tesi di laurea con LATEX2ε

Figura 4: Esempio di elenco dei simboli.

il programma di grafica, ma il problema non haniente a che vedere con LATEX2ε. Nel caso si abbiauna o due figure con BB errati questi si possonocorreggere a mano aprendo il file .eps con qualun-que editor di testo e modificando i valori dei BB,che si trovano facilmente in una delle prime righe.Se però il problema riguarda molti file bisognacercare di correggerlo all’origine. Ulteriori dettaglisull’utilizzo delle figure con PDFLATEX2ε e sullaconversione da file .eps a .pdf sono riportati nelpar. 5.2.

4.1.2 Pacchetti utili

Per inserire le figure è necessario caricare il pac-chetto graphicx, della cui guida si consiglia la let-tura. Per ottenere sottofigure (vedi ad esempiola fig. 1 nella pagina 3) è necessario caricare ilpacchetto subfig.13

In casi semplici non è necessario ricorrere alpacchetto visto che all’interno degli ambienti figuree table si può mettere più di un grafico o di unatabella. Se si hanno quindi due o più figure chepossono essere raggruppate insieme, scrivendo\begin{figure }[tb]

\includegraphics[width =0.3\ textwidth ]{fig:a}\caption{didascalia:a}\label{fig:a}\hspace {4em}\includegraphics[width =0.3\ textwidth ]{fig:b}\caption{didascalia:b}\label{fig:b}

\end{figure}

In questo modo si riduce il numero di oggettiflottanti e se ne facilita l’inserimento.

Al fine di mantenere ordine nei file sorgenti, èconsigliabile raccogliere tutte le figure in una opiù sottocartella; se ad esempio tali sottocartellesi chiamano dir_1 e dir_2, è sufficiente inserirenel preambolo\graphicspath {{dir _1/},{ dir _2/}}

L’argomento di \graphicspath può essere relativoalla cartella dove si trova il file .tex che viene

13. Tale pacchetto sostituisce il pacchetto subfigure cheè stato dichiarato obsoleto dal suo stesso autore.

compilato (come nell’esempio precedente), oppurepuò essere un percorso assoluto, come ad esempio\graphicspath {{c:/ documenti/tesi/immagini /}}

La formattazione delle didascalie può essere con-venientemente controllata con il pacchetto caption.Un utile lettura sull’argomento è [6].

4.2 Le tabelle

Così come per le figure, anche per le tabelleesistono guide specifiche a cui si rimanda per ogniapprofondimento [29].

Per migliorare la spaziatura dell’ambiente tabularstandard è possibile utilizzare il pacchetto ctable,mentre se si vogliono colorare le righe o le colonne ènecessario caricare il pacchetto xcolor con l’opzionetable. Nel caso di tabelle di grandi dimensioni èpossibile:

• ridurre la dimensione della tabella effettuan-do una scalatura ad esempio con i seguenticomandi\begin{center}

\resizebox {0.95\ textwidth }{!}{%\begin{tabular}...\end{tabular }}

\end{center}

• ruotare la tabella di 90° con il pacchettorotating,14

• spezzare la tabella su più pagine con ilpacchetto supertabular.

4.3 Controllo degli oggetti flottanti

Spesso gli utenti si lamentano del fatto cheLATEX2ε sposti le figure (e in generale gli oggettiflottanti) lontano dal punto in cui vengono inserite.Nella maggioranza dei casi questo è dovuto ad unutilizzo erroneo delle opzioni di posizionamento

14. Altre tecniche per ruotare immagini e tabelle sonoindicate in [38].

6

Scrivere la tesi di laurea con LATEX2ε Lapo F. Mori

degli oggetti flottanti. Nel presente testo si vuoleenfatizzare che alcune scelte devono essere presenella fase di stesura del testo (par. 4.3.1) mentrealtre sono riservate, quando necessarie, alla fase direvisione (par. 4.3.2).

4.3.1 Cosa fare durante la stesura del testo

In primo luogo bisogna accettare il fatto che seLATEX2ε sposta un oggetto flottante è perché lospazio è fisicamente insufficiente, o per considera-zioni estetiche; per esempio LATEX2ε non metteràmai una figura seguita da un titolo di sezione eda un cambio pagina, ma preferirà stampare lasezione e poi la figura, oppure se aggiungiamo unoggetto flottante in fondo ad una pagina, LATEX2εè obbligato a spostarlo almeno nella pagina succes-siva. Se lo spazio è insufficiente, è inutile cercaredi forzare LATEX2ε a mettere l’oggetto flottantein tale posizione: se lo spazio fisico non è c’è, nonpossiamo inventarlo.

Per fortuna con un minimo di accortezzaLATEX2ε fa un ottimo lavoro. Per prima cosa èopportuno utilizzare sempre il posizionamento au-tomatico evitando di aggiungere \clearpage ocomandi simili: in fase di redazione dovremmo soloconcentrarci sui contenuti e non sull’impaginazione.In generale i posizionamenti fatti a mano interfe-riscono con la complessa routine di LATEX2ε peril posizionamento degli oggetti flottanti e porta-no a risultati peggiori rispetto a quelli di default.Seguendo le semplici indicazioni che seguono, ilposizionamento automatico mantiene gli oggettiflottanti vicini al punto di inserimento ed inoltreevita che l’utente si preoccupi continuamente delposizionamento dei float, lasciando più tempo perlavorare sui contenuti.

Una delle origini dei problemi lamentati è l’u-tilizzo eccessivo dell’opzione [h] (che chiede diposizionare la figura nel punto dove compare nelcodice): gli oggetti flottanti vengono spesso inseriticon l’opzione [htbp] o peggio [h!t]. In genera-le si pensa che questa opzione sia la migliore permantenere gli oggetti flottanti vicino al punto diinserimento. In realtà può funzionare bene soloquando gli oggetti inseriti sono molto piccoli (doveper piccolo si intende con un’altezza molto inferio-re rispetto all’altezza del corpo del testo). Il modomigliore per utilizzare le opzioni di posizionamentoè quello di domandarsi in primo luogo se l’ogget-to flottante sarà abbastanza piccolo per stare inuna pagina di testo o se avrà bisogno di una pa-gina tutta per sé. Nel primo caso lo introdurremoquindi con un’opzione di posizionamento [tb], nelsecondo con [p]. Se non ci sono oggetti flottantiin sospeso, nel primo caso LATEX2ε potrà spostarel’oggetto subito prima del punto di inserzione, cosache non può fare se si usa [h] prima di [t], o nellapagina immediatamente successiva. Usando invece[p] per i grossi oggetti flottanti, questi verrannoimmediatamente stampati in una pagina dedicata,

e non verrano spostati alla fine del capitolo comesuccede con [tbp]. Basta sfogliare un qualunquetesto ben impaginato per accorgersi che le figuresono introdotte proprio in questo modo: in genera-le all’inizio o alla fine della pagina, in una paginaintera se sono grandi, raramente nel corpo del testose sono davvero piccole. Alcuni utenti sono infasti-diti dal fatto che alcuni oggetti flottanti appaianoprima del testo in cui sono citati (ad esempio unafigura in alto nella pagina in cui è citata): perrisolvere questo problema è possibile utilizzare ilpacchetto flafter che impedisce agli oggetti flottantidi apparire prima della loro definizione nel testo.

Infine è utile ricordare che LATEX2ε riesce a po-sizionare tutte le figure in modo corretto solo se ilrapporto

testofigure

è sufficientemente alto. Da questo segue che è au-spicabile (per altro non solo per fini tipografici)scrivere qualche cosa di interessante piuttosto cheriempire le lacune con immagini! Se tale rapportoè troppo basso, può accadere che la compilazionesi interrompa e venga restituito il seguente errore! LaTeX Error: Too many unprocessed floats.

Questo è dovuto al fatto che LATEX2ε ha una certaquantità di memoria dedicata al posizionamentodegli oggetti flottanti; se troppi oggetti si accu-mulano durante la compilazione tale memoria puòesaurirsi [11]. Per risolvere questo problema è pos-sibile utilizzare il pacchetto placeins che definisceil comando \FloatBarrier che non può essere ol-trepassato dagli oggetti flottanti e quindi imponeil posizionamento di tutti quelli che sono ancorain memoria. Nel caso che il documento presentidei posti dove possa essere inserita un’interruzionedi pagina, conviene utilizzare \clearpage. Talecomando, oltre a creare un’interruzione di pagi-na, impone il posizionamento di tutti gli oggettiflottanti ancora in memoria in modo analogo a\FloatBarrier. Il pacchetto morefloats aumentail numero di oggetti flottanti che possono esseremantenuti in memoria durante la compilazione da18 a 36. Talvolta alcune riviste richiedono che nellebozze tutte le figure e tabelle siano riportate allafine del documento: per fare questo in automaticoè possibile utilizzare il pacchetto endfloat.

Se tutto ciò non fosse sufficiente, nella fase prece-dente la stampa, e solamente allora, è possibile in-tervenire manualmente come spiegato nel paragrafoseguente.

4.3.2 Cosa fare durante la revisione del testo

Nella fase che precede la stampa può essere ne-cessario intervenire manualmente per correggereil posizionamento degli oggetti flottanti (quali adesempio le figure e le tabelle). A questo riguardoesistono numerosi pacchetti di cui i più utili sono

7

Lapo F. Mori Scrivere la tesi di laurea con LATEX2ε

costituiti da float, che permette di forzare il posi-zionamento dell’oggetto nel punto in cui è situatoil relativo ambiente per mezzo dell’opzione H, eda placeins, che permette di mettere delle barriereinvalicabili per gli oggetti flottanti con il comando\FloatBarrier.

TEX mette a disposizione parametri checontrollano gli oggetti flottanti:

\setcounter{topnumber}{...} massimo nu-mero di float in posizione t per ognipagina

\def\topfraction{...} massima frazione pa-gina per i float in posizione t per ognipagina

\setcounter{bottomnumber}{...} massimo nu-mero di float in posizione b per ognipagina

\def\bottomfraction{...} massima frazionepagina per i float in posizione b per ognipagina

\setcounter{totalnumber}{...} massimo nu-mero di float nella stessa pagina

\setcounter{dbltopnumber}{...} massimo nu-mero di float grandi nella stessa pagina

\def\textfraction{...} minima frazione pagi-na per il testo

\def\floatpagefraction{...} minima frazio-ne pagina per i float in posizione p

\def\dbltopfraction{...} massima frazionedi pagina per i float grandi in posizione t

\def\dblfloatpagefraction{...} minima fra-zione di pagina per i float grandi in posizionep

5 Compilare il codice5.1 Scelta del formato

Il codice LATEX può essere compilato per ottenerein output file DeVice-Independent (.dvi) oppure fi-le Portable Document Format (.pdf).15 Entrambii formati hanno pro e contro ed in genere vengo-no utilizzati con scopi differenti. Il .dvi permettela ricerca diretta (facendo doppio click sul codiceall’interno dell’editor, il programma di visualizza-zione del .dvi trova il rispettivo output) ed inversa(facendo doppio click all’interno del programmadi visualizzazione del .dvi, il cursore viene posi-zionato sul rispettivo codice all’interno dell’editor)che sono molto utili in fase di elaborazione dellatesi. Tuttavia la maggioranza dei visualizzatori di

15. In realtà una terza opzione è costituita dai filePostScript (.ps) ma questi sono stati di fatto soppiantatidal formato .pdf e quindi sono sconsigliati.

.dvi non visualizzano correttamente gli effetti dicomandi che modificano le figure quali \resizeboxe \rotatebox16 ed inoltre non sfruttano il pacchet-to microtype (vedi il par. 5.2). Il .pdf, invece, purnon offrendo la ricerca diretta ed inversa, visua-lizza correttamente tutti gli effetti del pacchettographicx, sfrutta il pacchetto microtype, è un for-mato molto diffuso anche tra coloro che non usanoLATEX, permette di sfruttate i riferimenti iperte-stuali forniti dal pacchetto hyperref, permette direstringere l’accesso al documento per mezzo dipassword.17

In definitiva si consiglia di usare il .dvi durantela stesura della tesi ed il .pdf per la stampa e perla distribuzione della tesi in formato elettronico.

5.2 Creazione di PDF

La creazione di un PDF può essere effettuata indifferenti modi di cui i principali sono:

• la conversione di un file .dvi o .ps attraversoGhostscript,

• la compilazione diretta del sorgente .tex conPDFLATEX2ε.

Senza entrare nei dettagli, per i quali si rimandaa testi specifici come [32, 34], per sfruttare appienole potenzialità del formato PDF18 è necessario uti-lizzare PDFLATEX2ε che è presente in tutte le piùimportanti distribuzioni di LATEX2ε ed è gestitodai principali editor di testo dedicati al LATEX2ε.

La differenza fondamentale tra le due proce-dure consiste nel formato delle immagini inseri-te con il comando \includegraphics: mentre laconversione da file .dvi o .ps utilizza gli stes-si file .eps che servono per la compilazione del.dvi, PDFLATEX2ε richiede file .pdf (se vetto-riali) oppure .jpg o .png (se bitmap).19 Volendoutilizzare PDFLATEX2ε, è dunque necessario effet-tuare una conversione preliminare dei file .eps in.pdf; questa può essere convenientemente effet-tuata con Ghostscript per mezzo dell’interfacciagrafica eps2pdf.

Se si prevede di compilare sia con LATEX2εche con PDFLATEX2ε è consigliabile non spe-cificare l’estensione dei file grafici caricati da\includegraphics; volendo ad esempio inseri-re il file figura_01.eps, è necessario creare ilfigura_01.pdf con eps2pdf e poi inserire nel testo\includegraphics{figura _01}

16. Le versioni di YAP (visualizzatore di .dvi diMiKTEX) successive alla 2.5 risolvono questi problemi.

17. È possibile limitare l’accesso al file, limitarne la stam-pa (impedirla, oppure consentirla solo a bassa risoluzione)e limitarne le modifiche (estrazione di testo, estrazione oeliminazione di pagine, ecc.).

18. Il formato PDF permette di utilizzare l’ipertesto, ibookmark e i thumbnail che non vengono prodotti nellaconversione a partire da file .dvi o .ps.

19. Per i dettagli riguardo ai formati delle figure sirimanda la par. 4.1.1.

8

Scrivere la tesi di laurea con LATEX2ε Lapo F. Mori

Così facendo, quando si compila con LATEX2ε vie-ne caricato il file figura_01.eps, mentre quandosi compila con PDFLATEX2ε viene caricato il filefigura_01.pdf.

Per abilitare i riferimenti ipertestuali all’inter-no del file PDF20 è necessario caricare il pac-chetto hyperref. Per approfondire come utilizza-re font TrueType con TEX (LATEX) e PDFTEX(PDFLATEX) si consiglia di visitare il sito http://www.radamir.com/tex/ttf-tex.htm. Si consi-glia in oltre di utilizzare il pacchetto microtype chemigliora il riempimento delle righe abilitando:

• la font expansion: espande secondo l’as-se orizzontale i caratteri per ottenere unriempimento ottimale della riga;

• la character protrusion: permette che certicaratteri sporgano leggermente a fine riga(tipicamente segni di punteggiatura e trattini).

Per utilizzare queste due modalità, è sufficien-te caricare il pacchetto senza specificare alcunaopzione\usepackage{microtype}

6 Pacchetti utili6.1 La lingua italiana

6.1.1 Norme tipografiche

In italiano la maggioranza delle regole tipografi-che non sono universali e vincolanti, ma dipendonopiuttosto da convenzioni e abitudini o dal gustodell’autore. Nonostante questo, è importante chel’autore della tesi conosca quali sono le principa-li “norme” tipografiche italiane. Cevolani [7] neoffre una sintesi e, per ogni regola, mostra comeapplicarla in LATEX.

6.1.2 La sillabazione

Per attivare la sillabazione italiana e caricare inomi delle sezioni21 in lingua italiana è necessa-rio caricare il pacchetto babel con l’opzione perl’italiano per mezzo del comando\usepackage[italian ]{babel}

L’utilizzo di babel è necessario per avere la sillaba-zione italiana ma non sufficiente in quanto serveanche che il file ithyph.tex sia attivato (riferirsi almanuale della distribuzione LATEX2ε che si usa).22

LATEX2ε sillaba correttamente quasi tutte delleparole italiane, tuttavia esistono casi in cui si uti-lizzano nomi propri oppure parole rare; in questaeventualità, se la sillabazione tentata da LATEX2εnon è soddisfacente, è possibile suggerirla con il

20. Anche alcuni visualizzatori di file .dvi supportano iriferimenti ipertestuali.

21. Ad esempio sommario, bibliografia, indice, ecc.22. A titolo di esempio si riporta la procedura per attivare

il file ithyph.tex su MiKTeX: dal pannello “languages” su“MiKTeX options” attivare la voce “italian – ithyph.tex”.

comando \hyphenation (va posizionato nel pre-ambolo): si devono scrivere le parole sillabate traparentesi graffe, separate da uno spazio, come nelseguente esempio\hyphenation{sil -la-ba-zio -ne sim -pa-ti-ca}

Il precedente comando può anche essere utilizzatoquando si vuole che alcune parole non venganosillabate: è sufficiente scriverle senza trattini comenel seguente esempio\hyphenation{MATLAB Mathematica}

Tale comando può anche essere utilizzato per for-zare una sillabazione particolare; se ad esempio sivuole che la parola melograno sia spezzata tra meloe grano e non in altri punti, è sufficiente scrivere:\hyphenation{melo -grano}

Se la parola in questione compare una sola volta,è possibile suggerirne la sillabazione direttamentenel testo con \-; avremo ad esempiosil\-la\-ba\-zio\-ne

A conclusione di questo paragrafo, è doveroso ri-cordare che gli interventi manuali sulla sillabazionedovrebbero sempre essere fatti nella fase di revisio-ne che precede immediatamente la stampa. Spessoè preferibile riformulare una frase che dà luogoad un errore di overfull piuttosto che imporreparticolari sillabazioni.

6.1.3 Il rientro sulla prima riga

I libri italiani contemporanei generalmente nonhanno il primo capoverso dopo il titoletto di se-zione rientrato, tuttavia alcuni autori preferisconoavere tale rientro. Per attivare il rientro sulla primariga di ogni sezione, sottosezione, ecc. è necessariocaricare il pacchetto indentfirst in quanto la con-venzione anglosassone (di default su LATEX2ε) nonlo prevede. Si veda la fig. 5 nella pagina seguente.

6.1.4 Caratteri accentati

Su LATEX2ε i caratteri accentati possono essereintrodotti con i comandi standard23 \‘{e}, \’{e},ecc. oppure direttamente da tastiera è, é, ecc. senel preambolo si carica il pacchetto inputenc conla appropriata codifica.

Le opzioni sono: [latin1] o [latin9] perLinux, Unix, VMS, [utf8x] per GNU/Li-nux, [ansinew] per Windows (codepage 1252),[cp850] per OS/2, MSDOS (codepage 850),[applemac] per Apple Macintosh.

6.2 Il layout

6.2.1 Le testatine ed i piè di pagina

Per personalizzare testatine e piè di pagina èpossibile usare il pacchetto fancyhdr. Per una tesiè probabile che si abbiano impostazioni differentia seconda della sezione e dunque è convenientedefinirsi alcuni comandi che modifichino testatine

23. Per i comandi standard si faccia riferimento a [31].

9

Lapo F. Mori Scrivere la tesi di laurea con LATEX2ε

(a) senza pacchetto indentfirst

(b) con pacchetto indentfirst

Figura 5: Rientro sulla prima riga.

10

Scrivere la tesi di laurea con LATEX2ε Lapo F. Mori

e piè di pagina; un esempio per frontmatter emainmatter potrebbe essere:\newcommand {\ fncyfront }{%

\fancyhead[RO]{{\ footnotesize\rightmark }}\fancyfoot[RO]{\ thepage}\fancyhead[LE]{\ footnotesize {\ leftmark }}\fancyfoot[LE]{\ thepage}\fancyhead[RE,LO]{}\fancyfoot[C]{}\renewcommand {\ headrulewidth }{0.3 pt}}

\newcommand {\ fncymain }{%\fancyhead[RO]{{\ footnotesize

\MakeUppercase\rightmark }}\fancyfoot[RO]{\ thepage}\fancyhead[LE]{{\ footnotesize

\MakeUppercase\leftmark }}\fancyfoot[LE]{\ thepage}\fancyfoot[C]{}\renewcommand {\ headrulewidth }{0.3 pt}}

da utilizzare nel seguente modo\pagestyle{fancy}\fncyfront\frontmatter...\fncymain\mainmatter

La definizione di tali comandi è differente a se-conda che il testo sia fronte-retro (twoside) o solofronte (oneside).

Utilizzando l’opzione openright è possibile ave-re una pagina bianca alla fine del capitolo; perevitare che in questa pagina siano presenti testa-tine o piè di pagina, è sufficiente aggiungere nelpreambolo i seguenti comandi\makeatletter\def\cleardoublepage {\ clearpage\if@twoside\ifodd\c@page\else\hbox {}\ thispagestyle{empty}\ newpage\if@twocolumn\hbox {}\ newpage\fi\fi\fi}\makeatother

In alternativa a fancyhdr è possibile usare ncc-fancyhdr. Tale pacchetto offre gli stessi strumentidi fancyhdr ma ne risolve alcuni problemi.

6.2.2 Il layout della pagina

Molto di frequente i regolamenti di facoltà ri-chiedono un layout della pagina differente da quel-lo prodotto di default dalle classi di LATEX2ε edè dunque necessario modificarlo. Il primo modoper intervenire è l’utilizzo di comandi interni delLATEX2ε quali \textwidth, \oddsidemargin, ecc.,tuttavia questa strada è sconsigliabile per molteragioni [11, 36]. Una migliore soluzione è costitui-ta da pacchetti rigidi, come layaureo,24 che sonodi facile utilizzo25 ma che lasciano all’utente unascarsa possibilità di personalizzare il layout. Nelcaso in cui il layout prodotto dai pacchetti rigidinon soddisfi le esigenze, è possibile utilizzare ilpacchetto geometry che è completamente configu-rabile. Nel caso che siano necessari degli interventi

24. In aggiunta a layaureo, esistono altri pacchetti rigidi,tra cui widemargins, a4 e a4wide, ma se ne sconsiglia l’utilizzoperché essi sono obsoleti.

25. Il pacchetto layaureo, invece, incorpora due modalitàdi layout (con e senza l’opzione big) e permette anche digestire comodamente lo spazio per la rilegatura per mezzodel comando binding.

locali a pagine o a paragrafi è possibile utilizzareil pacchetto chngpage.

Per rilegare la tesi può essere conveniente indi-care sulle pagine dove tagliare il foglio; questo puòessere agevolmente realizzato utilizzando in coppiai pacchetti geometry e crop. Si veda ad esempio lafig. 6 nella pagina successiva.

Di default LATEX2ε cerca di coprire interamentel’altezza della pagina e, ove necessario, inseriscedegli spazi aggiuntivi tra i capoversi oppure dilatagli spazi tra le voci degli elenchi puntati e così via.Se si vuole disattivare questa impostazione ed ave-re dello spazio bianco a piè di pagina quando nonsi riesce a coprirla tutta, è sufficiente aggiungerenel preambolo il comando \raggedbottom. Il com-portamento di default è invece dovuto al comando\flushbottom. Per migliorare la copertura dellepagine è possibile permettere che siano spezzatiambienti matematici di tipo display aggiungendoal preambolo il comando \allowdisplaybreaks.

È conveniente non modificare il comportamentodi default di LATEX2ε fino a quando non si arri-va alla versione definitiva del testo (che precedeimmediatamente la stampa). Solo in questa fase èpossibile intervenire modificando il posizionamentodegli oggetti flottanti (vedi il par. 4.3), oppure in-tervenendo con i comandi appena citati. Prima dimodificare le impostazioni di LATEX2ε è convenien-te provare ad effettuare piccole modifiche al testoche spesso sono sufficienti per risolvere i problemie permettono di ottenere layout più eleganti.

6.2.3 L’interlinea

Spesso i regolamenti di facoltà impongono un’in-terlinea differente da uno (di default su LATEX2ε).Per modificare l’interlinea del documento esistonopiù strade (si veda al riguardo [36]), tuttavia la piùindicata consiste nel caricare il pacchetto setspace.Tale pacchetto fornisce tre interlinee predefiniterichiamate con i comandi \singlespacing (inter-linea singola), \onehalfspacing (interlinea 1,5) e\doublespacing (interlinea doppia); se è necessa-ria un’interlinea differente, è sufficiente utilizzare ilcomando \linespread{...}: tra parentesi graffeva il numero che rappresenta il fattore di scala perl’avanzamento di riga.

6.3 Lo stile

6.3.1 I fonts

In primo luogo è consigliabile utilizzare l’enco-ding T1 che rappresenta il nuovo standard di co-difica dei caratteri di LATEX2ε; tale codifica non èancora la predefinita solo per motivi di compatibi-lità con le versioni di LATEX precedenti a LATEX2εma può essere attivata per mezzo del comando\usepackage[T1]{ fontenc}

L’utilizzo di tale encoding può dare luogo a pro-blemi di visualizzazione di file PDF su versioni

11

Lapo F. Mori Scrivere la tesi di laurea con LATEX2ε

Figura 6: Esempio di segni per il taglio del foglio.

di Adobe Acrobat precedenti alla 6; in particola-re può accadere che i font appaiano sgranati [11].La soluzione di questo problema è fornita dallafamiglia di font cm-super; i font di tale famigliasono PostScript Type 1 con praticamente la stessaforma dei font cm e tc, ma con molti migliorie intermini di qualità di typesetting, tra cui il suppor-to per set di caratteri non-ASCII.26 Per maggioridettagli su questa famiglia si rimanda, oltre chealla relativa documentazione, a [25]. Nel caso chela tesi sia di tipo scientifico, è conveniente abilitarei font matematici forniti dall’AMS con il comando\usepackage{amsfonts}

A questo conviene aggiungere anche\usepackage{amsmath}

che fornisce svariate estensioni per il miglioramen-to della struttura informativa e della stampa didocumenti che contengono formule matematiche.Per modificare la dimensione del font, in aggiuntaai comandi standard,27 è utile il pacchetto relsizeche consente di assegnare dimensioni relative con icomandi \smaller e \larger.

Gli utenti LATEX che provengono da softwareWhat-You-See-Is-What-You-Get (WYSIWYG),28per lo meno all’inizio, sentono l’esigenza di cambia-re font. Questo fenomeno è probabilmente dovutoal fatto che i software WYSIWYG hanno una resatipografica talmente scarsa che l’utente insoddi-sfatto prova a migliorarla cambiando font. Il mioconsiglio è di utilizzare i font che LATEX caricadi default, ovvero la famiglia Computer Modernsviluppata dallo stesso inventore del TEX, DonaldKnuth. Se si vuole a tutti i costi cambiare font, è

26. http://en.wikipedia.org/wiki/ASCII27. tiny, scriptsize, footnotesize, small, normalsize,

large, Large, LARGE, huge e Huge.28. http://en.wikipedia.org/wiki/WYSIWYG

bene ricordare che è necessario scegliere quattrofamiglie (Serif, Sans-serif, Typewriter e i font perla matematica) che formino una buona combina-zione. A tale proposito, è importante ricordare chei font, tranne alcune eccezioni,29 non hanno tutti isimboli necessari per la matematica e quindi nonpossono essere usati se non nel testo. Per cambiarefont è possibile caricare uno dei numerosi pacchet-ti dedicati come pxfonts, mathpazo, helvet, courier,eulervm, literat, lucida, pandora, mathptmx, helvet,courier, kerkis, kmath, qpxmath, qtxmath. In alterna-tiva all’uso dei pacchetti, è possibile installare fontseguendo le istruzioni di [25]. Un elenco dei fontdisponibili è riportato sul sito del TUG olandese.30

6.3.2 Il titolo dei capitoli

Per personalizzare il formato dei titoli dei ca-pitoli è possibile utilizzare il pacchetto fncychap.In fig. 8 nella pagina 15 è mostrato il formatostandard dei capitoli prodotto dalla classe bookmentre in fig. 7 nella pagina 14 è stato utilizzatoil comando

\usepackage[Lenny]{ fncychap}

In alternativa anche il pacchetto quotchap permet-te di personalizzare i titoli dei capitoli, seppuroffrendo molte meno opzioni del precedente.

6.3.3 Liste

Per personalizzare il tipo di numerazione negliambienti enumerate è possibile utilizzare l’omonimo

29. Il TUG olandese ospita una pagina in cui sono ri-portati tutti i font che supportano la matematica (http://www.tug.dk/FontCatalogue/mathfonts.html).

30. http://www.tug.dk/FontCatalogue/

12

Scrivere la tesi di laurea con LATEX2ε Lapo F. Mori

pacchetto enumerate che permette di modificare lostile del contatore31 e del simbolo delimitatore.32

6.3.4 I “mini indici”

Quando i capitoli hanno una struttura particolar-mente complessa, può essere conveniente riportarenella pagina iniziale l’indice del capitolo (vedi adesempio la fig. 7 nella pagina seguente). Questi “mi-ni indici” possono essere prodotti automaticamentecon il pacchetto minitoc.

6.3.5 Le epigrafi

Talvolta si vogliono inserire epigrafi nella paginainiziale dei capitoli. Per farlo è possibile utilizzareil pacchetto epigraph; un esempio è riportato infig. 8 nella pagina 15.

6.3.6 Le note

LATEX2ε produce di default un layout delle notedi alta qualità; esistono tuttavia alcuni accorgi-menti per modificarlo, quando lo si ritenga stret-tamente necessario. Il pacchetto footmisc forniscemolti controlli sulle note tra cui la possibilità diforzare le note al fondo della pagina33 con l’opzionebottom; si veda la fig. 9 nella pagina 16.

Per impedire che le note vengano spezzate supiù pagine è sufficiente assegnare al parametro dipenalità un valore molto elevato, ad esempio\interfootnotelinepenalty =10000

mentre controllare la dimensione della zona as-segnata alle note a piè di pagina si può usare ilcomando\dimen\footins =2cm

6.4 La matematica

6.4.1 I simboli “speciali”

Intendendo con “simboli speciali” tutti quelli chenon sono inseribili direttamente dalla tastiera, ènecessario distinguere tra quelli matematici e quellinon matematici: per i primi dovrebbe essere suffi-ciente caricare i simboli dell’AMS con il pacchettoamssymb; per tutti gli altri simboli sono necessaripacchetti appositi che possono essere facilmenteidentificati grazie a [31].

6.4.2 Rappresentazione dei numeri

Un pacchetto molto utile per la rappresentazionedi numeri è numprint. Tra le funzioni di tale pac-chetto si ricordano l’inserimento di un separatoreogni tre cifre per le migliaia e l’approssimazioneautomatica. Ad esempio

31. È possibile ottenere numeri arabi (1,2,3,. . . ), numeriromani maiuscoli (I,II,III,. . . ) e minuscoli (i,ii,iii,. . . ), letterelatine maiuscole (A,B,C,. . . ) e minuscole (a,b,c,. . . ).

32. È possibile scegliere qualunque carattere comedelimitatore ottenendo ad esempio 1), 1., 1 –,. . .

33. Normalmente LATEX2ε unisce le note con l’ultimariga della pagina e dunque su pagine non piene non si hannole note a fondo pagina.

\numprint {2.742647826672E-01}

produce

2, 743 · 10−01

6.4.3 Unità di misura

Per evitare di formattare a mano le unità di mi-sura è consigliabile l’utilizzo del pacchetto SIunits.Ad esempio\unita {32 ,1}{\ micro\metre}

produce32, 1 µm

Si ricordi che se si utilizza l’opzione italian dibabel, è necessario usare l’opzione italian anchesu SIunits; se si usa il pacchetto amssymb, è neces-sario usare l’opzione squaren su SIunits perché ilcomando square viene già definito dal precedente.

6.4.4 Altri pacchetti

Per evidenziare gli ambienti matematici può esse-re utilizzato il pacchetto empheq. Per la personaliz-zazione degli ambienti “tipo teorema” è necessarioil pacchetto theorem. Il pacchetto xfrac permetteinvece di scrivere correttamente le frazioni nel testoe nel testo matematico (ad esempio: 5⁄7).

6.4.5 Sistema di equazioni

Talvolta si ha la necessità di raggruppare unsistema di equazioni con una parentesi graffa. Aquesto scopo è possibile definire un nuovo ambiente\newenvironment{sistema}

{\left\lbrace\begin{array}{@{}l@{}}}{\end{array }\right.}

Ad esempio il seguente codice\[\ begin{sistema}x_1=\ sigma_b^2-\ sigma_a\\x_2=\ sigma_a^2-\ sigma_b\end{sistema }\]

produce {x1 = σ2

b − σa

x2 = σ2a − σb

6.5 Gli acronimi

La gestione degli acronimi può essere efficace-mente gestita con il pacchetto acronym; tra le altrecose, tale pacchetto genera automaticamente i rife-rimenti ipertestuali tra acronimi nel testo e la lorodefinizione all’interno dell’elenco degli acronimi.Un esempio di elenco degli acronimi è riportato infig. 10 nella pagina 17.

6.6 Codici ed algoritmi

L’inserimento di codici all’interno della tesi è fa-cilmente realizzabile con il pacchetto verbatim; peravere un controllo più vasto della formattazionedel codice è possibile utilizzare il pacchetto listingsche riconosce numerosi linguaggi di programmazio-ne. In alternativa può essere utilizzato il pacchettofancyvrb, che è però meno flessibile.

13

Lapo F. Mori Scrivere la tesi di laurea con LATEX2ε

Figura 7: Esempio di “mini indice”.

Per la formattazione di algoritmi sono invececonsigliabili i pacchetti algorithm e algpseudocode:il primo genera degli oggetti flottanti mentre ilsecondo no.

6.7 Riferimenti incrociati

In molti casi è comodo usare contemporanea-mente i comandi \ref e \pageref per riferisi afigure e tabelle, specialmente quando ci sono piùpagine tra il riferimento e l’oggetto. Per questo,alcuni utenti utilizzano comandi come\newcommand {\ fullref }[1]{%

\ref {#1} a pagina ~\ pageref {#1}}

che semplifica la scrittura del riferimento. Tuttavia,non sapendo a priori dove sia posizionato l’oggettoa cui ci si riferisce, utilizzando un comando delgenere può capitare che il \pageref punti alla pa-gina stessa dove si trova il riferimento producendoun risultato insoddisfacente.

Per rendere automatica la scrittura dei riferi-menti completi è possibile utilizzare il pacchettovarioref che introduce il comando \vref da usarsinello stesso modo del comune \ref. Tale pacchettofunziona in parallelo a babel e quindi si adatta allalingua utilizzata nel testo. Ad esempiosi veda la fig .~\ vref{f5}

produce, a seconda di dove viene posizionata lafigura, qualcosa del tiposi veda la fig. 3.1 nella pagina successiva

oppuresi veda la fig. 3.1 a pagina 24

Per quanto riguarda invece il riferimento adequazioni, è consigliabile utilizzare il coman-do \eqref{...} al posto di (\ref{...}). Adesempiograzie all ’eq.~\ eqref{e2}

produce qualcosa del tipo

grazie all’eq. (3.6)

6.8 Revisione del codice

In fase di revisione del codice è molto utile, oltread un’attenta lettura del file di .log, l’utilizzo deipacchetti refcheck e showkeys che controllano l’uti-lizzo dei \label e dei \ref. In aggiunta a questi èanche conveniente abilitare l’opzione draft per ladocumentclass: in questo modo i punti in cui iltesto sborda dai margini verranno evidenziati condelle barre nere.

7 Siti utili

In aggiunta alle guide ed ai manuali citati nellabibliografia (vedi pag. 15 e seguenti), sono disponi-bili sul Web una serie di risorse utili per risolvere iproblemi incontrati durante l’utilizzo di LATEX2ε.

Riferimento primario per la comunità italianadi utenti LATEX è il sito del Gruppo Utilizzatori

14

Scrivere la tesi di laurea con LATEX2ε Lapo F. Mori

Figura 8: Esempio di epigrafe.

Italiani di TEX (guIt)34 che ospita anche un forumsull’argomento.35

Google, accanto al motore di ricerca tradiziona-le,36 ne mette a disposizione anche uno dedicato alLATEX37 ed inoltre ospita un newsgroup sul tema.38

Altro link di interesse è costituito da the Com-prehensive TeX Archive Network (CTAN)39 cheospita gran parte del materiale su LATEX disponi-bile in rete ed è dotato di un motore di ricerca.Sarovar40 è un catalogo molto completo di pacchet-ti e programmi legati a TEX e LATEX. Permettesvariati tipi di ricerca, in particolare è estrema-mente utile la lista “topical” quando non si conosceil nome di un pacchetto ma solo “quello che devefare”.

Molte università ed istituti di ricerca ospitanodelle guide all’uso di LATEX che generalmente sonopensate per neofiti. Si ricordano quella dell’Uni-versità di Cambridge,41 quella dell’Università diNottingham, principalmente sul setup del siste-ma,42 quella dell’Università di Helsinki,43 quelladella Emory University,44 ed infine quelle dell’I-

34. http://www.guit.sssup.it/35. http://www.guit.sssup.it/forum/36. http://www.google.com/37. http://directory.google.com/Top/Computers/

Software/Typesetting/TeX/LaTeX/38. http://groups.google.com/group/comp.text.tex?

hl=it&lr=&ie=UTF-839. http://www.ctan.org/40. http://texcatalogue.sarovar.org/41. http://www-h.eng.cam.ac.uk/help/tpl/

textprocessing/42. http://www.cs.nott.ac.uk/TSG/manuals/latex/

intro/43. http://www.physics.helsinki.fi/~tfo_www/

instr/latex-guide.html44. http://www.emerson.emory.edu/services/latex/

stituto Nazionale di Fisica Nucleare (INFN).45 Sisegnala inoltre che David R. Wilkins ha reso dispo-nibile in formato html il suo libro Getting Startedwith LATEX.46

Riferimenti bibliografici[1] 5966, U. I. (1989). Documentazione –

Presentazione dei rapporti scientifici e tecnici.

[2] American Mathematical Society(1995). AMS-LATEX User’s Guide.www.dd.chalmers.se/latex/Docs/PDF/amsldoc.pdf.

[3] Baudoin, M. (1998). Impara LATEX (...e met-tilo da parte). http://www.mat.uniroma1.it/centro-calcolo/manuali/impara_latex.pdf.

[4] Beccari, C. (1991). LATEX, Guida a unsistema di editoria elettronica. Hoepli.

[5] Carusillo, L. (2005). Le tabelle inLATEX. http://www.webalice.it/lgcrsll/pgl/latex/Tabelle.pdf.tar.gz.

[6] Caucci, L. e Spadaccini, M. (2005). Gestio-ne di Figure e Tabelle con LATEX. http://www.guit.sssup.it/downloads/fig_tut.pdf.

[7] Cevolani, G. (2006). «Norme tipograficheper l’italiano in LATEX». Ars TEXnica, (1),pp. 29–42.

latex2e/latex2e_toc.html45. http://www.fi.infn.it/pub/tex/doc/html/latex.

html e http://www.pi.infn.it/latex-intro/LaTeX.html46. http://www.maths.tcd.ie/~dwilkins/

LaTeXPrimer/

15

Lapo F. Mori Scrivere la tesi di laurea con LATEX2ε

(a) con opzione bottom

(b) senza opzione bottom

Figura 9: Posizione delle note.

16

Scrivere la tesi di laurea con LATEX2ε Lapo F. Mori

Figura 10: Esempio di elenco degli acronimi.

[8] Daly, P. (1998). Graphics and Colour withLATEX. http://tex.loria.fr/graph-pack/grf/grf.pdf.

[9] Diller, A. (1999). LATEX Line by Line:Tips and Techniques for Document Processing.John Wiley & Sons.

[10] Eco, U. (1977). Come si fa una tesi di laurea.Bompiani, Milano.

[11] Fairbairns, R. (2005). The UK TEXFAQ. http://www.ctan.org/tex-archive/help/uk-tex-faq/letterfaq.tex.

[12] Fear, S. (2005). Publication quality ta-bles in LATEX. http://www.ctan.org/tex-archive/macros/latex/contrib/booktabs/booktabs.pdf.

[13] Flynn, P. (2005). A beginner’s introductionto typesetting with LATEX. http://www.tug.org/tex-archive/info/beginlatex/.

[14] Gini, R. (2004). Generazione automatica ditabelle con LATEX e Stata. http://www.guit.sssup.it/downloads/dispensa_gini.pdf.

[15] Goossens, M., Mittelbach, F. e Samarin,A. (1995). The LATEX Companion. Addison-Wesley.

[16] Goossens, M., Rahtz, S. e Mittelbach, F.(1997). The LATEX Graphics Companion: Illu-strating Documents with TEX and PostScript.Addison-Wesley.

[17] Grätzer, G. (1999). First Steps in LATEX.Springer Verlag.

[18] (2000). Math into LATEX. Birkhauser.

[19] Gregorio, E. (2006). LATEX: Breve guidaai pacchetti di uso più comune. profs.sci.univr.it/~gregorio/breveguida.pdf.

[20] Hahn, J. (1993). LATEX for Everyone: A Re-ference Guide and Tutorial for TypesettingDocuments Using a Computer. Prentice Hall.

[21] Higham, D. e Griffiths, D. (1997). LearningLATEX. Society for Industrial and AppliedMathematics.

[22] Knuth, D. (1992). The TEXbook. Addison-Wesley.

[23] Kopka, H. e Daly, P. (1995). A Guide toLATEX – Document Preparation for Beginnersand Advanced Users. Addison-Wesley.

[24] Lamport, L. (1994). LATEX: A Document Pre-paration System, User’s Guide and ReferenceManual. Addison-Wesley.

[25] Lehman, P. (2004). The FontInstallation Guide. http://www.ctan.org/tex-archive/info/Type1fonts/fontinstallationguide/fontinstallationguide.pdf.

[26] Lesina, R. (1994). Il nuovo manuale di stile.Guida alla redazione di documenti, relazioni,articoli, manuali, tesi di laurea. Zanichelli,Bologna.

[27] Matricciani, E. (2000). La tesi scientifica.Paravia, Torino.

[28] (2003). Fondamenti di comunicazionetecnico-scientifica. Apogeo, Milano.

[29] Mori, L. F. (2006). «Tabelle su LATEX2ε: pac-chetti e metodi da utilizzare». Ars TEXnica,(2), pp. 31–47.

17

Lapo F. Mori Scrivere la tesi di laurea con LATEX2ε

[30] Oetiker, T., Partl, H., Hyna, I.e Schlegl, E. (2000). Una (micatanto) breve introduzione a LATEX2ε.http://www.ctan.org/tex-archive/info/lshort/italian/itlshort.pdf.

[31] Pakin, S. (2003). The Compre-hensive LATEX Symbol List. http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-a4.pdf.

[32] Pratesi, M., Latini, M. e Antonecchia,M. (2003). LATEX–PDF–Howto. http://www.telug.it/marco/LaTeX-PDF-HOWTO/LaTeX-PDF-HOWTO-1.1.1.pdf.

[33] Reckdahl, K. (1997). Using Imported Gra-phics in LATEX2ε. http://www.ctan.org/tex-archive/info/epslatex.pdf.

[34] Talbot, N. (2004). Creating aPDF document using PDFLATEX.http://theoval.cmp.uea.ac.uk/~nlct/latex/pdfdoc/pdfdoc-a4.pdf.

[35] The Tutorial Team (2000). On-line Tu-torial on LATEX. Indian TEX Users Group.http://www.tug.org.in/tutorials.html.

[36] Trettin, M. (2005). Elenco dei“peccati” degli utenti di LATEX2ε.http://www.tug.org/tex-archive/info/l2tabu/italian/l2tabuit.pdf.

[37] Voß, H. (2003). Mathmode.www.ctan.org/tex-archive/info/math/voss/mathmode/Mathmode.pdf.

[38] (2003). Rotating Text, Tabulars and Images.http://perce.de/LaTeX/rotating.pdf.

. Lapo F. MoriDepartment of Mechanical Enginee-ringNorthwestern UniversityEvanston IL [email protected]

18