Introduzione all'arte della composizione tipografica con LaTeX - GuIT

617
Gruppo Utilizzatori Italiani di T E X Introduzione all’arte della composizione tipografica con L A T E X Versione A4-0.97c — 2011/03/07

Transcript of Introduzione all'arte della composizione tipografica con LaTeX - GuIT

Page 1: Introduzione all'arte della composizione tipografica con LaTeX - GuIT

Gruppo Utilizzatori Italiani di TEX

Introduzione allrsquoartedella composizione tipografica

con LATEX

Versione A4-097c mdash 20110307

Introduzione allrsquoartedella composizione tipografica

con LATEX

Testatina

Corpo

Piedino

NoteMarginali

8

7

1

3

10

9

11

24

5

6

1 un pollice + hoffset 2 un pollice + voffset3 evensidemargin = 79pt 4 topmargin = 23pt5 headheight = 12pt 6 headsep = 18pt7 textheight = 598pt 8 textwidth = 345pt9 marginparsep = 7pt 10 marginparwidth = 115pt

11 footskip = 25pt marginparpush = 5pt (non mostrato)hoffset = 0pt voffset = 0ptpaperwidth = 597pt paperheight = 845pt

Testatina

Corpo

Piedino

NoteMarginali

8

7

1

3

10

9

11

24

5

6

1 un pollice + hoffset 2 un pollice + voffset3 oddsidemargin = 28pt 4 topmargin = 23pt5 headheight = 12pt 6 headsep = 18pt7 textheight = 598pt 8 textwidth = 345pt9 marginparsep = 7pt 10 marginparwidth = 115pt

11 footskip = 25pt marginparpush = 5pt (non mostrato)hoffset = 0pt voffset = 0ptpaperwidth = 597pt paperheight = 845pt

Introduzione allrsquoartedella composizione tipografica

con LATEX

guIt

Versione A4-097c mdash 20110307

Questrsquoopera egrave soggetta alla Creative Commons Public License versione 25o posteriore Lrsquoenunciato integrale della Licenza in versione 25 egrave reperibileallrsquoindirizzo internet httpcreativecommonsorglicensesby-nc-nd25deedit

bull Si egrave liberi di riprodurre distribuire comunicare al pubblico esporrein pubblico rappresentare eseguire e recitare questrsquoopera alle seguenticondizioni

Attribuzione Bisogna attribuire la paternitagrave dellrsquoopera nei modi indicatidallrsquoautore o da colui al quale egrave stata data questrsquoopera in licenza inquesto caso si tratta del Gruppo degli Utilizzatori Italiani di TEXguIt

Non commerciale Non si puograve usare questrsquoopera per fini commercialiNon opere derivate Non si puograve alterare o trasformare questrsquoopera neacute

usarla per crearne unrsquoaltra

bull Ogni volta che si usa o si distribuisce questrsquoopera lo si deve fare secondo itermini di questa licenza che va comunicata con chiarezza

bull In ogni caso si possono concordare con il titolare dei diritti drsquoautore (ilguIt in questo caso) usi di questrsquoopera in deroga da questa licenza

I nomi commerciali i loghi i trademark appartengono ai rispettivi proprietari

La foto 22 della pagina 10 e le foto delle pagine 13 156 e 328 mdash 330 sono diClaudio BeccariLrsquoimmagine 21 della pagina 10 egrave stata ricavata da un indirizzo Internet non piugravereperibile lrsquoautore sembra essere Hermann Zapf

Coordinatore Claudio BeccariHanno collaborato a questo testo in modo diretto o indiretto Alessandro Andret-ta Luciano Battaia Francesco Biccari Paolo Biffis Riccardo Campana AntonioCervone Gustavo Cevolani Agostino De Marco Roberto Giacomelli TommasoGordini Enrico Gregorio Orlando Iovino Maurizio Himmelmann JeroacutenimoLeal Giuseppe Molteni Lorenzo Pantieri Gianluca Pignalberi Ottavio RizzoSalvatore Schirone Luigi Scarso Andrea Tonelli Emanuele ZannariniUn grazie particolare a Enrico Gregorio

Presentazione

Questo testo egrave rivolto a coloro che amano la bella composizione tipografica etrovano che i testi composti con LATEX siano molto professionali Questo implicache il lettore tipo abbia giagrave un certa dimestichezza con LATEX e abbia lettoalmeno in parte o il testo introduttivo [38] o meglio ancora lrsquoottimo manualedi Lorenzo Pantieri e Tommaso Gordini Lrsquoarte di scrivere con LATEX [39]

Alcune parti di questo testo possono risultare un porsquo ostiche a chi egrave com-pletamente digiuno di programmazione ma si egrave fatto ogni sforzo per renderecomprensibile queste parti anche a chi ha poca dimestichezza con il calcolatoreCerto crsquoegrave un compromesso fra chiarezza e concisione ma si spera che il lettorevorragrave ugualmente comprendere lrsquoimpegno del gruppo di persone che ha dato vitaa questo testo

Questo testo sulla composizione tipografica mediante LATEX egrave stata infattipredisposta da un gruppo di membri del Gruppo degli Utilizzatori Italiani di TEXguIt il cui obiettivo egrave proprio quello di far conoscere il sistema di composizionesviluppato dal matematico Donald E Knuth piugrave di trenta anni fa Non si trattadi un programma di interesse archeologico percheacute esso egrave vivo e vegeto hadato origine a un buon numero di discendenti e alcune sue parti sono usateallrsquointerno di altri programmi di elaborazione di testi senza che gli utenti diquesti programmi lo sappiano

Il sistema TEX egrave stato uno dei primi esempi di software libero questa suaqualitagrave ne ha permesso il contributo creativo eo critico di una moltitudinedi utenti come succede sempre con il software libero per cui si egrave arricchitonel tempo di una moltitudine di estensioni che gli permettono di comporrepraticamente qualsiasi cosa tranne forse certi tipi di pieghevoli pubblicitari

Si tratta di un programma di composizione tipografica non di un impaginato-re questrsquoultimo tipo di programmi consente di agire sul materiale da impaginarecome se fosse una figura da modificare o da adattare anche se svolge in parte lefunzioni di compositore

LATEX un elemento del sistema TEX consente di comporre tipograficamentedei testi contenenti testo corrente sia in prosa sia in poesia scritti in qualunquealfabeto per esempio latino greco cirillico dallrsquoandamento diretto (da sinistraa destra) oppure ebraico arabo dallrsquoandamento inverso (da destra a sinistra)oppure cinese giapponese coreano dallrsquoandamento anche verticale

Puograve gestire font di ogni genere sia quelli a matrici di punti sia i fontPostScript sia i font TrueType OpenType eccetera Tali font possono esserecodificati in varie maniere ma alcuni lsquofiglirsquo di TEX gestiscono anche i fontcodificati secondo la norma UNICODE

La caratteristica che piugrave differenzia il sistema TEX dagli altri elaboratoridi composizione egrave il fatto che per comporre un documento con questo sistema

ix

x PRESENTAZIONE

bisogna agire in tempi diversi per introdurre il testo e per comporlo in questonon egrave molto diverso da certi procedimenti professionali di impaginazione dove iltesto da comporre viene introdotto in un file di solo testo che poi viene in unsecondo tempo fatto fluire dentro il programma di impaginazione assemblandoloinsieme alle figure e allrsquoaltro materiale non testuale per generare il documentolsquofinitorsquo pronto da inviare alla fotoincisione e alla stampa

Invece questo modo di comporre egrave molto diverso da quello dei word processordove il compositore vede direttamente sullo schermo del suo elaboratore il testogiagrave composto cosigrave da poter esaminare immediatamente il frutto del suo lavorolrsquoanalisi di questa differenza nel modo di procedere verragrave svolta nel primo capitolo

Il secondo capitolo daragrave al lettore alcune nozioni di tipografia se non altroper abituarlo alle alcune parole che ricorrono spesso nella descrizione delle varieoperazioni compositive Chi avesse giagrave queste nozioni puograve saltare la letturadi questo capitolo ma se nonostante tutto decidesse di leggerlo potrebbeconstatare che alcune nozioni eo alcuni vocaboli in questa guida sono usati perindicare cose leggermente diverse da quelle che conosceva

Il terzo capitolo esamineragrave le procedure da seguire per procurarsi il softwaredel sistema TEX e per installare i programmi e i file accessori

I capitoli quattro cinque e sei mostrano i primi rudimenti della composizioneasincrona mediante LATEX (parte del sistema TEX) Si parleragrave essenzialmente dicomposizione testuale anche in forma di tabelle

I capitoli sette e otto si dedicano alla creazione manipolazione e inclusionedi figure

I capitoli nove e dieci si dedicano invece alla composizione della matematicase il lettore ha familiaritagrave con manuali di tipografia avragrave notato che lrsquoargomentodella composizione della matematica egrave praticamente assente da quei manualipercheacute si tratta di un tipo di composizione abbastanza specializzato e cheinterviene abbastanza raramente nei libri pubblicati Per altro un documento nonegrave necessariamente un libro puograve essere un rapporto tecnico una tesi di laurea o didottorato un manuale o un prontuario tecnico un articolo scientifico insommauno scritto dove la matematica compare spesso in forma avanzata

Il capitolo undici si riferisce ai caratteri da stampa e ne descrive le particolaritagravei comandi per gestirli i modi per caricare altri caratteri fornisce qualche nozionedi tipografia ma dedica ampio spazio ai font del sistema TEX il quale egrave beneribadirlo non egrave limitato ai font disponibili in prima installazione ma puograve usarevirtualmente qualsiasi font disponibile sia gratuito sia commerciale

Il capitolo dodici si riferisce alla preparazione delle presentazioni ciograve di queidocumenti che verranno verosimilmente usati per essere proiettati mentre se nepresente il contenuto a voce durante una conferenza una lezione o simili

Alla composizione di testi di filologia egrave dedicato il capitolo tredici questi testiverosimilmente non contengono una sola formula matematica ma richiedono untipo di composizione spesso bidimensionale come la matematica che richiededi comprendere a fondo i meccanismi compositivi bidimensionali che richiedonostrumenti particolari che con il sistema TEX prendono il nome di file (o dipacchetti) di estensione

LATEX si distingue da alcuni suoi fratelli figli del sistema TEX per consentire alcompositore oltre che allo scrittore di concentrarsi sul messaggio da trasmettereal lettore invece che sulla forma da dargli cioegrave sulla sua estetica A seconda deldocumento da comporre lo stile di composizione puograve essere molto diverso anchela semplice impaginazione puograve assumere aspetti grafici diversi LATEX consente di

PRESENTAZIONE xi

scegliere in modo globale il tipo di documento e di apportare piccole modifichestilistiche durante la composizione senza che il compositore debba preoccuparsidella nerezza dei caratteri oppure della distanza del numero indicativo di unparagrafo dallrsquoinizio del suo titolino A tutte queste cose pensa la scelta inizialedel tipo di documento e con le opzioni specificate Il capitoli quattordici si occupaappunto di queste cose

Passando ad argomenti piugrave specializzati i capitoli quindici sedici e diciassettesi occupano della preparazione della bibliografia della composizione di indicianalitici e glossari per finire con lrsquoarte di definire nuovi comandi compositivi perrendere piugrave agevole il compito del compositore

Il capitolo diciotto tratta dellrsquoarte della composizione tipografica con LATEXquesto egrave proprio il capitolo che giustifica il titolo di questo manuale vi si parleragravedelle tecniche di cui LATEX o piugrave ancora pdfLATEX dispongono per eseguire lacomposizione tipografica come e meglio della totalitagrave dei word processor e megliodi molti programmi di impaginazione si tratta della microgiustificazione unatecnica a cui ricorrevano fin dallrsquoinizio i prototipografi a cominciare da Gutenbergma di cui si egrave un porsquo persa lrsquoabitudine nel corso dei secoli successivi sia per icosti sia per i vincoli imposti dai caratteri metallici per fortuna la composizioneelettronica egrave svincolata da queste limitazioni ma ovviamente bisogna che ilprogramma di composizione sia stato programmato per la microgiustificazione

Il capitolo diciannove tratta invece del progetto grafico delle pagine e dellestrutture che compongono il documento normalmente queste sono decisioni escelte operate dal grafico editoriale con LATEX spesso siamo noi stessi i graficieditoriali i compositori talvolta anche gli editori dei nostri documenti egrave beneavere anche una buona formazione in questo senso almeno fino al livello diconoscere i problemi senza avere la presunzione di saperli risolvere come unprofessionista Conoscendo i problemi perograve puograve nascere il desiderio di conoscerepiugrave a fondo lrsquoarte tipografica che ci porteragrave non solo ad apprezzare maggiormentei prodotti tipografici ben riusciti ma anche ad arricchire la nostra cultura in unsettore spesso trascurato o considerato erroneamente troppo tecnico per meritareil nome di lsquoartersquo

Ricordiamo per altro che il nome del sistema TEX egrave ottenuto dalle primetre lettere maiuscole della parola greca τ εχνη1 che come ricorda Knuth stessovuol dire arte

Il capitolo venti egrave dedicato allrsquoortografia tipografica oltre alla definizione cheovviamente non contrasta con lrsquoortografia della lingua vengono impostate anchele buone regole per lrsquouso della sillabazione delle forme dei caratteri dellrsquouso dellapunteggiatura dellrsquoelisione e del troncamento sottolineando che la grammaticaconsente numerose varianti ma la buona tipografia predilige lrsquoomogeneitagrave

Il capitolo ventuno egrave dedicato ad un aspetto piuttosto moderno e fortementelegato alla tipografia elettronica vale a dire si occupa del problema dellrsquoarchi-viabilitagrave dei documenti elettronici questa caratteristica richiede strumenti edaccorgimenti particolari che si possono raggiungere con lrsquouso del sistema TEXma che richiedono comunque una speciale attenzione

Il capitolo ventidue riguarda invece un aspetto produttivo che coinvolge latipografia elettronica si tratta del lavoro di assemblaggio dei file da comporrecon il sistema TEX segnatamente con LATEX e pdfLATEX quando i file sorgente

1τ εχνη in Italia viene pronunciata lsquotegravecnersquo in Grecia lsquoteacutechnirsquo in ogni caso quella che sembrauna X nel nome di TEX e di LATEX va pronunciata come una lsquokrsquo o come una forte espirazionenon come una lsquoxrsquo

xii PRESENTAZIONE

non hanno il mark-up di LATEX Si puograve eseguire lrsquoelaborazione manuale ma egravemeglio disporre di adeguati strumenti per la conversione automatica almenoper ottenere un primo approccio al mark-up di LATEX ma con la trasformazionedelle codifiche dei vari caratteri in modo da non alterare il messaggio del testoda comporre e specialmente per non introdurre errori durante il processo diconversione Lrsquoeditoria moderna deve poter usare questi strumenti con cognizionedi causa sia per il lavoro commerciale sia per quello che gradatamente si vaestendendo cioegrave la documentazione libera la produzione di testi liberamentescaricabili dalla rete ma composti con ogni cura al massimo livello qualitativo

Questo testo non egrave un manuale per LATEX ce ne sono di liberi e di commercialiassai validi a questo argomento egrave dedicata la prima appendice Nello stessotempo dicendo che questo non egrave un manuale si vorrebbe sottolineare che leindicazioni qui esposte servono per affrontare la composizione con LATEX con unapproccio che guarda di piugrave alla sostanza alla composizione professionale chenon allrsquoaspetto grafico del singolo dettaglio man mano che questo si presentacome succede spesso invece con i vari word processor

Per esempio in questo testo si parla di lsquoscatolersquo proprio di sfuggita mentrein ogni manuale questo argomento richiede almeno una sezione espressamentededicata loro Cosigrave si parla poco o nulla di contatori o di lunghezze rigide oelastiche sono argomenti importanti ma che servono maggiormente per scriverei programmi le macroistruzioni contenute nei file che specificano lo stile compo-sitivo o nei file che raccolgono le macro personali Durante la composizione nonbisognerebbe mai perdersi in questi dettagli

Piuttosto la programmazione in linguaggio TEX puograve diventare essenzialeper lrsquoutente che deve comporre testi dallo stile insolito o che abbia bisogno distrutture compositive particolari

Qui perograve tranne una esposizione sommaria nel capitolo 17 non si parleragrave diqueste cose ma si rinvia direttamente il lettore a manuali che trattano questoaspetto con maggiore dettaglio (vedi lrsquoappendice A) Si veda piuttosto lrsquoappen-dice G di tipo piugrave manualistico dove sono raccolte commentate modificate leinformazioni che Leslie Lamport ha scritto nel suo manuale [29]

Lrsquoappendice B egrave dedicata alla simbologia e alla nomenclatura delle grandezzefisiche noncheacute ai simboli codificati dalle norme ISO per lrsquouso nella matematicausata dai fisici e dai tecnologi vi sono anche non pochi riferimenti al SistemaInternazionale delle Unitagrave di Misura e alla loro lsquoortografiarsquo

Lrsquoappendice C spiega invece in ogni dettaglio lrsquoalgoritmo che viene usatodai programmi del sistema TEX per dividere le parole in fin di riga questo egraveun procedimento che in italiano funziona impeccabilmente nella totalitagrave deicasi ma egrave bene conoscerne i dettagli per intervenire in quei pochi casi in cui lagiustificazione non viene eseguita perfettamente oppure quando si scrive in unalingua straniera dalle regole piugrave rigide di quelle che valgono per lrsquoitaliano oppureper ricorrere ad una sillabazione italiana diversa da quella prescritta dalla normeUNI ma consentita in casi particolari

Lrsquoappendice D vorrebbe riempire un vuoto di informazione che per usareLATEX va assolutamente colmato Si tratta della distinzione fra la codifica dientrata e di quella di uscita fra la codifica che lrsquoutente tramite i suoi programmiusa per scrivere un testo usando la tastiera e quella che il programma dicomposizione usa in relazione ai font impiegati Bisogna conoscere queste duecodifiche distinguerle e usarle a proposito

PRESENTAZIONE xiii

Lrsquoappendice E molto tecnica cerca di spiegare i dettagli di come ogni motoredi composizione del sistema TEX costruisca i capoversi e costruisca le pagine sitratta di un meccanismo abbastanza complesso me la sua comprensione aiuta acapire percheacute la composizione talvolta sia diversa da come ce la aspetteremmoNormalmente ha ragione il motore di composizione a fare quello che fa matalvolta puograve essere necessaria una piccola dose di aiuto consapevole

Lrsquoappendice G lungi dal rappresentare una semplice traduzione della corri-spondente appendice del manuale [29] di Leslie Lamport il creatore di LATEXpur mantenendone lrsquoimpostazione rappresenta si spera una fonte comoda epratica per rivedere in modo ragionato ma non troppo prolisso la sintassi deivari comandi del mark-up di LATEX In questa parte per la veritagrave si sono saltaterispetto al manuale di Lamport intere parti che oggi sono considerate superateinvece alcune parti sono state estese considerevolmente

Il lettore non si scoraggi se vengono usate molte parole inglesi in un certosenso la cosa egrave voluta percheacute i comandi del mark-up di LATEX sono quasi tuttiformati da parole inglesi o da loro abbreviazioni in ogni punto in cui questicomandi vengono descritti si egrave sempre cercato di associare le parole inglesi allaspiegazione italiana tuttavia non si egrave rifuggiti da alcuni anglismi come lsquoflottantersquocorrispondente a floating ritenuto preferibile rispetto allrsquoitalianissima parolalsquomobilersquo che esprime lo stesso concetto ma forse slegato dai messaggi che LATEXespone sullo schermo durante la sua esecuzione Cosigrave si egrave sistematicamente usatala locuzione di default piuttosto che usare espressioni italiane come lsquopredefinitorsquolsquoda usarsi in mancanza drsquoaltrorsquo lsquose non si egrave specificato diversamentersquo e similiespressioni non completamente equivalenti lrsquouna con lrsquoaltra

Cosigrave sebbene non si sia sicuri di essere stati sempre consistenti egrave stata usatala congiunzione oppositiva lsquoorsquo per indicare il concetto esclusivo di lsquoo questo oquello ma non entrambirsquo e la congiunzione lsquooppurersquo per indicare il concettoinclusivo di lsquoo questo o quello o entrambirsquo La lingua parlata e quella scritte sonoflessibili e talvolta non egrave necessario essere cosigrave precisi ma si cerchi di tenerepresente questo particolare uso delle congiunzioni oppositive

Di fianco a molte figure vi egrave un scritta spesso in verticale con il nomedellrsquoautore e il nome del programma quasi sempre del sistema TEX che lrsquoautoreha usato Questa indicazione non egrave messa vicino alle fotografie oppure alleimmagini tratte da Internet la paternitagrave di queste immagini egrave indicata ovepossibile nella pagina dietro a quella del titolo Per le altre figure oltre a indicarelrsquoautore del disegno mostrato si egrave ritenuto utile indicare anche il programmausato per realizzare il disegno tutti i disegni sono stati realizzati usando comandie mark-up forniti da pacchetti di estensione del programma di composizionequesti pacchetti consentono di eseguire egregiamente molti tipi di disegni senzabisogno di ricorrere a programmi esterni hanno anche il vantaggio di esserestilisticamente compatibili con la tipografia eseguita con LATEX cosa che spessonon egrave possibile ottenere con i normali word processor o con altri programmi didisegno al calcolatore

Indice

Presentazione ix

1 Composizione sincrona e asincrona 111 Introduzione 112 Il mark-up di LATEX 213 Scribus un impaginatore Open Source 414 Conclusione 6

2 Nozioni elementari di tipografia 921 Tipografia e dattilografia 922 Unitagrave di misura tipografiche 1123 Misure tipografiche 1224 Le particolaritagrave dei caratteri 1525 I contrografismi 1726 Le parti di alcuni documenti a stampa 1727 Osservazioni finali 19

3 Installare il sistema TEX 2131 Installazione su macchine Windows a 32 bit 2132 Installazione su Linux 2233 Installazione su Macintosh con Mac OS X 2334 Gli alberi di cartelle del sistema TEX 25

341 Gli alberi di cartelle di TEX Live 26342 Gli alberi di cartelle di MiKTEX 28343 Lrsquoaggiornamento dei database dei nomi dei file 29

35 I programmi accessori 3036 Le tastiere 32

361 Le tastiere delle macchine Windows 32362 Tastiere Linux 35363 Le tastiere sulle macchine Macintosh 36364 Le tastiere virtuali 36

37 Gli shell editor 37371 Shell editor multipiattaforma 39372 Shell editor per le macchine Windows 42373 Shell editor per le macchine Linux 44374 Shell editor per le macchine Macintosh 46

38 Il sistema TeXmacs 4939 Il sistema LyX 50

xv

xvi INDICE

310 LATEX e pdfLATEX 51311 Altri programmi di composizione del sistema TEX 54

3111 Plain TEX 543112 I programmi estesi 553113 Il mark-up ConTEXt 573114 I programmi Omega e Lambda Aleph e Lamed 573115 Il programma X ETEX 583116 Il programma LuaTEX 59

4 LATEX prime nozioni 6141 Introduzione 6142 Lrsquoinizio del file sorgente 6143 Il documento 6344 La fine del documento 6445 Un semplice esercizio 6446 I caratteri speciali 6647 Organizzazione dei file sorgente 6748 Gestione degli errori 73

5 LATEX testi speciali 7551 Che cosa sono i testi in display 7552 Le citazioni 75

521 Le citazioni brevi 76522 Le citazioni lunghe 76

53 Gli elenchi 78531 Le elencazioni in linea 79532 Le enumerazioni 79533 Le elencazioni semplici 80534 Alcune osservazioni relative alle elencazioni 80

54 Le descrizioni 8155 Le liste bibliografiche 8156 I riferimenti incrociati 8357 Altri testi in display 8458 Le note 87

581 Le note in calce 87582 Le note marginali 88

6 LATEX tabelle 9161 Introduzione 9162 Come far flottare una tabella 9263 Le didascalie 9264 Come comporre la tabella vera e propria 93

641 I descrittori delle colonne 94642 Il raggruppamento delle celle 95643 I separatori verticali 96644 Come rendere le tabelle un poco piugrave aperte 97

65 Le tabelle di larghezza specificata 9866 Problemi compositivi delle tabelle 101

661 Tabelle troppo larghe 10167 Tabelle troppo lunghe 103

INDICE xvii

68 Pacchetti di estensione per le tabelle 104

7 LATEX figure 11171 Le figure e le immagini 11172 Lrsquoambiente figure 111

721 Controllo dei grandi oggetti flottanti 112722 Modifica degli ambienti flottanti 112

73 Lrsquoambiente picture 11374 Il pacchetto pgf 12075 Vantaggi dei programmi nativi del sistema TEX 12376 METAPOST 12377 Usi insoliti dellrsquoambiente picture 12578 Linee guida per la grafica 127

781 Preliminari 128782 Programmazione del tempo necessario per la creazione

della grafica 129783 Piano di lavoro per creare un grafico 130784 Collegamento fra testo e grafico 130785 Coerenza fra testo e grafica 131786 Legende nei grafici 132787 Diagrammi di vario genere 133788 Attenzione e distrazione 138789 Commenti 140

8 LATEX lrsquoimportazione di figure esterne 14181 Introduzione 14182 I formati grafici 141

821 I formati vettoriali 141822 I formati diversi da quelli vettoriali 142

83 I formati accettabili 144831 I formati accettabili da latex 145832 I formati accettabili da pdflatex 146

84 Conversione dei formati 14885 Scontornare le immagini 15086 Lrsquoimportazione delle immagini 151

9 LATEX la matematica semplice 15991 Introduzione 15992 I modi matematici 15993 Alcune annotazioni sulle lettere greche 16294 Alcune osservazioni sugli operatori funzionali 16395 Alcune osservazioni sui grandi operatori 16696 I grandi delimitatori 16797 Gli accenti matematici 16898 Gli ambienti matematici 16999 Le unitagrave di misura 170

xviii INDICE

10 LATEX la matematica avanzata 175101 I simboli di amsmath 175102 Le estensioni dei font matematici 177103 I sistemi di equazioni 178104 Gli ambienti di composizione di amsmath 179

1041 Lrsquoambiente equation 1791042 Lrsquoambiente aligned 1801043 Lrsquoambiente split 1801044 Lrsquoambiente multline 1811045 Lrsquoambiente gather 1821046 Lrsquoambiente align 1821047 Lrsquoambiente falign 1831048 Lrsquoambiente alignat 1831049 Lrsquoambiente subequations 18410410Gli ambienti spezzati 185

105 Altri comandi e ambienti 1861051 Definizione di operatori funzionali 1861052 Le frazioni in generale e le frazioni continue 186

10521 Le frazioni e gli altri costrutti simili 18610522 Le frazioni continue 187

1053 Il testo intercalato alle equazioni 1871054 Le frecce estensibili 1881055 Gli indici incolonnati 1881056 Gli integrali multipli 1891057 Lrsquooperatore differenziale 1891058 I simboli corsivi matematici in nero 1901059 Le espressioni matematiche riquadrate 191

106 Le matrici e i determinanti 191107 I diagrammi commutativi 192108 La punteggiatura in matematica 193109 Conclusioni 197

11 LATEX i caratteri da stampa 199111 Introduzione 199112 Terminologia relativa ai caratteri 199113 I comandi per la scelta dei font 207

1131 La scelta del corpo e dellrsquoavanzamento di riga 2071132 La scelta delle altre caratteristiche 210

114 Altri font diversi da quelli di default 212115 I font per la matematica 212116 Il Text Companion Font 218117 Gli alfabeti diversi da quello latino 219

1171 Caratteri cirillici 2191172 Caratteri greci 2211173 Scrivere con altri alfabeti 222

118 La gestione dei font 2241181 Altri font giagrave disponibili 2261182 Installazione di una collezione di font 227

11821 Installare i font greci 22711822 Scrivere in greco 232

INDICE xix

11823 Altri font outline 23411824 Installare un set di font da zero 23511825 Creare i font vettoriali con mftrace 23611826 I file di descrizione dei font 238

1183 Installare font commerciali 2381184 Font e sistema TEX 239

119 Conclusioni 243

12 LATEX le presentazioni 245121 Introduzione 245122 Le classi per le presentazioni 245123 Altre classi per le presentazioni 246124 La classe beamer 247125 La documentazione 248126 Una breve presentazione 248127 Creare un nuovo stile 254128 Osservazioni 255

13 LATEX composizione di testi letterari e filologici 257131 La composizione di testi letterari 257132 Font adatti ai testi classici 261133 La composizione del tedesco classico 262134 La composizione di testi in lingue classiche 263

1341 Scrivere in latino 2631342 Scrivere in greco 264

135 La composizione di testi filologici 265136 Un esempio di composizione con X ELATEX 268

1361 Esempio di composizione in greco 2681362 X ELATEX i font Opentype e i font Type 1 270

137 Conclusione 272

14 LATEX i vari tipi di documenti e stili di composizione 273141 Introduzione 273142 Classi standard 273143 La creazione di nuove classi 275144 Alcune classi non standard 276

1441 Le classi Komascript 2761442 La classe memoir 2771443 La classe ncc 2781444 Le tesi di laurea e la classe toptesi 2781445 Lrsquoestensione layaureo 279

145 I pacchetti di estensione 2811451 Come invocare i file di estensione 2811452 I vari pacchetti e gli archivi internazionali 284

146 Come scrivere nuovi pacchetti 285147 Non modificare i pacchetti esistenti 286

xx INDICE

15 BIBTEX la bibliografia 289151 Introduzione 289152 Il programma BIBTEX 289

1521 Come specificare lo stile bibliografico 2901522 Come comporre la bibliografia 2901523 Chiavi e citazioni 291

153 I database bibliografici 292154 Quanti database bibliografici 295

16 LATEX indici e glossari 297161 Introduzione 297162 Lrsquoindice analitico 297

1621 Il programma makeindex 2981622 La composizione effettiva dellrsquoindice analitico 299

163 Il glossario 299164 Modifica dellrsquoindice analitico 300165 Indicizzazione sincrona 301

1651 Indicizzazione sincrona dellrsquoindice analitico 3021652 Indicizzazione sincrona del glossario 303

17 LATEX nuovi comandi 305171 Introduzione 305172 Le definizioni di comandi nuovi 306173 Ridefinizione di comandi giagrave esistenti 309174 Ridefinizioni di comandi di sistema 310175 Esiste giagrave o non esiste ancora il comando 315176 Definizione di comandi robusti 315177 Definizione di un nuovo ambiente 316178 La ridefinizione di ambienti esistenti 318179 Situazioni particolari 321

1791 Le linee guida 3211792 Controllo della posizione di grandi oggetti 3241793 Immagini celle e scatole 325

18 LATEX la microgiustificazione 333181 Introduzione 333182 La composizione dei capoversi 334183 Metodi per migliorare la giustificazione 335184 La microgiustificazione 336

19 LATEX la geometria delle pagine 341191 Introduzione 341192 La geometria della pagina 343

1921 Il formato delle pagine 3431922 Le segnature e le imposizioni 3441923 I crocini 3471924 Dimensioni della gabbia del testo 348

19241 Testatine e piedini il pacchetto fancyhdr 34919242 Le proporzioni della gabbia di testo 35119243 I margini 352

INDICE xxi

193 Lrsquoavanzamento di riga 357194 I capoversi 359195 Testatine e piedini 361196 I pacchetti di personalizzazione 362

1961 Il pacchetto geometry 3621962 I titoli e i titolini i pacchetti titlesec fancyhdr sectsty

e tocloft 3631963 Testatine 367

197 La pagina del titolo 370198 Le inserzioni flottanti e non flottanti 371

1981 Gli oggetti flottanti 3711982 Gli oggetti non flottanti 372

199 Conclusioni 375

20 Ortografia tipografica 377201 Ortografia testuale 377

2011 Ortografie alternative 3782012 lsquodrsquo eufonica e lsquoirsquo prostetica apostrofi 379

202 Accenti 380203 Sillabazione 381204 Punteggiatura 382205 Abbreviazioni 388206 Appellativi e maiuscole 389207 Uso dei font 390208 Le note 391209 Conclusioni 392

21 Il formato PDF archiviabile 395211 Le immagini 396212 I font 397213 Gli hyperlink 400214 Generazione di un file PDF archiviabile 401

2141 La strada maestra 4012142 Trasformazione di un file PDF o di un file PS 402

215 Conclusioni 405

22 Comporre da documenti esterni 407221 Conversione manuale 407

2211 Copia e incolla 409222 Conversione automatica 414

2221 Documenti in formato doc 4142222 Documenti in formato PDF 4172223 Documenti in formato XML 418

223 Conclusioni 419

A Dove documentarsi 421A1 Documentazione sulla tipografia 421A2 Documentazione su LATEX 423A3 Documentazione sulla grafica 424A4 Documentazione sui singoli pacchetti 425

xxii INDICE

A5 Documentazione su TEX 425A6 Documentazione sui simboli di LATEX 426A7 Composizione della matematica 426A8 Lrsquoarchiviazione dei documenti 428

B Simbologia matematica e fisica 429B1 Unitagrave di misura del Sistema Internazionale 429B2 Simboli matematici nelle scienze 433B3 Nomenclatura 434

C Divisione in sillabe 455

D Codifica in entrata e codifica in uscita 463

E Come fa TEX a comporre le pagine 475E1 Divisione dei capoversi 475E2 Divisione della pagine 478E3 Cosa fare se 479

E31 Collocazione degli oggetti flottanti 480E32 Le equazioni ingombranti 480E33 I sezionamenti 482

E4 Conclusioni 482

F Trattamento degli errori 483F1 Errori ortografici nel nomi dei comandi 483F2 Errore nella ricerca dei file 483F3 Ciclo infinito 485F4 Gruppi aperti 486F5 Mancata apertura di un gruppo 487F6 Interferenza con le definizioni 487F7 File personali che provocano conflitti 488F8 Tracciare lrsquooperato del programma 489

F81 I comandi primitivi di tracciamento 489F82 Il pacchetto trace 490

F9 Costruzione dei capoversi e delle pagine 493F10 Conclusioni 496

G Riepilogo della sintassi di LATEX 497G1 La struttura del documento 499G2 Periodi e capoversi 499

G21 Periodi 499G22 Capoversi 501G23 Note in calce 502G24 Note marginali 502G25 Accenti e simboli speciali 503

G3 Suddivisione del testo e indici 504G31 Comandi di sezionamento 504

G4 Classi pacchetti e stili delle pagine 506G41 Classe del documento 506G42 Pacchetti 507G43 Stili delle pagine 508

INDICE xxiii

G44 Il frontespizio 510G5 Testi in display 511

G51 Citazioni e poemi 511G52 Liste 511G53 Testo composto verbatim 516

G6 Formule matematiche 516G61 Formule 516G62 Simboli accenti delimitatori e grandi operatori 519G63 Impilare gli oggetti matematici 519G64 Spaziatura matematica 520G65 Font matematici 520G66 Stili di composizione 521

G7 Definizioni numeri e programmazione 521G71 Comandi di definizione 521G72 Comandi per la definizione di ambienti 522G73 Teoremi 522

G8 Numeri lunghezze e spazi 523G81 Numeri 523G82 Lunghezze 525G83 Operazioni fra numeri e grandezze 526G84 Il pacchetto ifthen 529

G9 Spaziature 532G10 Figure tabelle ed altri oggetti flottanti 533

G101 Figure e tabelle 533G102 Note marginali 538

G11 Incolonnamenti 539G111 Lrsquoambiente tabbing 539G112 Gli ambienti array e tabular 540

G12 I file ausiliari e i loro comandi 543G121 I file del sistema TEX 543G122 I riferimenti incrociati 544G123 Bibliografia e citazioni 544G124 Suddivisione del file sorgente 545

G13 Indice analitico e glossario 546G131 Indice analitico 546G132 Glossario 547

G14 Compilazione interattiva 547G15 Interruzione di riga e di pagina 548

G151 Interruzione di riga 548G152 Interruzione di pagina 548

G16 Scatole 550G17 Disegni e colori 552

G171 Disegni 552G172 Colori e grafica 552

G18 Selezione dei caratteri 555G181 Scegliere famiglia forma e serie 555G182 Scegliere il corpo 555G183 Corpi testuali e matematici 556G184 Simboli speciali 556

xxiv INDICE

Bibliografia 558

Indice analitico 563

Indice degli ambienti 576

Indice delle classi 578

Indice dei file 579

Indice dei pacchetti 582

Indice dei programmi e delle distribuzioni 585

Elenco delle tabelle

31 Legame fra alcuni comandi di sistema gli interpreti e i formati 54

61 Descrittori delle colonne per le tabelle 9462 Tabella la cui colonna di destra egrave specificata con p80mm 9563 Tabella di larghezza pari alla giustezza del testo ottenuta allar-

gando poco le singole celle 9964 Tabella di larghezza pari alla giustezza del testo ottenuta allar-

gando troppo le singole celle 10065 Tabella di larghezza pari alla giustezza del testo ottenuta allar-

gando lo spazio fra le singole celle 10066 Tabella composta con le estensioni del pacchetto array 106

71 Tabella insolita 12672 Esempio di valutazione di un seminario 134

81 Dimensioni in byte dei file PDF ottenuti compilando il TEXbookcon diversi metodi 146

91 Le lettere greche 16292 Gli operatori di relazione 16393 Gli operatori binari 16394 Gli operatori funzionali 16495 I grandi operatori 16496 I grandi delimitatori 16597 Gli accenti matematici 16598 Altri simboli 166

101 Prima serie di simboli accessibili con il pacchetto amsmath 176102 Seconda serie di simboli accessibili con il pacchetto amsmath 177103 Gli ambienti di allineamento di amsmath 179

111 Istruzioni per la scelta del corpo dei caratteri 207112 Il font latino a 128 caratteri con codifica OT1 208113 Il font cirillico a 128 caratteri con codifica OT2 208114 Il font latino a 256 caratteri con codifica T1 209115 Le varie combinazioni di serie e di forma per le varie famiglie

standard dei font Computer Modern usabili con LATEX 211116 Il corsivo matematico con codifica OML questa polizza contiene

anche le cifre arabe lsquominuscolersquo 214

xxv

xxvi ELENCO DELLE TABELLE

117 La polizza dei simboli matematici con codifica OMS 214118 I segni matematici estensibili con codifica OMX 215119 Il Text Companion Font con codifica TS1 2181110 Il font cirillico esteso con la codifica X2 2201111 Il font greco a 256 caratteri con codifica LGR 2221112 Corrispondenze fra i tasti della tastiera latina e i segni dellrsquoalfa-

beto greco 2321113 Il font latino con codifica LY1 236

131 Formati britannici della pagina 258

171 Tabella in cui lrsquoimmagine e il testo adiacente hanno i punti diriferimento allineati in modo scorretto 328

172 Tabella in cui lrsquoimmagine e il testo adiacente hanno i punti diriferimento allineati correttamente 328

173 Tabella in cui lrsquoimmagine e il testo adiacente hanno i punti diriferimento allineati correttamente e dove uno spazio verticalepari a 08 ex separa lrsquoimmagine dal filetto sovrastante 329

174 Tabella con lrsquoimmagine allineata con la parte superiore delleminuscole della prima riga della seconda colonna 330

191 Formati delle pagine a seconda delle dimensioni del foglio dipartenza e del numero di pieghe 344

192 Giustezze determinate mediante la lunghezza dellrsquoalfabeto 350

B1 Unitagrave fondamentali 429B2 Prefissi decimali 430B3 Prefissi binari 430B4 Unitagrave logaritmiche 430B5 Unitagrave derivate 431B6 Unitagrave di misura legalmente ammesse 432B7 Unitagrave di misura temporaneamente accettate 433B8 Simboli matematici 435B9 Nomenclatura simboli e unitagrave di misura 447

C1 Pattern usati per dividere in sillabe dellrsquoistruzione 459C2 Pattern usati per dividere in sillabe discinesia 459

D1 I 95 caratteri ASCII stampabili 472

G1 I comandi per gli accenti testuali e i simboli speciali di moltelingue straniere 504

G2 Numeri associati al livello di sezionamento 505G3 Parametri nella classe book composta in corpo 10 per gestire gli

oggetti flottanti 537G4 Dichiarazioni per la scelta di famiglia serie e forma 556G5 Corrispondenza fra comandi e dichiarazioni 556G6 Dichiarazioni di corpo 556

Elenco delle figure

11 Semplice esempio di composizione con LATEX 3

21 Dedica a Donald Knuth 1022 Auguri di TUG (TEX Users Group) per il 2003 1023 Confronto relativo fra le varie scale di lunghezza 1224 Caratteristiche dei caratteri mobili 1325 Disposizione delle lettere e degli altri segni negli scomparti di

una cassa usata in una tipografia italiana 14

31 Schermata di LaTeXiT 2432 Schema della tastiera italiana sulle piattaforme Windows 3233 Schema della tastiera configurata con il driver EurKey 3334 Schema della tastiera svizzera sulle piattaforme Windows 3535 Schema della tastiera italiana su Linux senza personalizzazioni 3536 Schema della tastiera USA estesa sul MacBook Pro 36

51 Effetto dellrsquouso del comando centering rispetto allrsquoambientecenter 86

71 Il semplice disegno usato da Leslie Lamport per descrivere lepotenzialitagrave dellrsquoambiente picture 118

72 Alcune curve di Beacutezier di secondo e di terzo grado tracciatenellrsquoambiente picture 118

73 Moto uniformemente accelerato 11974 Un disegno a colori ottenuto con lrsquouso del pacchetto pgf e

lrsquoambiente tikzpicture 12175 Circuito elettronico disegnato usando lrsquoambiente tikzpicture aven-

do caricato lrsquoestensione circuitikz 12276 Una paginetta con lrsquoangolo ripiegato 12377 Un semplice esempio di figura geometrica composta con META-

POST 12478 Esempio di istogramma per presentare il risultato della valuta-

zione di un seminario 13479 Altro esempio di diagramma per presentare il risultato della

valutazione di un seminario 136710 Esempio di diagramma a torta per confrontare le fonti di produ-

zione dellrsquoenergia elettrica in Germania nel 2004 137

81 Confronto sugli effetti dellrsquoingrandimento su due figure simili 144

xxvii

xxviii ELENCO DELLE FIGURE

82 Inclusione e conversione di un file eps 14783 Due foto trattate con diverse chiavi 156

91 Due esempi di strafalcioni giornalistici 172

111 Il carattere metallico della lsquomrsquo 200112 Relazioni fra il corpo lrsquointerlinea e lrsquoavanzamento di riga nel

caso di caratteri elettronici 200113 Composizione normale e sterlineata 201114 Legature antiche 202115 Il simbolo di maschio fortemente ingrandito 206116 Esempi di testi composti con i font Times e Palatino 213117 Il Credo di Nicea in tre lingue che fanno uso di alfabeti diversi 223118 I dingbats creati da Hermann Zapf 227119 Esempio di composizione in greco 2331110 Schema grafico del processo di composizione 2401111 Presentazione allrsquoesterno dei risultati della composizione 2401112 Processi di conversione dei vari formati di uscita dai programmi

di composizione 2411113 Trasformazioni di formato dei font e generazione dei file ausiliari 2421114 Gestione delle mappe dei font 242

121 Otto slide per una presentazione di cinque frame 249

131 Sette contro Tebe 260132 Alcuni alfabeti gotici che includono anche i capilettera ornati 262133 Completamento del file sorgente 270134 Risultato della composizione con X ELATEX 271

141 Tre geometrie di pagina a confronto 280142 Costruzioni geometriche per mettere in relazione lrsquoaltezza del

rettangolo con il lato del poligono regolare sul quale egrave costruito 281

161 Le fasi per la produzione dellrsquoindice analitico 299

171 Alcune proprietagrave delle scatole 326

191 Le imposizioni per generare una segnatura in folio in quarto ein ottavo 347

192 Esempio di crocini predisposti per una tipografia italiana 348193 Costruzione geometrica usata da Gutenberg per determinare le

proporzioni e la posizione della gabbia delle sue famose Bibbie 353194 Determinazione della gabbia e dei margini con il metodo delle

strisce 354195 Confronto fra tre gabbie auree 355

xxix

AvvertenzeIn questo testo si parla di quello che si puograve fare con la ricca dotazione di

programmi e di pacchetti presenti in ogni distribuzione del sistema TEX Ledistribuzioni del sistema TEX gratuite sono essenzialmente due TEX Live eMiKTEX In commercio ci sono diverse altre distribuzioni

Qui ci si riferisce principalmente alla distribuzione del sistema eseguitamediante il DVD prodotto dalla Associazione Internazionale degli Utenti diTEX (TEX Users Group TUG) e ridistribuito anche ai membri dellrsquoAssociazioneItaliana guIt (Gruppo degli Utenti Italiani di TEX e LATEX) Volendo il DVDpuograve venire acquistato ad un costo nominale di US$ 5000 dal sito httpwwwtugorgstore ma nello stesso sito si dice che lrsquoimmagine ISO del discopuograve essere scaricata gratuitamente dal sito stesso Lrsquoimmagine ISO va poimasterizzata su un DVD vergine e usata tranquillamente alla pari del DVDoriginale La distribuzione scaricata dal sito indicato sopra egrave completa e permettelrsquoinstallazione sulle macchine Windows Linux e Macintosh

Anche la distribuzione MiKTEX (valida solo per le macchine Windows) puogravevenire scaricata gratuitamente dal sito httpmiktexorg29setup Piugraveprecisamente da questo sito egrave possibile scaricare dei semplici programmi di instal-lazione uno molto piccolo per installare una versione di base e uno di dimensionimaggiori per scaricare la distribuzione completa Bencheacute la distribuzione di basepossa essere arricchita in modo praticamente automatico via via che lrsquoutenterichiama funzionalitagrave ancora non installate si consiglia vivamente di eseguirelrsquoinstallazione completa

Nel seguito si faragrave riferimento specialmente alla distribuzione TEX Livepercheacute con minime varianti egrave identica per tutte le piattaforme di elaborazionepiugrave comuni Anzi anche per chi lavora su macchine Windows sebbene esistalrsquoeccellente distribuzione MiKTEX espressamente prodotta per lavorare con ivari sistemi operativi della Microsoft si consiglia di installare la versione TEXLive Certe personalizzazioni necessarie per la composizione tipografica di altaqualitagrave diventano relativamente difficili da fare con la distribuzione MiKTEXprevista per utenti ai quali lavorando con un sistema operativo ldquoproprietariordquonon sono concesse troppe personalizzazioni

Nel seguito quando si scriveragrave ctan ci si riferiragrave al Comprehensive TEXArchive Network (la rete degli archivi completi del sistema TEX) questa rete egraveformata da tre server principali dislocati in varie parti del mondo e di un numerosterminato di ldquomirrorrdquo che ne rispecchiano il contenuto I primi sono aggiornatiin modo sincrono ogni notte i secondi sono aggiornati in modo dilazionatodipendente dalla loro politica amministrativa ma generalmente sono moltoaggiornati anche i mirror

Nel seguito quando si useragrave lrsquoindicazione $TEXMF ci si riferiragrave alla cartellao folder che funziona da ldquoradicerdquo per gli ldquoalberirdquo di cartelle del sistema TEXQuesto sistema infatti ha i suoi file collocati in molte cartelle gerarchicamentecollegate fra di loro in strutture ad albero la radice di ciascuno di questi alberi egraveposta nel disco fisso dellrsquoelaboratore in posizioni diverse a seconda della macchinae del sistema operativo Ogni utente conosce la sua macchina e sa dove trovarele cartelle radice dei suoi programmi preferiti

Tuttavia tranne dove indicato in modo esplicito qui si useragrave solo il segno dibarra diritta rsquorsquo come separatore fra i nomi delle cartelle questo egrave il separatorenormale per le macchine che lavorano con i sistemi operativi di tipo UNIX

xxx

incluso il sistema operativo delle macchine Macintosh recenti etichettato conla sigla Mac OS X Nelle macchine Windows il separatore egrave notoriamente labarra rovescia lsquorsquo ma anche questo allrsquointerno dei file che contengono i testi dacomporre con i programmi del sistema TEX va sostituito con la barra normalepoicheacute la barra rovescia per il sistema TEX ha un significato speciale

I lettori ci vorranno perdonare se abbiamo dato la preferenza sia a TEX Livesia alla barra diritta questo egrave anche legato al fatto che come il sistema TEX faparte del software libero cosigrave abbiamo dato la preferenza ai sistemi operativi liberio quasi Ovviamente non crsquoegrave niente di male a servirsi di prodotti commercialiche talvolta offrono qualcosa di piugrave dei prodotti liberi Anche nel campo delledistribuzioni del sistema TEX ci sono diverse distribuzioni commerciali che offronoqualcosa in piugrave Tutti i prodotti commerciali perograve danno qualcosa in meno nelsenso che lrsquoutente egrave vincolato al prodotto e deve talvolta rinunciare alla possibilitagravedi trasferire agevolmente programmi e documenti da una macchina ad unrsquoaltracon un diverso sistema operativo o priva dello stesso prodotto commerciale

Una certa conoscenza preliminare del sistema TEX egrave utile per comprendere afondo questo testo in ogni caso si dagrave per scontato che lrsquoutente conosca bene comelavorare sulla propria macchina di elaborazione e abbia una certa familiaritagravecon lrsquouso della finestra chiamata ldquoTerminalerdquo o ldquoPrompt dei comandirdquo nei varisistemi operativi Talvolta il sistema TEX richiede necessariamente di dare deicomandi in linea scritti cioegrave in una di queste finestre specificatamente destinatead interagire con la macchina mediante comandi scritti senza usare il mouse oaltri comandi ldquoscorciatoiardquo

Capitolo 1

Composizione sincronae asincrona

11 Introduzione

Come si egrave detto i word processor sono programmi per la composizione di testidove le singole parole sono collocate nel testo composto direttamente visibilisullo schermo idealmente quanto si vede sullo schermo dovrebbe andare anchein stampa tale e quale senza modifiche di sorta

Questo genere di programmi prevede una forte interattivitagrave fra compositoree programma di presentazione o di stampa dato il fatto che ogni tasto producesubito un effetto cosigrave come ogni movimento e click del mouse il tipo di compo-sizione che viene prodotto viene detto lsquocomposizione sincronarsquo proprio percheacuteogni azione del compositore si traduce in una immediata variazione del testocomposto

Va da seacute che percheacute il programma sia davvero sincrono e il ritardo fraazione e visualizzazione sia trascurabile la forza del programma deve essereconcentrata nella rapiditagrave della presentazione Tale caratteristica non puograve cheandare a scapito della lsquoperfezionersquo della composizione percheacute questa dipendeda una elaborazione molto piugrave accurata sul testo da comporre Egrave vero cheoggi i programmi di videocomposizione (word processor) sono estremamenterapidi e quindi ogni anno che passa la qualitagrave della loro composizione miglioravistosamente tuttavia il compromesso fra velocitagrave e qualitagrave esiste sempre

La lsquocomposizione asincronarsquo consiste invece nellrsquointrodurre il testo da compor-re in un file senza badare al suo aspetto grafico e nel farlo fluire successivamentedentro un programma di impaginazione dove il compositore puograve agire (anche inun secondo tempo) per modificare interattivamente il solo aspetto grafico Duran-te questo processo puograve accadere di dover modificare la giustezza di alcune linee odi interi capoversi e quindi puograve accadere che le linee facenti parte di un capoversoo lrsquointero capoverso debbano venire ricomposti e giustificati diverse volte senzalimitarsi a ottimizzare la composizione della parte modificata ma prendendo inesame lrsquointero capoverso questo implica lrsquoottimizzazione compositiva dellrsquointerocapoverso non solo una aggiustatina del punto in cui si egrave eseguita la modificaEcco quindi che la composizione avviene in due tempi lrsquointroduzione del testo e

1

2 CAPITOLO 1 COMPOSIZIONE SINCRONA E ASINCRONA

lrsquoottimizzazione della composizione avendo perograve a disposizione lrsquointero testo datrattare

Va da seacute che la composizione asincrona assicura una migliore qualitagrave dicomposizione rispetto a quella sincrona visto che non viene tenuta in nessunconto la velocitagrave di visualizzazione ma la forza compositiva viene concentratasulla qualitagrave

12 Il mark-up di LATEXLATEX appartiene al gruppo di programmi di composizione asincrona ma conalcune particolaritagrave con un editor di testi lrsquoautore o il compositore inserisceil testo in un file che viene successivamente elaborato con LATEX che agisceda impaginatore tuttavia il primo file prodotto mediante lrsquoeditor di testo noncontiene solo il testo in senso stretto ma contiene una serie di informazionidi mark-up che successivamente permettono a LATEX di sapere che cosa stacomponendo in modo da eseguirne la composizione secondo le direttive dellostile del documento che sta elaborando

Il testo prodotto mediante lrsquoeditor di testo egrave quindi una specie di programmache contiene sia il testo da comporre sia i comandi e le altre istruzioni necessarieper il riconoscimento della parte di testo in corso di elaborazione sia le modalitagravecompositive specifiche che il compositore desidera introdurre

Lrsquoutente non deve spaventarsi con le parole lsquolinguaggio di programmazionersquoper lo piugrave si tratta solo di informazioni di mark-up per specificare titoli testispeciali composizione della matematica e simili I comandi e le altre specifica-zioni sono solitamente espresse in inglese (molto semplice ridotto allrsquoessenziale)evitando quasi sempre le abbreviazioni o gli acronimi

Un breve esempio consente di capire meglio il genere di difficoltagrave o megliodi facilitagrave di questo tipo di linguaggio di mark-up

sectionBreve esempio

Il titolo precedente egrave quello di una sezionepiugrave propriamente la parola inglese textitsection intipografia indica ciograve che in italiano viene chiamatotextitparagrafo

Questo secondo capoverso contiene una equazione numeratabeginequationax^2 + bx + c =0endequationEsso contiene anche una tabella centratabegincenter

begintabularlclhlineNome amp relazione amp parentela

hlineGiovanni amp egrave amp il papagrave Ada amp egrave amp la mamma

12 IL MARK-UP DI LATEX 3

11 Breve esempioIl titolo precedente egrave quello di una sezione piugrave propria-mente la parola inglese section in tipografia indica ciograveche in italiano viene chiamato paragrafoQuesto secondo capoverso contiene una equazione

numerataax2 + bx+ c = 0 (12)

Esso contiene anche una tabella centrata

Nome relazione parentelaGiovanni egrave il papagraveAda egrave la mammaMaria egrave la figliaGiuseppe egrave il figlio

Qui crsquoegrave la fine del capoverso che contiene sia una formulasia una tabella

Figura 11 Semplice esempio di composizione con LATEX

Maria amp egrave amp la figlia Giuseppe amp egrave amp il figlio

hlineendtabular

endcenterQui crsquoegrave la fine del capoverso che contienesia una formula sia una tabella

Lrsquoinsieme di testo e comandi contenuti nellrsquoesempio precedente viene poicomposto come nel medaglione della figura 11

Nel capitoli successivi verranno spiegate tutte le informazioni di mark-up ele istruzioni usate nellrsquoesempio Tuttavia anche il lettore con pochi rudimenti diinglese capisce perfettamente quello che il mark-up ha specificato le istruzioniper la composizione del materiale tabulare sono un poco piugrave articolate maguardando il risultato ci si rende conto che non sono poi cosigrave misteriose

4 CAPITOLO 1 COMPOSIZIONE SINCRONA E ASINCRONA

13 Scribus un impaginatore Open SourceDi programmi di impaginazione commerciali ne esistono molti e tutti essendodestinati al lavoro professionale sono anche abbastanza costosi Tuttavia per letre piattaforme di lavoro principali (Windows Linux Macintosh) esiste lrsquoimpagi-natore Scribus che come LATEX egrave open source e chiunque se lo puograve scaricaredalla rete e installarselo

Tuttavia merita riportare un piccola parte della documentazione descrittivadi Scribus qui crsquoegrave una libera traduzione del documento che si trova in rete al-lrsquoindirizzo httpwikiscribusnetindexphpWord_Processing_vs_DTP

Prime indicazioniMolti usano pacchetti di produzione per lrsquoufficio (office suite) come per esempioMicroSoft Officetrade oppure OpenOfficeorgtrade Ma a un certo punto non sonopiugrave soddisfatti delle potenzialitagrave del loro word processor preferito Forse nonpossono apportare correzioni fini al layout oppure alcune loro idee non sonorealizzabili Oppure la rivista allrsquoedicola giugrave allrsquoangolo appare fatta in modo piugraveprofessionale

Perciograve queste persone si guardano attorno per trovare altri applicativi etrovano applicativi professionali per il Desk Top Publishing (DTP) come Quark-XPress Indesign o Scribus Lrsquoultimo in particolare ha un grande vantaggio egrave OpenSource perciograve percheacute non provarlo Dopo aver scaricato il programma dallarete averlo installato e finalmente lanciato lrsquoautore abituato ai word processorresta seduto davanti allo schermo come ldquoun coniglio di fronte a un serpenterdquoNon sa assolutamente che cosa fare Tutto appare cosigrave strano e percheacute nonpuograve semplicemente introdurre il testo nel suo documento Dopo qualche tempocompletamente frustrato lrsquoautore disinstalla Scribus e torna al suo solito wordprocessor accettandone le limitazioni e gli svantaggi

Le principali differenzebull Un applicativo DTP non egrave fatto per creare testo mdash almeno se si sta

pensando a grandi quantitagrave di testo cioegrave molte pagine Per questo scopo egravemeglio usare un word processor o un semplice editore di testi anche senzamark-up Dopo che egrave stato creato un file di testo esso puograve essere importatonellrsquoapplicativo DTP Da questo momento allrsquointerno dellrsquoapplicativo DTPsi eseguono solo delle piccolissime modifiche al testo e si evitano le correzionicorpose usando lo stesso applicativo DTP Questo modo di procedereseparatamente deriva dalle diverse responsabilitagrave dei professionisti unapersona crea il file di testo unrsquoaltra persona ne crea il layout

bull La maggior parte degli applicativi DTP moderni sono basati sulle scatole(frame) Questo significa che tutto il contenuto di una pagina egrave collocatadentro a delle scatole ldquoContenutordquo include il testo le figure i disegni eogni altra cosa che lrsquoautore vuol vedere nella pagina stampata Questescatole sono spostabili con grande libertagrave e possono essere collocate in ognipunto della pagina Il testo di una scatola puograve esser fatto proseguire inunrsquoaltra scatola

13 SCRIBUS UN IMPAGINATORE OPEN SOURCE 5

Si potrebbe obbiettare che anche i word processor hanno le scatole di testoe che egrave possibile importare una figura o un diagramma nel documentoche si sta componendo con il word processor Tuttavia appena si prova amettere con precisione al suo posto lrsquooggetto lo si vuole ridimensionareaumentarne o diminuirne la risoluzione grafica o ruotarlo si scopronorapidamente le grosse limitazioni di queste prestazioni ldquoDTPndashlikerdquo Spesso egravedifficile impedire che si spostino da sole quando si aggiunge altro materialeal documento

bull Una volta che il testo egrave nella sua scatola di testo lo si puograve manipolarecon un altissimo grado di precisione Un word processor puograve mettere adisposizione corpi dei caratteri di 6 7 8 9 10 punti ma con Scribus laprecisione arriva ai decimi di punto Percheacute egrave cosigrave importante In questomodo si puograve far stare un dato testo dentro unrsquoarea di date dimensioni Peresempio potrebbe essere necessario adattare la larghezza di una parolacon un elemento grafico decorativo che vi giace sottoSi ha la possibilitagrave di allungare un font sia orizzontalmente sia vertical-mente aggiustare con precisione lo spazio fra le righe (ancora con unaprecisione di decimi di punto) e lo spazio fra le lettere (accostamenticrenature kerning) Gli applicativi DTP pertanto danno il controllo com-pleto sulla precisa posizione dei caratteri allrsquointerno del testo e consentonodi adattare il testo ad un dato spazio rettangolare o di qualunque altraforma Questi sono esempi dove il controllo preciso sulle dimensioni e sullaposizione egrave assolutamente necessario Si puograve adattare il testo in modo chesegua il profilo di una figura (o anche il contrario mdash si provi ad adattare iltesto al profilo di una figura con un word processor mdash pur tuttavia questapotrebbe essere una specifica di layout del DTP) sovrapporre immagini altesto o viceversa e creare le separazioni di colore per la stampa

bull Negli applicativi DTP la tavolozza dei colori contiene solo qualche dozzinadi colori differenti chi piugrave chi meno Qualunque altro colore si desiderideve essere definito a mano Questo percheacute nella stampa professionalein offset i colori aggiunti possono essere considerati spot color e la cosapotrebbe non essere quello che si desideraIl DTP consente di rendere semitrasparenti le immagini i grafici il testo mdashqualunque cosa si possa mettere in una pagina

bull Si possono definire le cosiddette master page Se una pagina normale usauna master page come base tutti gli elementi giagrave presenti sulla masterpage appaiono anche nella pagina normale Si pensi ad una rivista a unanewsletter dove certi elementi come per esempio le intestazioni i piedini inumeri di pagina i loghi e il layout della pagina sono ripetitivi mantenendoperograve una differenza fra le pagine di sinistra o quelle di destra Allrsquointernodello stesso documento puograve essere definita piugrave di una master page undocumento di molte pagine potrebbe fare uso di un numero considerevoledi master page

Che cosa un applicativo DTP non puograve farebull Un applicativo DTP serve per creare il layout di un documento non serve

per strutturare un testo Non puograve creare riassunti o indici al posto del

6 CAPITOLO 1 COMPOSIZIONE SINCRONA E ASINCRONA

compositore Non ci sono funzioni per aggiungere eo gestire note in calceScribus 13x a differenza di altri DTP puograve generare lrsquoindice

bull In generale egrave difficile connettere un applicativo DTP a dati esterni comequelli contenuti in un database Scribus lo puograve fare mediante un suo plug-inpython destinato a ciograve

Vantaggi degli applicativi DTPbull Controllo assoluto del layout Gli applicativi DTP non rimescolano mai

le scatole per aggiustarle alle necessitagrave del testo o della stampante Alcontrario si devono impostare le specifiche del testo eo della stampante inmodo corretto

bull Il profilo del testo si puograve adattare a qualunque profilo irregolare

bull Le griglie i margini e i righelli sono molto utili per collocare correttamentele scatole

bull Lrsquouscita egrave professionale I formati PDF o PostScript o uno di quei formatinecessari per quelle enormi macchine di stampa offset Con un applicativoDTP li si puograve ottenere tutti

14 ConclusioneSe il lettore di queste note desidera disporre di un potente mezzo per crearedeacutepliant pubblicitari gli strumenti DTP gli sono indispensabili

Ma se il lettore vuole produrre testi scritti e illustrati puograve constatare cheLATEX fa tutto o quasi tutto quello che puograve fare un applicativo DTP ancheadattare il profilo di un testo a quello di una immagine Il posizionamento diogni elemento puograve essere fatto non con la precisione di un decimo di punto macon quella di 1216 di punto Normalmente non egrave necessario gestire scatole ditesto ma lo si puograve fare e in questo testo crsquoegrave anche un esempio Le figure e igrafici sono sempre gestiti come scatole Il colore puograve essere gestito sia con unatavolozza ridotta sia con collezioni di colori abbastanza ampie attraverso unapposito plug-in il quale consente anche di gestire la trasparenza degli oggetticolorati testo incluso

Lrsquouscita puograve essere di default in formato PDF La variazione della larghezzaeo dellrsquoaltezza del corpo dei caratteri viene gestita automaticamente per lacomposizione del testo (microgiustificazione) ma LATEX e i suoi plug-in (esten-sioni) contengono comandi per modificare ruotare e scalare qualunque oggettoil risultato egrave ottimale se lrsquooggetto ha carattere vettoriale

Di default LATEX lavora con quattro master page che distinguono le pagine disinistra da quelle di destra Ma mette a disposizione una vasta serie di comandiper creare e poi usare quante master page si vogliano

LATEX genera gli indici generali e analitici genera i glossari egrave in grado diprodurre diversi livelli di apparati critici nei testi letterari permette di comporrela musica permette di comporre con qualunque alfabeto e con qualunque tipodi font anche retrogrado o ad ideogrammi con i font bitmapped e con quelliscalabili anche se ovviamente ottiene risultati migliori con questi ultimi producecorrettamente i riferimenti incrociati e numera automaticamente tutti gli oggetti

14 CONCLUSIONE 7

numerabili quali i paragrafi le figure le tabelle le formule eccetera egrave ingrado di includere praticamente qualunque immagine in qualunque formato(bersquo talvolta con un porsquo di trasformazioni preliminari) e di produrre disegni altratto o con sfumature di colore che hanno il pregio di venire composti con leparti testuali formate con gli stessi font usati per il testo Inoltre ultimo manon meno importante LATEX non ricorre a formati di file proprietari al fine dipoter mantenere lrsquointeroperabilitagrave con i calcolatori piugrave diversi LATEX insommafa certamente di piugrave di un qualsiasi impaginatore anche se ha un lsquopeccatooriginalersquo secondo gli utenti che non ne apprezzano abbastanza il valore cioegravequello che LATEX non puograve fare essendo un programma di composizione asincronaegrave quello di consentire al compositore di vedere interattivamente il risultato deisuoi comandi e questo come spiegato in precedenza ha molti vantaggi e alcunipiccoli svantaggi

Capitolo 2

Nozioni elementaridi tipografia

Il gergo della tipografia come tutti i gerghi professionali contiene un certonumero di parole che hanno un significato che deriva dalla pratica o dallatradizione

21 Tipografia e dattilografiaBisogna innanzi tutto chiarire che comporre tipograficamente egrave una cosa deltutto diversa dalla composizione con la macchina da scrivere e perciograve anche coni moderni sostituti delle macchine da scrivere costituiti dai word processor

Questi ultimi oggi sono talmente avanzati che danno lrsquoillusione di potereseguire una composizione tipografica ma in realtagrave a parte i compromessi fravelocitagrave di presentazione e perfezione della composizione illustrati nel capitoloprecedente il risultato dipende moltissimo dalla professionalitagrave del ldquotastieristardquocostui o costei egrave la persona che immette il testo e che decide cosa fare chespazi lasciare dove mettere il materiale non testuale (per esempio le fotografie)eccetera Se lrsquooperatore designato con il vecchio termine di tastierista non haabbastanza professionalitagrave il risultato della composizione egrave modesto

La bellezza di una composizione tipografica a parte il testo sta nel fattoche la disposizione del materiale da leggere o da consultare non richiama su diseacute lrsquoattenzione ma mantiene quella sobrietagrave che consente al lettore di recepireil messaggio senza distrazioni inutili e senza zoppicare nel leggere a causa dispaziature irregolari o continui cambiamenti di stile dei caratteri

Vale la pena di osservare la figura 21 dove Herman Zapf un grande dise-gnatore di caratteri contemporaneo usa il suo font Zapfino destinato proprioalle citazioni o alle epigrafi per comporre una frase di Oswald Veblen che esaltala matematica (e il suo linguaggio) proprio il motivo che spinse Knuth a ldquoin-ventarerdquo la tipografia assistita da calcolatore mediante il programma TEX Unaanaloga motivazione celebrativa sta alla base del biglietto di auguri del 2003della figura 22 che lrsquoassociazione internazionale degli utenti di TEX ha inviato aisuoi soci

Egrave chiaro che questa epigrafe e questo biglietto richiamano lrsquoattenzione su diseacute sono fatti apposta Ma un libro completamente composto con il font Zapfino

9

10 CAPITOLO 2 NOZIONI ELEMENTARI DI TIPOGRAFIA

Figura 21 Dedica a Donald Knuth

Figura 22 Auguri di TUG (TEX Users Group) per il 2003

22 UNITAgrave DI MISURA TIPOGRAFICHE 11

sarebbe faticosissimo da leggere e il lettore sarebbe continuamente distratto dalleacrobazie calligrafiche eseguibili con questo font1

La scelta dei font la loro grandezza il loro stile la loro nerezza la sceltadella distanza fra le righe i margini gli spazi bianchi lasciati attorno agli oggettinon testuali sono tutte cose di competenza del ldquodisegnatore editorialerdquo nondi dilettanti come siamo tutti noi LATEX nei limiti di quello che puograve fare unoggetto ldquoinanimatordquo come un programma di elaborazione di dati sostituisce siail disegnatore editoriale sia il tipografo non sostituisce il tastierista se questopensa di essere davanti ad una macchina da scrivere un porsquo sofisticata nonostantetutto quello che LATEX egrave capace di fare la composizione risulteragrave squilibrata edisomogenea in sostanza lrsquoopera di un dilettante

La raccomandazione perciograve egrave la seguente lasciamo LATEX fare il suo mestiereIl risultato saragrave sicuramente migliore di quello che potremmo ottenere con inostri maldestri interventi ldquocorrettivirdquo

22 Unitagrave di misura tipograficheIn tipografia si usano molte unitagrave di misura tipografiche che spesso se non semprenon hanno nulla a che fare con il sistema metrico decimale Essenzialmente tuttoviene misurato in punti tipografici o in loro multipli

Qui nasce una prima difficoltagrave interpretativa Che cosa egrave un punto tipograficoNe esistono almeno tre versioni

1 Il punto tipografico anglosassone definito come la frazione 17227 di unpollice a sua volta pari a 254mm Ne segue che il punto anglosassonecorrisponde a 03514598mm poco piugrave di un terzo di millimetro Questa egravelrsquounitagrave di misura usata da LATEX e ogni informazione metrica che LATEXfornisce al compositore durante la sua esecuzione egrave sempre espressa inquesto tipo di punti tipografici

2 Il punto PostScript corrisponde a 172 di pollice quindi egrave un poco piugravegrande del punto anglosassone percheacute vale 035277778mm La differenzasembra piccola ma quando si parla di diverse decine di punti la differenzaegrave visibile a occhio nudo

3 Il punto didot viene usato nellrsquoEuropa continentale esso corrisponde a03760mm e basta una decina di punti per vedere la differenza ad occhionudo rispetto al punto anglosassone

La figura 23 presenta un confronto (relativo) delle varie scale metriche che sipossono ottenere con le unitagrave di misura descritte in questo paragrafo se la paginaviene stampata in scala 1 1 allora il confronto diventa anche un confrontoassoluto

Non egrave il caso di preoccuparsi di queste differenze tuttavia nasce spontaneala domanda ldquoMa percheacute i tipografi non si sono accordati su una unitagrave metricardquo

1Recentemente chi scrive ha trovato il libretto di Lorenza Bonifazi e si mandi atavola ndash Antiche ricette del Montefeltro Raffaelli Editore Rimini 2006 Il libretto ha la partecontenente le ricette composta con il font Zapfino e per ldquoimpararerdquo a leggerlo ci vuole unpochino Lo scopo dichiarato di usare questo font calligrafico molto ornato egrave quello di renderelrsquoatmosfera originale del quaderno dal quale lrsquoautrice ha ricavato le ricette il quaderno erastato scritto a mano con bella calligrafia da una sua antenata a metagrave del xix secolo

12 CAPITOLO 2 NOZIONI ELEMENTARI DI TIPOGRAFIA

0 50 100mm

CBeccari

ndashpi

ctur

e

0 1 2 3 4 in

0 100 200 300 bp

0 100 200 300 pt

0 5 10 15 20 25 pc

0 100 200 300 dd

0 5 10 15 20 25 cc

Figura 23 Confronto relativo fra le varie scale di lunghezza

Non so se questa risposta sia adatta penso che la tipografia sia unrsquoarte praticatain un ambito piuttosto ristretto dove gli interscambi erano fino alla fine dellrsquo rsquo800abbastanza scarsi quindi la possibilitagrave di fraintendimenti era modesto Ogginel mondo dellrsquoinformatica e della tipografia assistita da calcolatore sarebbedesiderabile una maggiore uniformitagrave Infatti oggi si sta imponendo in tipografiail punto anglosassone e in quella assistita dal calcolatore il punto PostScriptEgrave un peccato che il Sistema Internazionale non sia riuscito nel compito distandardizzare una unitagrave di misura adatta alla tipografia (per esempio lsquoun terzodi millimetrorsquo ma dotato di tutti i multipli e sottomultipli decimali del caso)come invece in parte egrave riuscito a fare con il carato metrico

Per indicare lunghezze maggiori in tipografia si usano multipli duodecimalicome il pica che rappresenta 12 punti anglosassoni o il cicero che rappresenta12 punti didot Bisogna perograve dire che mentre nel Nord America si usa il picacome unitagrave di misura per indicare la giustezza (lunghezza) della riga di stampain Europa e in molte altre parti del mondo piugrave o meno lsquodecimalizzatersquo RegnoUnito compreso la giustezza si indica in millimetri Lo stesso vale per i formatidelle carte da stampa nel Regno Unito sopravvivono denominazioni verbali peri formati dei libri ma poi la carta egrave misurata in millimetri In Italia il cicero egravespesso indicato col nome di lsquorigarsquo salvo poi a non essere piugrave chiaro se si parladi una riga di testo o di una riga alta 12 punti e ai giorni nostri se i 12 puntisiano didot o anglosassoni

23 Misure tipograficheLa grandezza dei caratteri egrave indicata in punti quando si lavorava con i caratterimobili metallici era chiarissimo che cosa volesse dire la parola lsquocorporsquo dei caratteriquesti infatti erano ricavati da blocchetti parallelepipedi di metallo in cui una

23 MISURE TIPOGRAFICHE 13

(a)

altezza del fusto

(b)

larghezza

corpo

(c)

Figura 24 Caratteristiche dei caratteri mobili (a) Visione drsquoinsieme di uncarattere mobile metallico (b) vista laterale del fusto del carattere (c) vistadella faccia con il disegno rovesciato del segno da stampare

delle lunghezze rappresentava lrsquoaltezza del blocchetto su una delle facce di baseera ricavato in rilievo il disegno del segno da stampare Si vedano le indicazionicostruite nella figura 24 dove sono evidenziate le grandezze dei caratteri mobili

La faccia di base aveva una altezza e una larghezza La larghezza era variabilea seconda del segno che il blocchetto conteneva egrave evidente che il blocchetto diuna lsquoMrsquo era molto piugrave largo di quello di una lsquoirsquo Invece lrsquoaltezza era uguale pertutti i blocchetti dello stesso alfabeto o meglio dei blocchetti della stessa lsquocassarsquola cassa era un cassetto diviso in tanti scomparti quanti erano i segni minuscolimaiuscoli segni di interpunzione cifre eccetera che formavano la collezione deicaratteri dello stesso lsquodisegnorsquo la figura 25 mostra la disposizione di una cassaitaliana Bene lrsquoaltezza della base di tutti i blocchetti della stessa cassa formavail corpo e veniva misurato in punti

Allrsquoindirizzo httpwwwyoutubecomuserEleonoraTallonepu si tro-va un breve filmato realizzato da Eleonora Tallone che ldquointervistardquo Enrico Talloneun tipografo artista che compone a mano con caratteri mobili e pubblica testi digrande pregio artistico tipografico Nel filmato si vedono chiaramente non solole casse i caratteri mobili il compositoio ma anche altri strumenti tipograficie almeno una macchina da stampa una platina in funzione Un breve filmatosemplice ed istruttivo

Quindi un carattere di 12 pt era un segno qualunque della cassa il cui bloc-chetto aveva una altezza della faccia di base di 12 punti Questo evidentementenon rappresentava lrsquoaltezza del carattere ma ripeto lrsquoaltezza della faccia delblocchetto Il fatto che i blocchetti avessero le facce di base della stessa altezzapermetteva al compositore di adagiare tutti quelli di una riga sul compositoioe poi di trasferire la riga completa sulla pagina parzialmente composta con lacertezza che tutti i caratteri della riga fossero allineati correttamente

Inoltre il fatto che tutti i blocchetti avessero la stessa altezza come la sivede rappresentata nella figura 24(b) assicurava che essi venissero inchiostratiomogeneamente con i rulli inchiostratori e poi prendessero simultaneamentecontatto con la carta da stampare e ricevessero la stessa pressione dal torchiodi stampa cosigrave da imprimere i segni inchiostrati nella stessa maniera al fine di

14 CAPITOLO 2 NOZIONI ELEMENTARI DI TIPOGRAFIA

CBeccari

ndashpi

ctur

e

A B C D E F G

H I J K L M N O

P Q R S T U V

X Y Z E E Eespo-nenti

a e ı o u aelig œ

( ) sect [ ] AElig ΠC c

a e ı o u amp

a e ı o u k j

a e ı o u mdash laquo raquo fl ffl

ffi qb v c d

ff h

fim n o a

z

yl t u i

x

w W A E I O U

ef g

1 2 3 4 5

6 7 8 9 0

- rsquor s

spfini

p spazimezzani

spazigrossi

(terziroli)quadratini

quadrati

qto

ndi

Figura 25 Disposizione delle lettere e degli altri segni negli scomparti di unacassa usata in una tipografia italiana

assicurare una nerezza omogenea dello stampatoOggi che i caratteri mobili metallici non si usano quasi piugrave che significato

ha il corpo Indica solamente lrsquoaltezza complessiva della riga di testo spaziobianco incluso e in pratica la distanza fra le righe di base di due righe successivequando queste non siano interlineate (nemmeno sterlineate per questo concettosi veda il capitolo 11)

Ecco allora alcuni nuovi termini linea di base interlinea e avanzamento diriga

La linea di base egrave quella linea ideale sopra la quale sembrano appoggiati tuttii segni di una riga sotto alla riga di base sporgono le parti discendenti dei segnicome quelli delle lettere g p q y sopra la linea di base sporgono tutte le letterema alcune come b d f eccetera sono piugrave alte delle altre lettere minuscole comele lettere a c e m n x eccetera Siccome tutte queste minuscole sono altecome una lettera lsquoxrsquo il loro lsquoocchiorsquo (la loro altezza) in LATEX viene indicato conil nome di x-height cioegrave lsquoaltezza della xrsquo

I discendenti sono i tratti delle lettere che sporgono sotto alla linea di base edeterminano la profonditagrave della riga Gli ascendenti sono i tratti delle lettereminuscole che sporgono sopra la linea tangente alla lsquoxrsquo Il piugrave alto ascendente egravespesso quello dalla lettera lsquohrsquo talvolta sporge sopra allrsquoaltezza delle maiuscoletalvolta egrave alto quanto le maiuscole In ogni caso in ogni riga la sua altezzaegrave determinata dallrsquoascendente piugrave alto Non necessariamente la somma dellaprofonditagrave e dellrsquoaltezza di una riga di testo egrave uguale al corpo

Come giagrave detto di fatto il corpo egrave la distanza di due righe di base compostesenza inserire alcuna interlinea Poicheacute non necessariamente una data lineacontiene tutti i caratteri con i discendenti e tutti quelli con gli ascendentiil corpo puograve sembrare maggiore dellrsquoaltezza complessiva di una riga ma ingenerale anche se i segni di due righe successive composte senza interlinea noninterferiscono fra di loro la mancanza di interlinea spesso rende il blocco di testotroppo compatto e faticoso da leggere

24 LE PARTICOLARITAgrave DEI CARATTERI 15

Per questo motivo si inserisce una interlinea di un paio di punti o proporzio-nalmente di piugrave per i corpi piugrave grandi Tradizionalmente lrsquointerlinea era quellastriscia di metallo che veniva inserita fra due righe successive per distanziarle unpoco in inglese sia chiama leading o lead da pronunciare come lsquoleadrsquo (piombo)percheacute queste strisce metalliche erano di piombo (o della stessa lega di piombousata per i caratteri da stampa)

Di conseguenza lrsquoavanzamento di riga rappresenta la distanza effettiva frale linee di base di due righe successive composte interponendo lrsquointerlinea Sidiragrave quindi che un certo testo egrave composto in corpo 1214 per dire che i caratterihanno un corpo di 12 punti e che lrsquoavanzamento di riga egrave di 14 punti il cheimplica la presenza di una interlinea di 2 punti A questo proposito si veda lasituazione appena descritta rappresentata nella figura 112

24 Le particolaritagrave dei caratteriOgnuno avragrave notato che i caratteri da stampa si dividono sostanzialmente in duegrosse categorie ma in realtagrave essi sono distinti da una varietagrave di caratteristicheche permettono moltissime diverse classificazioni

La differenza fra i caratteri usati dalle vecchie macchine da scrivere a spazia-tura fissa e i caratteri da stampa vera e propria a spaziatura variabile credo chesia evidente a tutti Oggi i caratteri a spaziatura fissa sono quasi del tutto scom-parsi ma trovano importanti applicazioni specialmente di carattere informaticoe non solo quando egrave necessario evidenziare con il tipo di segno usato certi scrittitecnici come i brani di linguaggio di programmazione che non devono esseregiustificati e non devono avere nomi o parole chiave divisi in sillabe in fin di rigama la cui spaziatura fissa aiuta il lettore a distinguere le variabili dagli operatoriquindi a leggere il codice con piugrave facilitagrave

I caratteri a spaziatura variabile sono piugrave comodi da usare nei testi giustificatie consentono in generale una lettura piugrave agevole specialmente se sono carattericon grazie Le grazie sono quei piccoli segni solitamente con andamento orizzon-tale alle estremitagrave delle aste che rendono maggiormente definito il contorno deisingoli segni e specialmente le grazie inferiori consentono di allineare meglio ladirezione della lettura lungo la riga di testo Quindi una seconda classificazioneriguarda la presenza di grazie (serif in inglese) o la loro assenza (sanserif )

I caratteri non hanno poi la stessa forma ognuno egrave in grado di distinguere laforma dei caratteri tondi (roman in inglese) dai caratteri inclinati (slanted ininglese) questi a loro volta si distinguono dal fatto che sono ottenuti dal tondosemplicemente inclinando le aste oppure sono disegnati apposta con andamentopiugrave corsivo (italic in inglese) sebbene di questo corsivo sia possibile disporreanche di una versione non inclinata

Inoltre un alfabeto puograve contenere sia le lettere maiuscole sia quelle minu-scole dalla forma completamente distinta da quella delle maiuscole oppure puogravecontenere un alfabeto minuscolo in cui le lettere minuscole assomigliano aduna versione ridotta delle maiuscole in questrsquoultimo caso si egrave in presenza delmaiuscoletto (small caps in inglese)

La nerezza dei segni puograve assumere livelli diversi le collezioni di caratteri piugravericche hanno diverse gradazioni di nero chiarissimo chiaro normale nerettonero nerissimo I font per tipografia assistita dal calcolatore spessissimo hanno

16 CAPITOLO 2 NOZIONI ELEMENTARI DI TIPOGRAFIA

solo una versione normale e una nera ma le collezioni piugrave ricche possono averediverse gradazioni

Per altro gli stessi segni con il medesimo grado di nero possono averedei disegni ristretti (condensed) o allargati (extended) rispetto alla dimensionenormale

Una caratteristica che invece non egrave visibile egrave la codifica questo egrave un concettotipicamente informatico nel senso che ogni segno si trova descritto dentro un fileinsieme agli altri segni dello stesso alfabeto e per recuperare quel segno dal fileegrave necessario conoscere il suo lsquoindirizzorsquo Esistono moltissimi modi di indirizzare icaratteri (i singoli segni) allrsquointerno di un file e la cosa dipende anche dal numerodi segni che il file contiene Oggi la codifica UNICODE permette di avere fileenormi che contengono un numero enorme di segni disegnati in modo piugrave omeno uniforme anche se appartengono ad alfabeti diversi Non egrave raro il casodi file relativi ad una sola collezione che contengono lrsquoalfabeto latino con i suoisegni numerici e di interpunzione lrsquoalfabeto greco lrsquoalfabeto cirillico lrsquoalfabetoebraico lrsquoalfabeto arabo una certa collezione di segni cinesi giapponesi coreaniraccolte di segni speciali come i simboli matematici o i segni astrologici e chipiugrave ne ha piugrave ne metta e non egrave difficile arrivare a qualche decina di migliaia disegni

La codifica egrave importantissima percheacute si scrive assumendo una certa codificae si vede sullo schermo il testo correttamente rappresentato ma poi se si cambiafont si rischia di non avere piugrave la possibilitagrave di decifrare il messaggio a me egravecapitato piugrave di una volta di aprire con Word dei documenti composti con unrsquoaltraversione di Word e trovare che i segni originali erano stati sostituiti dai segnimatematici la lettura evidentemente era diventata impossibile

La cosa piugrave importante per i professionisti che si occupano della graficaeditoriale consiste nella scelta dei font due font di forma tonda diritta nerezzamedia estensione normale con lo stesso corpo e relativi allo stesso alfabetopossono apparire completamente diversi a seconda del rapporto fra lo spessoredelle aste spesse e quelle sottili a seconda della forma delle grazie a secondadellrsquoinclinazione dellrsquoasse ottico (non lrsquoinclinazione delle aste) puograve apparirecompletamente diverso e puograve dare luogo ad una lettura piugrave facile oppure piugravefaticosa se composta in righe con lo stesso avanzamento e della stessa lunghezza

Questo testo egrave composto con i caratteri della collezione Computer Moderncon codifica a 128 caratteri del sistema TEX2 per lo piugrave viene usata la formadi nerezza media e larghezza normale il corpo normalmente usato egrave il corpo10 composto con un avanzamento di riga di 12 punti Talvolta si usa il corsivoper mettere in evidenza delle parole o per scrivere quelle in inglese I titolinidei paragrafi sono scritti in tondo diritto nerissimo esteso in corpo 144 conun avanzamento di 20 punti lrsquoavanzamento dei titolini in realtagrave non egrave moltoimportante percheacute quasi tutti si svolgono su una sola riga

2Inizialmente si era usata la collezione European Computer Modern con codifica a 256caratteri ma poi si egrave ripiegato sulla ldquovecchiardquo collezione con codifica a 128 caratteri percheacutealcune delle persone che hanno collaborato alla stesura si sono trovate con una installazionedel sistema TEX troppo personalizzata al punto da non essere piugrave compatibile con quelladegli altri collaboratori Sono cose che succedono quando si usa uno strumento troppo potenteDopo diverse versioni di questo testo si egrave deciso infine di usare la collezione Latin Modern a256 caratteri lasciando al singolo collaboratore la libertagrave di usare questi font o di escluderliritornando perciograve allrsquouso dei Computer Modern

25 I CONTROGRAFISMI 17

25 I contrografismiLogicamente la pagina stampata contiene i segni che convogliano il messaggioche vengono collettivamente denominati grafismi I contrografismi sono le partidella pagina prive di segni eventualmente sono solo colorati ma svolgono unafunzione essenziale nel disegno grafico della pagina specialmente nella qualitagravedella composizione la cui lettura viene agevolata dal loro uso giudizioso

Non solo lrsquointerlinea egrave un contrografismo ma anche la rientranza dei capoversigli spazi sopra e sotto alle figure alle formule ai titolini i quattro margini diciascuna pagina quello superiore quello esterno quello inferiore e quello interno

Questi ultimi infatti determinano la posizione della gabbia che contiene iltesto e talvolta anche la testatina eo il piedino (lrsquointestazione della pagina e lariga di piegrave di pagina header e footer in inglese) se questi due elementi sonovuoti o quasi vuoti essi contribuiscono piugrave alla grandezza dei margini che allagrandezza della gabbia

I margini specialmente quelli esterni secondo un disegno grafico abbastanzatradizionale quando sono sufficientemente ampi possono accogliere le notemarginali quindi le note possono trovare posto sia in calce alla pagina sia neimargini in qualche scritto di stile criticondashletterario esse possono essere anchecollocate in fondo a ogni capitolo

Ma i margini possono accogliere anche parte delle figure o le didascalie dellefigure non si tratta quindi di spazio lsquosprecatorsquo ma di spazio che oltre a dareun tono alla pagina puograve svolgere funzioni ausiliarie al testo in modo creativo espesso gradevole

26 Le parti di alcuni documenti a stampaUn libro generalmente egrave la forma di stampato piugrave complessa e a questa miriferirograve nel descrivere le parti

Un rapporto egrave uno stampato che puograve assumere la forma di un libretto mageneralmente ha meno pretese stilistiche sia per la relativa brevitagrave sia per ilcontenuto spesso assai tecnico (il che non vuol dire solo ingegneristico ma anchegiuridico economico eccetera)

Lrsquoarticolo egrave invece un tipo di stampato di solito assai breve e molto concisola concisione implica che non viene lsquosprecatarsquo unrsquointera pagina per presentare iltitolo spesso lrsquoarticolo egrave scritto su due colonne il che egrave un artificio per usaregabbie di testo piugrave larghe capaci di contenere colonne con righe relativamentecorte e facili da leggere mentre se fosse composto ad una sola colonna in unagabbia cosigrave larga le righe risulterebbero troppo lunghe e quindi faticose daleggere

Un libro puograve essere confezionato incassato (con copertina rigida) o brossurato(con copertina morbida incollata) allrsquointerno della copertina esso comincia conun foglio generalmente privo di ogni scritto seguito da una pagina sulla cuifacciata di destra (il recto) puograve essere riportato lrsquoocchiello il retro (il verso) egravesempre senza testo la pagina successiva sul recto presenta il titolo mentre sulverso presenta le informazioni di carattere legale richieste appunto dalla legge

La successiva pagina puograve contenere una dedica sul recto mentre sul verso egravesenza testo se la dedica manca manca lrsquointero foglio

18 CAPITOLO 2 NOZIONI ELEMENTARI DI TIPOGRAFIA

Segue poi sul recto del foglio successivo una sezione non numerata general-mente intitolata lsquoPresentazionersquo o con un titolo equivalente Spesso non superauna pagina ma puograve anche occupare qualche pagina

La successiva sezione che si apre sul recto contiene lrsquoindice generale a cuipossono seguire aprendosi sul recto delle pagine lrsquoelenco delle figure lrsquoelencodelle tavole lrsquoelenco delle illustrazioni fuori testo ovviamente la presenza diquesti elenchi dipende dal tipo di libro dal suo contenuto Nei libri di carattereletterario come i romanzi spesso lrsquoindice si trova in fondo al libro e in Italia eraquesta la consuetudine di ogni tipo di libro molte decine di anni fa Oggi moltiromanzi e tutti i libri con indici molto strutturati presentano lrsquoindice nelle primepagine come descritto sopra

LrsquoIntroduzione segue queste parti iniziali ma in Italia il materiale inizialefront matter in inglese termina solitamente prima dellrsquoIntroduzione Le pagineche contengono il materiale iniziale sono generalmente numerate con numeriromani terminato il materiale iniziale la numerazione delle pagine ricominciada 1 e viene scritta con cifre arabe fino alla fine del libro3

Dopo il materiale iniziale comincia il corpo del testo main matter in ingleseIl corpo del libro egrave spesso diviso in parti ma egrave sempre diviso in capitoli ogni

capitolo egrave spesso diviso in sezioni gerarchiche che in italiano si chiamano paragra-fo sottoparagrafo sotto-sottoparagrafo capoverso e sottocapoverso in ingleseesse si chiamano rispettivamente section subsection subsubsection paragraphsubparagraph Si noti la presenza dei falsi amici lsquoparagraforsquo e lsquoparagraphrsquo

Il capoverso egrave quel tratto di testo che comincia (generalmente con unarientranza) con una lettera maiuscola e termina con un lsquopunto e a caporsquo Uncapoverso puograve contenere diversi periodi ciascuno diviso in diverse frasi a lorovolta ma qui si sconfinerebbe nella grammatica della lingua Spesso singoliperiodi o anche solo delle frasi di una certa lunghezza sono numerati e comesotto-capoversi a seconda dello scritto possono chiamarsi versetti oppure commiIn generale i versetti sono solo numerati mentre i commi possono avere ancheun brevissimo titolo in questo caso essi cominciano su una nuova riga di testoma nei testi di carattere legale il ldquocapoversordquo (che allora si chiameragrave lsquoarticolorsquo)viene distinto dal fatto che viene inserito un visibile contrografismo e un titolocome minimo un numero fra un articolo e il successivo

Finito il corpo del testo cioegrave dopo lrsquoultimo capitolo comincia il materialefinale la back matter la cui numerazione araba prosegue quella del corpo deltesto ma la numerazione dei capitoli spesso chiamati lsquoappendicirsquo ricominciada 1 o meglio da A visto che si usa una numerazione diversa per esempioletterale ma mentre i capitoli e le parti cominciano sempre sul recto delle paginenel materiale finale i capitoli possono cominciare anche sul verso

Il materiale finale contiene la Bibliografia gli eventuali glossari le appendici(capitoli numerati con lettere) e termina se ci sono con uno o piugrave indicianalitici i quali vengono evidentemente composti per ultimi per evitare che leloro informazioni siano errate a causa delle correzioni eventualmente apportatenel corpo del testo

Lrsquoultimissima pagina sul verso potrebbe contenere il colophon una paginacioegrave nella quale sono descritte le particolaritagrave compositive del testo i materiali

3LATEX di default usa i numeri romani minuscoli scrivendo per esempio lrsquoequivalente di1666 come lsquomdclxvirsquo in Europa tranne nelle isole britanniche generalmente si preferisce ilmaiuscoletto questa modifica alla classe book egrave una delle pochissime che sono state eseguiteper la composizione di questo testo

27 OSSERVAZIONI FINALI 19

usati e simili altre informazioni di carattere tipografico Vengono poi lasciate unpaio di pagine bianche per poter inserire i risguardi posteriori a cui egrave incollata laparte posteriore della copertina

Per ovvi motivi economici le varie pagine di un libro sono ottenute piegando uncerto numero di volte dei grandi fogli queste segnature contengono evidentementeun numero di facciate pari ad una potenza di 2 ci saranno perciograve libri in ottaviin sedicesimi in trentaduesimi raramente con un numero di facciate superiorepercheacute lo spessore delle segnature produrrebbe problemi4 Resta il fatto che toltii risguardi le pagine interne devono essere un multiplo del numero di pagine diuna segnatura al massimo lrsquoultima segnatura di un libro formato da segnaturedi 32 pagine potragrave essere una segnatura da 16 pagine o anche di 8 pagine maquesto aumenta leggermente i costi di produzione Nel predisporre la produzionedi un libro le tipografie generalmente sono piugrave attente al numero di pagineche non al loro contenuto (il contenuto egrave responsabilitagrave dellrsquoautore e della casaeditrice) ma egrave bene che anche lrsquoautore conosca questi problemi in modo dasapersi regolare se deve produrre un testo pronto per la stampa cioegrave un file PDFda trasmettere alla tipografia che non vi mette mano se non per ottenere dal filele lastre per la stampa delle due facce dei grandi fogli che formeranno ciascunasegnatura

27 Osservazioni finaliEgrave chiaro che queste poche pagine non sono in grado di dare altro che una brevepanoramica della terminologia tipografica ma spero che il lettore con questepoche conoscenze sia stimolato ad osservare con piugrave attenzione i libri che ha permano e cerchi di valutare i vari elementi descritti sia in relazione ai caratterisia in relazione agli spazi e alla suddivisione dello stampato

I nomi inglesi che ho indicato servono anche per conoscere il significato dimolti comandi o istruzioni del linguaggio LATEX che usa quelle parole o quellebrevi locuzioni ridotte ad una sola stringa senza spazi per indicare esattamentequegli oggetti individuati dai nomi inglesi

4Con particolari piegature si potrebbero avere anche segnature il cui numero di facciatecorrisponde ad una potenza di due moltiplicata per tre per esempio si potrebbero averesegnature di 6 pagine di 12 pagine eccetera questi tipi di piegature non sono molto frequentinei libri ma si trovano usate in fascicoletti propagandistici e altri simili opuscoli

Capitolo 3

Installare il sistema TEX

Lrsquoinstallazione del sistema TEX puograve essere molto semplice o molto complicatadipende da quali strumenti si usano e da come lrsquoutente sa usare efficacemente ilsistema operativo del proprio PC o laptop

Si distinguono tre casi

1 Sistemi operativi Windows da Windows 98 in poi con processore a 32 bit

2 Sistemi operativi Linux

3 Sistema operativo Mac OS X di qualunque sotto-versione

Qui si parleragrave delle versioni freeware per le versioni commerciali lrsquoutente devevalutare bene il rapporto prestazioniprezzo in relazione alle proprie esigenzeProbabilmente egrave preferibile cominciare con una versione gratuita per poi passaread una versione commerciale se e quando si saragrave constatata le reale necessitagravedi quelle caratteristiche in piugrave che la versione commerciale offre rispetto alleversioni gratuite

Va notato che lrsquoorganizzazione degli utenti di TEX TEX Users Group (TUG)offre la possibilitagrave di scaricare dal suo sito wwwtugorg lrsquoimmagine del discoTEX Live che comunque viene inviato gratuitamente a tutti i suoi soci questodisco dati i tempi per il download puograve essere anche ordinato alla sede di TUGe lo si puograve ottenere praticamente al costo della duplicazione del disco o poco piugraveQuesto disco contiene le distribuzioni per tutti i principali sistemi operativi eper tutte le macchine piugrave diffuse quello che si esporragrave qui di seguito puograve essereritrovato in quel disco

31 Installazione su macchine Windows a 32 bitLa forma piugrave semplice per installare il sistema TEX su una macchina Windows cheusi un processore a 32 bit egrave quella di procurarsi il CD di installazione ProTEXtdetto CD puograve anche essere scaricato come un grande file compresso da uno deisiti dove si trova tutto il materiale relativo al sistema TEX Per esempio ci si puograveriferire al sito

httpwwwctanorgtex-archivesystemswin32protext

21

22 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

e ai file che vi sono contenuti si tratta di due piccoli file di poche decine dibyte e di un grande file di piugrave di 400 MiB quindi egrave necessario disporre di unaconnessione molto veloce Esiste anche una immagine da masterizzare su un CDche puograve essere usata direttamente dal CD senza installare nulla ma che consentedi provare lrsquointero sistema

Estratta lrsquoimmagine dal file autoestraente scaricato dal sito bisogna cercare ilfile PDF protext-installpdf e seguire religiosamente le istruzioni ligrave contenutein realtagrave basta cliccare gli opportuni bottoni che attivano tutte le operazioninecessarie alle installazioni di tutte le varie parti del pacchetto

In realtagrave il file interattivo protext-install-pdf egrave solo un programma diinstallazione il sistema TEX che viene installato egrave MiKTEX di cui si parleragrave diffu-samente anche in seguito specialmente per il fatto che richiede una configurazioneesplicita per attivarne la sillabazione italiana Per il resto questa distribuzioneha pressappoco le stesse funzionalitagrave di qualunque altra distribuzione

Va segnalato che sulle macchine Windows si puograve installare anche TEX Livema generalmente gli utenti Windows preferiscono installare la distribuzioneMiKTEX la cui gestione appare loro piugrave semplice

Egrave bene sottolineare che insieme al sistema TEX il processo di installazioneattraverso protex-installpdf provvede a installare o a reinstallare almenouno shell editor (anche se non necessario egrave perograve molto utile per gestire i filesorgente con cui interagire con LATEX) e per installare o reinstallare programmiaccessori come ghostscript ghostview eccetera

Terminata lrsquoinstallazione guidata il sistema egrave pronto per lrsquouso magari dopoaver configurato il sistema per lrsquouso anche della lingua italiana

32 Installazione su LinuxSpesso il sistema TEX risulta giagrave installato insieme al sistema operativo in ognicaso esso egrave presente nei dischi di installazione del sistema operativo e dei suoiapplicativi dai quali puograve venire installato come qualunque altro programmadi Linux avvalendosi eventualmente di interfacce grafiche come per esempioKpackage tipico delle versioni Linux che usano il KDE desktop Generalmentenon crsquoegrave altro da fare salvo eventualmente lanciare il programmino texconfig pereseguire una configurazione locale per esempio per preconfigurare il sistema perlrsquouso della lingua italiana dallrsquoedizione 2007 del disco di TEX Live anche questadistribuzione nasce configurata per gestire tutte le lingue che LATEX egrave capace digestire In ogni caso il disco TEX Live sembra fatto apposta per lrsquoinstallazionesu macchine Linux sebbene contenga anche le distribuzioni valide per gli altrisistemi operativi

Puograve succedere che qualche distribuzione del sistema operativo Linux abbiagiagrave installato o sia disponibile per lrsquoinstallazione del sistema TEX partendo daidischi della distribuzione ma che il sistema da installare sia il vecchio e gloriosoteTeX che non egrave piugrave aggiornato dal 2005 ma le cui funzionalitagrave sono statetutte trasferite alla distribuzione TEX Live questrsquoultima egrave la distribuzione su cuibisogna puntare percheacute egrave quella che viene aggiornata almeno una volta allrsquoannoe le cui componenti possono venire aggiornate dallrsquoutente ricorrendo al comodoprogramma di gestione tlmgr specifico di TEX Live

Puograve succedere anche che una certa distribuzione per una certa variante delsistema operativo Linux contenga giagrave la distribuzione TEX Live ma suddivisa

33 INSTALLAZIONE SU MACINTOSH CON MAC OS X 23

in vari file parziali talvolta eseguita lrsquoinstallazione ci si ritrova con un sistemaTEX capace solo di gestire la lingua inglese Certo gli altri pacchetti ldquoopzionalirdquodellrsquoinstallazione consentono la configurazione anche per altre lingue ma bisognaprocedere accuratamente secondo le istruzioni del proprio sistema operativo perinstallare anche le estensioni per gestire altre lingue italiano incluso Da unlato sarebbe quindi consigliabile installare il sistema dal disco originale di TEXLive e per il sistema TEX questo sarebbe sufficiente Ma poi altri programmiche si appoggiano allrsquoesistenza del sistema TEX ldquoautoctonordquo non possono essereinstallati senza che venga installata anche questa versione

Esistono dei trucchi per ovviare a questi inconvenienti ma per questo egravebene cercare sui forum specifici come quello del gruppo guIt per trovare leistruzioni da seguire per aggirare queste piccole mancanze Per altro anche ladistribuzione ldquoautoctonardquo bencheacute generalmente ldquodatatardquo cioegrave corrispondentealla versione di TEX Live di un paio di anni prima funziona benissimo anche senon egrave aggiornata e presenta solo la necessitagrave eventuale di configurare le lingue dagestire Alternativamente si puograve seguire la procedura descritta in [19] applicabiledirettamente alla versione Debian di Linux nella distribuzione Ubuntu e che conpochissime modifiche egrave applicabile anche ad altre distribuzioni

Il pacchetto di installazione non installa lo shell editor necessario per operaresui file sorgente da trattare con LATEX si puograve usare lrsquoonnipresente e onnipotenteprogramma emacs con il plug-in auctex se lo si trova troppo complicato si puograveinstallare Kile ottimo e facile da usare oppure si puograve ricorrere al semplice shelleditor TeXworks che perograve va scaricato dalla rete non dal disco di TEX Live Iprogrammi accessori come ghostscript fanno giagrave parte di serie del sistema Linux

33 Installazione su Macintosh con Mac OS XDa quando esiste il sistema operativo Mac OS X e la macchina a sua volta usaun processore Intel Dual Core oppure PowerPC esiste la versione universale diMacTEX valida per entrambe le macchine dotate di quei processori

Il file

httpwwwctanorgtex-archivesystemsmacmactex〈aaaammgg〉zip

dove 〈aaaammgg〉 indica la data della costruzione del pacchetto al momentodi scrivere queste note essa vale 20100907 cioegrave 7 settembre 2010 Questo fileegrave compresso secondo il codice ZIP e contiene un pacchetto di installazioneper MAC estratto questo pacchetto basta cliccarci sopra e si apre il solitodialogo di installazione conviene rispondere che si vuole lrsquoinstallazione completaIl programma provvede da solo ad eseguire lrsquoinstallazione completa di unadistribuzione TEX Live adattata al sistema di cartelle dei calcolatori Macintosh

Essa installa anche gli shell editor TEXShop e TeXworks lrsquoutente che trovi piugravecomodi altri editor deve provvedere separatamente si veda piugrave avanti a questoproposito Invece i due programmi citati sopra sono giagrave dotati delle funzionalitagravenecessarie per visualizzare il risultato della composizione e per procedere allastampa Infatti il visualizzatore della composizione egrave integrato sia in TEXShopsia in TeXworks ed egrave giagrave configurato per passare puntualmente dal file sorgenteal punto corrispondente del file PDF compilato o viceversa questa funzionalitagraveagevola enormemente la lavorazione del documento che si sta scrivendo

24 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

Figura 31 Schermata di LaTeXiT

Viene installata anche lrsquoapplicazione TeX Live Utility nella cartella ApplicationsTeX essa egrave una interfaccia grafica in stile Macintosh per operare con il TEXLive manager molto comodo e intuitivo per eseguire gli aggiornamenti

Vengono installati anche i programmi BibDesk e LaTeXiT il primo serveper gestire i database bibliografici il secondo serve per comporre con latex leformule matematiche eventualmente utili anche sotto forma di immagine perinserirle dentro altri formati di documenti Volendo la si potrebbe introdurreanche nei documenti da produrre con latex e pdflatex ma sarebbe veramentestupido inserire una immagine composta tramite LaTeXiT dentro un documentoda comporre con uno dei programmi del sistema TEX quando questo programmasarebbe capace di produrre la formula da solo e senza i problemi di compatibilitagravedel contenuto che si verrebbero a creare

Al massimo LaTeXiT a parte gli altri documenti composti con programmi e informati diversi da quelli che si possono comporre e produrre con i programmi delsistema TEX puograve servire come ambiente interattivo per verificare la correttezzadella formula via via che la si compone poi finita la composizione si copia ilcodice sorgente e lo si incolla nel file tex del documento da comporre

Se questo discorso puograve apparire confuso si osservi la figura 31 essa mostrauna finestra di lavoro del programma LaTeXiT divisa in due parti nella parteinferiore si scrive la formula in linguaggio LATEX standard senza cioegrave estensionidi nessun genere semplicemente usando la tastiera non il mouse nella parte

34 GLI ALBERI DI CARTELLE DEL SISTEMA TEX 25

superiore dopo aver cliccato sul bottone in basso a destra etichettato con ilnome LaTeXiT appaiono i messaggi di errore casomai ne fossero presenti oppurelrsquoimmagine della formula composta Se la si vuole salvare come immagine nellabarra del menugrave a discesa di File compare la dizione Export image scegliendo laquale si salva il disegno della formula nel formato vettoriale PDF con il nomeche gli si specifica

Lavorando con il sistema TEX conviene invece selezionare dalla finestrainferiore il codice copiarlo e incollarlo nel file tex del documento che si stacomponendo Se si vogliono eseguire modifiche per usare comandi non standardo ambienti diversi da quelli standard basta correggere il codice copiato Siccomescrivere direttamente in linguaggio LATEX egrave una cosa che diventa via via piugravefacile man mano che si acquisisce esperienza ci si accorge in breve che LaTeXiTnon egrave piugrave necessario (quando si compone usando uno dei programmi del sistemaTEX) e non lo si usa piugrave o lo si usa solo saltuariamente Per questo motivo nonse ne parleragrave piugrave in seguito

34 Gli alberi di cartelle del sistema TEXLrsquoinstallazione dellrsquouno o dellrsquoaltro sistema crea sul disco diverse strutture dicartelle ovviamente queste strutture di cartelle gli alberi di cartelle possonoessere un porsquo diversi da sistema operativo a sistema operativo da installazione ainstallazione

La differenza piugrave ovvia egrave che nella descrizione del percorso sulle macchineWindows il separatore fra i nomi delle cartelle egrave una barra rovescia mentresulle macchine Linux e Mac OS X il separatore egrave una barra semplice In questotesto si useragrave sempre la barra semplice per due motivi (a) la barra rovescia haun significato speciale per il linguaggio LATEX per cui limitarne lrsquouso alla suafunzione speciale aiuta anche a evitare errori nello scrivere il testo (b) per lostesso motivo scrivendo in linguaggio LATEX anche su una macchina Windows ipercorsi dei file devono essere sempre indicati con la barra semplice invece checon la barra rovescia

Le differenze piugrave sostanziali riguardano lrsquoinstallazione TEX Live rispetto aquella MiKTEX Se ne parleragrave piugrave diffusamente piugrave avanti Qui ci si limiteragrave adesporre le similitudini

Tuttavia lrsquoargomento puograve sembrare un porsquo ostico in un certo senso lo egrave mail lettore non si scoraggi salti direttamente al paragrafo 35 Puograve tornarci soprain seguito quando vorragrave approfondire lrsquoargomento

Tutti gli alberi a partire dalla loro lsquobasersquo devono essere conformi alla TEXDirectory Structure (TDS) cosiccheacute il sistema TEX possa trovare i file che gliservono sempre nello stesso modo e con un unico suo programma interno diricerca dei file che si chiama kpsewhich questo programma puograve anche venire usatodallrsquoutente ma di solito egli ne ignora persino la presenza percheacute in effetti essosvolge le sue funzioni dietro le quinte ed egrave molto raro che lrsquoutente debba servirsenedirettamente La TDS egrave descritta nel file tdspdf in grande dettaglio non egravenecessario che lrsquoutente fin dalla prima installazione si studi approfonditamentequesto documento ma egrave importante che ne conosca lrsquoesistenza per poterloconsultare quando occorre Esso viene installato insieme al sistema e puograve essereletto aprendo la finestra comandi console xterm Terminal comunque si chiami

26 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

quella finestra nel particolare sistema operativo in uso e scrivendoci dentro ilcomando

texdoc tds

Il comando texdoc egrave utilissimo anche per consultare la documentazione di qualsiasipacchetto solitamente basta dargli in pasto il nome del pacchetto e questoprogrammino esegue le ricerche necessarie per trovarne la documentazione epresentarla sullo schermo

Ciograve premesso ogni utente farebbe bene a costruirsi un suo albero personaleconforme alla TDS dove conservare le sue macro i font che egli si crea i pacchettiche si scrive insomma tutto quanto gli sia strettamente personale e sia funzionaleal funzionamento dei programmi del sistema TEX Questo albero personale partedalla cartella texmf che si trova nella sua $HOME questo nome simbolico $HOME haun significato diverso in ogni sistema operativo e deve essere diverso dalla lsquoradicersquosulla quale sono innestati gli alberi installati dal programma di installazioneNormalmente questo nome simbolico rappresenta

bull ~ nei sistemi Linux

bull ~Library nei sistemi Mac OS X

bull CDocuments and Settings〈utente〉Documenti con lrsquoinstallazione diMiKTEX sulle macchine Windows

dove 〈utente〉 egrave il nome con il quale il particolare utente si egrave registrato sullamacchina

Non si parleragrave piugrave di questo albero personale se non riferendosi ad esso con ilgenerico nome di albero personale che appunto in quanto tale verosimilmentenon avragrave lrsquointera struttura TDS ma solo conformemente a questa struttura lecartelle che il particolare utente effettivamente usa

Ogni programma eseguibile del sistema TEX sa dove cercare i vari tipi difile di cui ha bisogno per ogni tipo di file puograve eseguire la ricerca in diversialberi ma sempre con una precedenza gli alberi alberi prioritari sono quellidellrsquoutente specifico poi vengono quelli della macchina specifica infine quelligenerali dellrsquoinstallazione Siccome si tratta di alberi che contengono migliaia difile la base di ogni albero contiene un database dei nomi dei file che di solitodeve venire aggiornato ad ogni modifica Solitamente non vengono modificati amano gli alberi del sistema TEX ma lrsquoalbero personale egrave ligrave apposta per ricevereogni file personale dellrsquoutente perciograve questo file viene modificato relativamentespesso Ogni installazione dispone di comandi specifici per lrsquoaggiornamento deidatabase dei nomi dei file MiKTEX dispone addirittura di un wizard che richiedesolo di cliccare su un bottone di una finestra di interfaccia grafica In ogni casoi programmi che modificano aggiungono o tolgono file dagli alberi di sistemaprovvedono da soli ad aggiornare gli specifici database dei nomi dei file Perciogravelrsquoutente deve ricordarsi sempre di aggiornare questo database del suo alberopersonale tranne nelle macchine Macintosh dove questo aggiornamento non egravenecessario percheacute egrave intrinseco del sistema operativo

341 Gli alberi di cartelle di TEX LiveGli alberi che vengono gestiti piugrave o meno direttamente dal sistema TEX e nellecui cartelle lrsquoutente in generale non puograve scrivere nulla se non operando da

34 GLI ALBERI DI CARTELLE DEL SISTEMA TEX 27

ldquoamministratorerdquo o da ldquorootrdquo o da ldquosuperuserrdquo con una distribuzione TEX Livesono innestati tutti in texlive Essi sono

1 〈anno〉texmf-dist contiene tutti i file che servono per il funzionamen-to del sistema TEX tranne gli eseguibili veri e propri che sono conservatiin unrsquoaltra cartella

2 〈anno〉texmf contiene tutti i file necessari per la configurazione delsistema TEX generati al momento dellrsquoinstallazione del sistema TEX sonoquindi file che riguardano la configurazione e il funzionamento del sistemaTEX ma sono validi per tutti gli utenti della particolare macchina sul cuidisco appare questo albero

3 〈anno〉texmf-config contiene tutti i file di configurazione di defaultdel sistema TEX in altre parole sono i file che servono per configurare ilsistema prima che eventualmente lrsquoutente specifico o lrsquoamministratore dellamacchina non decidano di impostare una configurazione particolare nonstandard

4 〈anno〉texmf-var contiene tutti i file di configurazione del sistemaTEX generati in seguito a comandi specifici dellrsquoutente amministratore peruna configurazione ad hoc dellrsquoinstallazione sulla specifica macchina

5 texmf-local contiene tutti i file utili allrsquoesecuzione dei programmi delsistema TEX e che sono specifici della particolare macchina in particolareesso contiene certi file di configurazione che dipendono solo da quanto egravedisponibile sulla macchina specifica

6 〈anno〉bin contiene tutti i programmi eseguibili del sistema TEX ilpercorso che conduce a questa cartella e alle cartelle che esso contiene vieneaggiunto automaticamente alla variabile di sistema PATH in modo che iprogrammi contenuti in questo particolare albero possano venire eseguitisia dallrsquoutente mediante comandi manuali sia dagli altri programmi delsistema

7 $HOMEtexlive contiene un albero con la sua radice che comincia a suavolta con 〈anno〉 e prosegue con una TDS contenente i file di servizio e diconfigurazione generati dallrsquoutente specifico (non in qualitagrave di amministra-tore) e dai programmi di servizio durante lrsquoesecuzione di composizioni perquello specifico utente tra gli altri vengono conservati qui i file relativiai font a matrici di punti che il sistema genera attraverso il programmaMETAFONT quando ne ha bisogno o quando manca di quei font nel forma-to vettoriale (che sarebbe sempre il formato preferito e da preferire) quivengono conservati anche i file metrici relativi a questi font generati conMETAFONT Poicheacute questa cartella ha la radice nella $HOME dellrsquoutente ifile contenuti in questo albero sono specifici per un solo utente il proprie-tario della cartella $HOME ma non si deve confondere questo albero conlrsquoalbero personale $HOMEtexmf di cui si egrave giagrave parlato

Lrsquoindicazione rappresenta il percorso che va dalla radice del disco su cui egraveinstallato il sistema TEX fino alla radice dellrsquoalbero che ci interessa a seconda delsistema operativo potragrave essere una cosa come Cprogrammitexlive oppureusrsharetexlive oppure usrlocaltexlive

28 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

Vale la pena di ricordare la necessitagrave di avere per ciascun albero il databasedei nomi dei file sempre aggiornato aggiornarlo quando non egrave necessario nonproduce nessun danno ma omettere lrsquoaggiornamento puograve costituire una fonte difrustrazione non indifferente percheacute il sistema potrebbe non essere in grado ditrovare i file di cui necessita Si ripete questo aggiornamento egrave particolarmenteimportante per lrsquoalbero personale

Tutto ciograve puograve apparire estremamente complicato in realtagrave lrsquoutente o lrsquoammi-nistratore non hanno bisogno di occuparsene se non in circostanze eccezionaliegrave opportuno perograve conoscere lrsquoesistenza di questa molteplicitagrave di alberi e il lorocontenuto Una cosa importatissima da ritenere egrave che ad ogni installazione di unaggiornamento del sistema TEX vengono riscritti alcuni o tutti i file contenutinelle cartelle la cui radice sia formata dalla sequenza di cartelle texlive〈anno〉Qualunque personalizzazione quindi non deve venire scritta dentro cartelle chesi trovino dentro questi alberi altrimenti se ne perde tutto il contenuto percheacuteverrebbe sovrascritta dai file di aggiornamento Quando si installa una nuovaversione cambia lrsquo〈anno〉 e quindi cambia tutta lrsquoinstallazione su alcuni sistemiegrave possibile far convivere diverse versioni del sistema TEX ma questa pratica egraveconsigliabile solo per utenti espertissimi che abbiano esigenze molto particolari

342 Gli alberi di cartelle di MiKTEXSulle macchine Windows egrave possibile installare anche la distribuzione TEX Livedel sistema TEX ma piugrave frequentemente gli utenti delle macchine Windowsinstallano la distribuzione MiKTEX

I diversi sistemi operativi che vengono usati su queste piattaforme Windowssono molto variabili e non sempre completamente compatibili Qui si faragrave riferi-mento ad una installazione con il sistema operativo Windows XP che egrave ancoraquello di prima installazione su diverse piccole macchine portatili quanto si dicequi non dovrebbe essere sostanzialmente diverso da quello che potrebbe aversisu altri sistemi operativi piugrave recenti come Windows Vista o Windows 7

La moltitudine di alberi che si sono visti con la distribuzione TEX Livesi ripete anche con MiKTEX sebbene con un numero minore di alberi Quidi seguito si indicheragrave con il percorso dalla radice del disco C allrsquoiniziodellrsquoalbero specifico che verragrave descritto I programmi eseguibili e della primainstallazione non saranno necessariamente installati nel disco C e per questainstallazione si useragrave la lettera X per designare il disco su cui egrave installato ilsistema TEX anche se quasi sempre X coincide con C In generale si ha

= CDocuments and Settings

Si noti che nel seguito 〈versione〉 indica la versione della distribuzione MiKTEXper esempio 28

1 XProgrammiMiKTeX〈versione〉 contiene tutti gli eseguibili del sistemaTEX nella sottocartella miktexbin ma contiene tutti i file che nellaversione TEX Live sono contenuti negli alberi radicati in textmf-dist etexmf-config in particolare i file di configurazione di default i file didocumentazione e tutti gli altri file necessari per il funzionamento completodel sistema TEX

2 All UsersDati ApplicazioniMiKTeX〈versione〉 contiene la strut-tura TDS con i file generati dai programmi di configurazione e dai pro-

34 GLI ALBERI DI CARTELLE DEL SISTEMA TEX 29

grammi di generazione dei font validi per tutti gli utenti della specificamacchina

3 〈utente〉Impostazioni localiDati ApplicazioniMiKTeX〈versio-ne〉 contiene i file di configurazione e quelli relativi ai font relativi allrsquousodellrsquoutente specifico

4 〈utente〉Dati AppplicazioniMiKTeX〈versione〉 contiene i file diprima installazione e quantrsquoaltro sia necessario per il funzionamento delsistema TEX per lrsquoutente specifico

5 〈utente〉Documenti contiene lrsquoalbero personale di cui si egrave parlatoprecedentemente

Non crsquoegrave una completa corrispondenza fra gli alberi di MiKTEX e quelli diTEX Live ma non egrave difficile capire la strategia che sta sotto questa apparentecomplicazione il documento tdspdf spiega questa strategia illustrandone anchei pregi e i difetti noncheacute i compromessi che egrave stato necessario raggiungere peravere un sistema funzionale e realizzabile

Anche con MiKTEX lrsquoutente non deve preoccuparsi piugrave di tanto se non nei raricasi in cui debba cercare un file specifico Ricordi inoltre che il lsquowizardrsquo di MiKTEXper configurare il sistema aggiornarlo arricchirlo di altri pacchetti eventualmenteanche on demand1 permette a MiKTEX di avere quelle funzionalitagrave che lo rendonoparticolarmente gradito agli utenti dei sistemi operativi Windows

343 Lrsquoaggiornamento dei database dei nomi dei fileLrsquoargomento egrave talmente importante che si vogliono qui riassumere e ripeterele informazioni sparse nei paragrafi precedenti anche per sottolineare questaquestione cruciale

Fintanto che si installa il sistema TEX lo si configura si installano nuovipacchetti o se ne disinstallano di quelli giagrave installati si aggiornano sia gli eseguibilisia i pacchetti ma sempre facendo uso del programma MiKTeX Settings perlrsquoinstallazione MiKTEX per Windows o TeX Live Manager per lrsquoinstallazioneTEX Live per tutti i sistemi non egrave il caso di aggiornare il database dei nomi deifile percheacute ci pensano quei programmi

Va notato che aprendo MiKTeX Settings dal menugrave a tendina che viene attivatoselezionando successivamente Start|Programmi|MiKTeX si hanno due opzioni dilsquomanutenzionersquo (Maintainance) una da amministratore e una da utente La primaserve per aggiornare i file di sistema e quelli a disposizione di tutti gli utentidella macchina mentre il secondo serve per aggiornare solo i file a disposizionedellrsquoutente specifico che sta usando il programma di manutenzione

1On demand non significa alla lettera lsquoa richiestarsquo La cosa egrave molto piugrave sottile si pensi alfatto che lrsquoutente stia compilando un documento che richieda lrsquouso di un certo pacchetto diestensione lrsquoutente lancia il programma di composizione ma quando questo cerca di caricarequel pacchetto e non lo trova controlla che faccia parte dei pacchetti disponibili per MiKTEXma non sia stato ancora installato allora il programma di composizione si ferma invoca illsquowizardrsquo (il mago lo stregone) che chiede allrsquoutente se vuol installare il pacchetto mancantealla riposta affermativa dellrsquoutente il lsquowizardrsquo cerca in rete lrsquoinstallatore di quel pacchettoprovvede allrdquoinstallazione allrsquoaggiornamento dei file di configurazione allrsquoaggiornamento deidatabase dei nomi dei file e quando ha terminato restituisce il controllo al programma dicomposizione che prosegue usando anche il pacchetto appena installato Non egrave una funzionalitagraveda poco

30 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

Il programma di manutenzione e di gestione dellrsquoinstallazione TEX Live tlmgr(che puograve operare sia in modo testuale dalla finestra comandi sia in modo graficointerattivo) deve sempre venire usato con le prerogative dellrsquoamministratore equando si attiva la funzione di aggiornamento dei database dei nomi dei file lipuograve aggiornare tutti cliccando un solo bottone

Di solito non egrave necessario ricorrere a questo aggiornamento quando le mo-difiche ai file di sistema sono state eseguite attraverso i rispettivi lsquomanagerrsquoMa quando non egrave necessario aggiornare questi database oltre ai casi gestitidirettamente dal lsquomanagerrsquo Tranne in un solo caso quello relativo allrsquoalberopersonale sulle macchine Macintosh con sistema operativo Mac OS X bisognasempre aggiornare i propri alberi personali e gli alberi di sistema se e quando sifossero installati dei pacchetti senza ricorrere ai lsquomanagerrsquo

Riepilogando quindi quanto detto sopra bisogna sempre aggiornare i data-base dei nomi dei file nei casi seguenti

1 Quando si aggiungono o si tolgono dei file dal proprio albero personale

2 Quando si aggiungono o si tolgono file dagli alberi che contengono infor-mazioni per lrsquouso locale del sistema TEX

3 Quando si installano negli alberi di sistema pacchetti di estensione opacchetti di font senza usare i dovuti lsquomanagerrsquo

Lrsquoultimo caso non dovrebbe presentarsi mai ma talvolta si ha a che fare conpacchetti sperimentali non ancora previsti per lrsquoinstallazione ufficiale sarebbepreferibile inserirli nel proprio albero personale ma talvolta si rende necessarialrsquoinstallazione globale

Ma negli altri casi a meno che non si tratti di una macchina Macintoshbisogna sempre aggiornare il database dei nomi dei file Non farlo metterebbeil sistema TEX nellrsquoimpossibilitagrave di trovare i pacchetti che gli servono e quindiverrebbero emessi messaggi drsquoerrore la cui comprensione sembra essere difficoltosaa quanto si deduce dalla lettura dei messaggi inviati al Forum del gruppo guIt

35 I programmi accessoriLa composizione differita consente di usare un programma specializzato perciascuna operazione di composizione in modo da usare sempre il prodottomigliore per ciascuna fase di lsquolavorazionersquo del documento

I programmi accessori piugrave importanti sono i seguenti

1 Lo shell editor serve per generare eo modificare i file sorgente da dare inpasto a LATEX Se ne discuteragrave diffusamente ne prossimo paragrafo

2 Siccome il file di uscita lsquostandardrsquo del sistema TEX ha il formato DVI(DeVice Independent) egrave necessario disporre del programma specializzatoper rendere il frutto della composizione visibile e leggibile sullo schermoo per renderlo stampabile con una varietagrave di dispositivi diversi che pos-sono andare dalle stampanti alle fotocompositrici Ogni sistema TEX egravecorredato di un programma per visualizzare il file DVI spesso utile ancheper stampare Talvolta egrave necessario convertire il file dal formato DVI alformato PostScript e per gestire questo formato funziona egregiamente il

35 I PROGRAMMI ACCESSORI 31

programma dvips ma per visualizzare il file cosigrave prodotto egrave utile disporredel programma ghostview meglio conosciuto come gview o anche come gvquesto programma egrave una comoda interfaccia grafica per maneggiare un filePostScript al fine di visualizzarne il contenuto logico per stamparlo e ancheper trasformarlo in formato PDF Chi esegue il lavoro vero egrave ghostscriptma gview rende molto piugrave agevoli tutte le operazioni percheacute ghostscript egraveun poderoso programma che perograve richiede di essere azionato dalla lineadi comando (dalla finestra comandi di Windows o dalla finestra TerminalXterm o Console dei sistemi UNIX Linux e Mac OS X) Generalmente glishell editor dispongono di un bottone sia per azionare il programma di vi-sualizzazione per il formato DVI sia per lanciare dvips sia per visualizzareil file PS con il programma gview

3 I file in formato PDF sono maneggiabili mediante gli appositi programmicaratteristici di ogni sistema operativo per tutti la Adobe produce ilprogramma gratuito Adobe Reader che consente di visualizzare i file nelformato PDF e di ottenerne alcune informazioni Se si desidera la pienafunzionalitagrave sarebbe necessario acquistare da Adobe il programma AdobeAcrobat (eventualmente nella versione professional) oppure altri programmisimili Adobe Acrobat consente di eseguire qualche ritocco al contenuto delfile di estrarne delle intere pagine o delle figure di eseguire il ritaglio diparti della pagina ovvero di scontornare le immagini

Per le macchine Mac oltre a Adobe Reader (o Adobe Acrobat) il visualiz-zatore di sistema si chiama Preview (o Anteprima se il sistema operativoegrave localizzato in italiano) vale la pena di installare anche il visualizzatoreSkim scaricandolo dal suo sito httpskim-appsourceforgenet essoha le prestazioni di Preview arricchite di molte altre utilissime funzionicompresa quella di essere sincronizzabile con alcuni shell editor

Incidentalmente sincronizzabile egrave una espressione che puograve indurre a malin-tesi ma egrave quella che viene usata per descrivere la funzione per la qualesi puograve passare dalla finestra di editing del file sorgente al punto corri-spondente della finestra di visualizzazione del file composto e viceversaQuesta funzione egrave fondamentale per facilitare la composizione di un docu-mento generalmente essa egrave presente fra la finestra di editing e la finestradi visualizzazione del file composto in formato DVI solo pochi editor evisualizzatori consentono la sincronizzazione se il visualizzatore serve per ifile composti in formato PDF

4 Sono utili anche diversi altri programmi di conversione di formato nonnecessariamente giagrave in dotazione del sistema operativo in uso ma chetornano utili in diverse circostanze per esempio jpegtops trasforma leimmagini dal formato JPG (o JPEG) al formato PostScript o meglioEncapsulated PostScript Il programma ps2pdf trasforma i file dal formatoEncapsulated PostScript al formato PDF Il programma gimp nato per lepiattaforme UNIXLinux e ora disponibile anche per le altre piattaformeWindows e Mac serve per modificare le immagini di quasi tutti i possibiliformati e di salvarle in quasi tutti gli innumerevoli formati che egrave capacedi gestire (perograve non puograve salvare in formati vettoriali ndash se ne parleragravediffusamente piugrave avanti)

32 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

CBe

ccar

indashpi

ctur

e

|

1

2

pound3

$4

5

amp6

7

(8

)9

=0

rsquo

^igrave

Qq

Ww

Ee

Rr

Tt

Yy

Uu

Ii

Oo

Pp

eacute egrave [

+ ]

Aa

Ss

Dd

Ff

Gg

Hh

Jj

Kk

Ll

ccedilograve

degagrave

sectugrave

gtlt

Zz

Xx

Cc

Vv

Bb

Nn

Mm

_-

Figura 32 Schema della tastiera italiana sulle piattaforme Windows

Questi programmi accessori sono utili di per seacute e quindi possono essere usatianche indipendentemente dal sistema TEX tuttavia risultano molto utili persvolgere alla perfezione certe funzioni che solo un programma specializzato safare certamente meglio di quanto potrebbe fare un programma generico dallelsquotroppersquo funzioni

Tutti i programmi menzionati tranne Adobe Acrobat sono disponibili comefreeware e sono scaricabili dalla Rete adatti per essere usati sulle specifichepiattaforme di lavoro a disposizione

36 Le tastiereQuesto egrave un argomento dolente per coloro che hanno la tastiera italiana Nellatastiera italiana figura 32 sono evidenziati i tasti normali e in particolare sonomesse in evidenza le parentesi graffe che hanno una importanza enorme nellacomposizione dei file sorgente tex

Si nota perograve lrsquoassenza dei segni lsquo (accento grave o backtick o virgolettasemplice aperta) e ~ (tilde o legatura o spazio insecabile) Per introdurre questisegni bisogna ricorrere a espedienti diversi a seconda della macchina usata

Sulle macchine UNIX (Linux e Macintosh) non dovrebbero esserci grossiproblemi nel senso che esistono combinazioni di tasti che consentono di scriverevirtualmente qualunque carattere dellrsquoalfabeto latino e vari segni e simboli usatinormalmente negli scritti in italiano e nelle varie lingue occidentali

Invece sulle macchine Windows esistono problemi seri che possono veniresuperati come spiegato qui di seguito

361 Le tastiere delle macchine WindowsIl problema esiste con le macchine Windows In queste si hanno alcune possibilitagrave

1 si tiene aperta la finestra dove si egrave lanciato lrsquoapplicativo Character map (oMappa dei caratteri se il sistema operativo egrave in italiano) e ogni volta cheoccorre un segno non presente sulla tastiera lo si cerca in questa finestra losi seleziona e lo si copia poi lo si incolla nel testo presente sullo schermo

2 Si sfrutta lo shell editor per aprire dentro a questo la mappa dei carat-teri disponibili con la codifica impostata per lo shell editor si cerca il

36 LE TASTIERE 33

$ amp ( ) +- $

0 12 13 14 15 16 17 18 19 1 12 122 123

lt 2 3

=gt)

4

A

5

B CDEF

6 987 GH IgtJ0CgtA

AB

KL M

gt 0 N $ O PQJR STgtC0

TBQ UQ

V

UQWXB TBQ

12 122 123

$amp ()$+$-

$0$amp$ 12+$(3

4

5 6 Y

$ZW[

7WTW]

8W^_W`

9WaIWb

WcdWe

WWfgWWh

lt=WijWWk

gt=WlmWWn

)=opWq

=r$

0 12 13 14 15 16 17 18 19 1 12 122 123

ltWWWlt

WWstWWu

WWvwWWx

AWWy

=gt)zW

BW|W~3W

WW

CWW

WW$WW

WW

DWW

WWW

=WWampWW

WW

WW(WW

WWEWW

WWFWW

WWGWW

WW

HWWWWW

IWWiexclcentWWWpound

JWWcurrenyenWWbrvbar

KWWsectumlWWcopy

LWWordflaquoWWnot

MWWlaquoshyWWWreg

NWWmacrdegWplusmn

OWWsup2IgtJ0CgtA

AB

sup3WWWWacute

PWWWWmicroparaWWWmiddotQWWWcedil

sup1WWWordmRWWWraquo

UWWfrac14

+=Wfrac12WWfrac34

=WiquestAgraveWWAacute

2=WAcirc1WWAtilde

SWWAumlXWWAring

=WAEligCcedilWWWEgrave

T=WEacuteEcircWEuml

0WWIgraveIacuteWIcirc

UWWIumlETHWWNtilde

VWWOgraveOacuteWWOcirc

W=WOtildeOumlWWtimes

X=WOslashTgtC0

TBQ UQ

UgraveWUacute

YWUcirc

UQWXB TBQ

EampZ8(00[(8U

+F$

$amp ()$+$-

$0$amp$ 12+$

(3

4

5 6 Y

Figura 33 Schema della tastiera configurata con il driver EurKey Tratto dalsito httpeurkeysteffenbruentjeneu

carattere assente dalla tastiera e lo si clicca questo generalmente apparesubito nel testo presente sullo schermo ma puograve succedere per esempioche selezionando lsquoEgraversquo nella suddetta mappa dei caratteri disponibili sulloschermo non appaia lsquoEgraversquo ma lsquoE Poco male la lettura sullo schermoci rimette un poco ma lrsquooperazione egrave corretta ed evita di dover andare acercare il carattere lsquo assente dalla tastiera Al massimo questa operazionepuograve risultare un fardello per il correttore ortografico ma ce ne sono chedistinguono le sequenze TEX per gli accenti

3 Disponendo di una tastiera con il tastierino numerico separato (o premendoil tasto fn che cambia significato ad un certo numero di tasti lsquoordinarirsquoin modo che si comportino come il tastierino laterale) basta premere iltasto Alt seguito da codice numerico ASCII2 dellrsquoaccento grave che perla cronaca egrave il numero 96 (oppure 096) rilasciando il tasto Alt dopo averintrodotto il codice numerico sullo schermo appare il segno lsquo Si puograve usarelo stesso metodo per inserire la tilde il cui codice egrave 126 Per le maiuscoleaccentate e per gli altri segni si puograve procedere come nei punti precedentioppure ci si scrive da parte una volta per tutte lrsquoelenco dei codici dellelettere che si incontrano piugrave sovente e si usa la tecnica qui descritta peruna introduzione abbastanza semplice che non necessita dellrsquouso del mouseche alcuni preferiscono evitare

4 Dal sito httpwwwvirgilioitblog20100529lettere-accentatemaiuscole-con-caps-lock-attivo-su-windows si scarica dalla reteil programma che serve per configurare la tastiera come si preferisceattivando tutte le combinazioni di tasti che si desiderano per introdurretutti i segni disponibili con il driver della tastiera Bisogna ricordarsi dieseguire tutti i passi indicati in quel sito non ultimo quello di sceglierequella configurazione personalizzata come tastiera predefinita Molti utentiridefiniscono il significato dei tasti che contengono segni raramente usatiin italiano come per esempio ccedil o sect o deg e sono contentissimi di questapersonalizzazione

2I caratteri ASCII sono esposti nella tabella D1

34 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

Altre soluzioni di questo genere si possono trovare agli indirizzi internethttpwwwgialloporporanetsonsorgrimappare-la-tastiera-in-windows-creando-un-file-di-layout395 e httpwwwcommentcamarchenetdownloadtelecharger-34055570-clavier

5 In un file di macro personali si inseriscono tutte le definizioni le piugrave mne-moniche possibile per inserire i segni mancanti dalla tastiera la definizionedi nuovi comandi verragrave visto molto piugrave avanti ma qui si indicano alcunedefinizioni il cui elenco puograve essere completato secondo le proprie necessitagrave

newcommandAlsquoAnewcommandElsquoEnewcommandUlsquoU

Come si vede si tratta di definizioni semplicissime che possono venireulteriormente arricchite di funzionalitagrave ma che consentono di evitare lacomplicazione di battere diversi tasti o di usare il mouse per inserire i segniassenti dalla tastiera italiana

6 Per le macchine Windows e Linux esiste anche un driver EurKey scaricabiledal sito httpeurkeysteffenbruentjeneu che permette di avereun layout di tastiera molto piugrave completo (sebbene anche il driver fornitoinsieme ai sistemi Linux sia giagrave molto ricco) Il layout viene chiamatoldquolayout europeordquo percheacute dovrebbe essere in grado di introdurre qualunquesegno latino con diacritici presente nelle lingue europee Nella figura 33tratta dal sito suddetto vi sono mostrati i tasti con lrsquoindicazione dei quattrosegni che si possono comporre con quello specifico tasto si arriva a piugrave di200 segni che coprono quasi completamente le esigenze di tutte le lingueeuropeeSe si puograve segnalare un inconveniente questo consiste nel fatto che il layoutdi base egrave quello USA ma che i segni aggiuntivi non sono serigrafati neacute sullatastiera USA neacute su qualunque altra tastiera distribuita commercialmenteO si tiene il disegno della tastiera accanto al PC mentre si digita il codicedi entrata oppure ci si arrangia con piccole etichette da incollare sui tasticon un velo trasparente protettivo (scotch trasparente per esempio) alfine di evitare la progressiva cancellazione delle indicazioni supplementarivia via che si usa la tastieraSi richiama il fatto che gli accenti morti servono anche per le letteremaiuscole esiste persino un tasto AltGr + m ) che permette di passarealla digitazione in grecoLrsquouso di questa tastiera e dei suoi numerosissimi segni implica la specifica-zione dellrsquoopzione utf8 nel preambolo di ogni documento LATEX

Alternativamente anche se la cosa puograve sembrare assurda potrebbe essereconveniente pensare allrsquoacquisto di una seconda tastiera esistono diverse tastiereQWERTY nazionali o internazionali che consentono di introdurre tutti e 95 icaratteri ASCII premendo al massimo due tasti se si egrave disposti ad abituarsi aduna disposizione dei tasti QWERTZ le tastiere svizzere (figura 34) e tedeschesono complete cosigrave come lo sono altre tastiere dei paesi del nord Quelle inglesi e

36 LE TASTIERE 35C

Becc

arindashpi

ctur

e

degsect

+1 |

2

3

ccedil4 deg

5 sect

amp6 not

7 brvbar

(8 cent

)9

=0

rsquo acute

lsquo^ ~

Qq

Ww

Ee euro

Rr

Tt

Zz

Uu

Ii

Oo

Pp

egraveuumluumlegrave[

uml ]

Aa

Ss

Dd

Ff

Gg

Hh

Jj

Kk

Ll

eacute oumlouml eacute

agraveaumlaumlagrave

pound$

gtlt

Yy

Xx

Cc

Vv

Bb

Nn

Mm

_-

Figura 34 Schema della tastiera svizzera sulle piattaforme Windows Vi sinotano gli ldquoaccenti mortirdquo evidenziati con lo sfondo grigio i quali consentonodi inserire il loro segno su qualunque lettera che lo accetti La tastiera egrave utileper scrivere nelle quattro lingue ufficiali della Confederazione Elvetica anche senon riporta tutte le vocali accentate dellrsquoitaliano e del romancio che per altrosi possono ottenere con gli accenti morti Le maiuscole accentate si ottengonousando il tasto delle maiuscole permanenti

Figura 35 Schema della tastiera italiana su Linux senza personalizzazioni Lafigura egrave tratta da Internet ma il sito non egrave piugrave raggiungibile

irlandesi e quelle USA specialmente se ldquoprofessionalrdquo consentono di introdurreanche tutti o quasi tutti i segni previsti per la codifica ISO 8859-1 Spesso questetastiere possono venire acquistate via Internet da produttori stranieri spessosono gli stessi produttori di computer a consentire lrsquoacquisto via Internet eoffrono le disposizioni di tastiere piugrave disparate Ovviamente egrave necessario chesiano dotate del driver necessario per il sistema operativo della propria macchinaaltrimenti sarebbero un acquisto inutile anche se spesso si possono trovare inrete dei driver adatti ad una completa personalizzazione della tastiera

Per una eccellente presentazione e descrizione delle tastiere nazionali e inter-nazionali si veda il sito httpenwikipediaorgwikiKeyboard_layout

362 Tastiere Linux

Dopo lrsquoinstallazione del sistema operativo Linux in qualunque incarnazione pre-mere il tasto AltGr permette di ottenere diversi altri segni che sono normalmenteassenti dalla tastiera italiana

36 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

CBe

ccar

indashpi

ctur

e

plusmnsect

1

2

3

$4

5

^6

amp7

8

(9

)0

_-

+=

Qq

Ww

Ee

Rr

Tt

Yy

Uu

Ii

Oo

Pp

[

]

Aa

Ss

Dd

Ff

Gg

Hh

Jj

Kk

Ll

rsquo

|

~lsquo

Zz

Xx

Cc

Vv

Bb

Nn

Mm

lt

gt

Figura 36 Schema della tastiera USA estesa sul MacBook Pro

Dopo lrsquoinstallazione del sistema la tastiera italiana potrebbe risultare arricchi-ta di nuove funzionalitagrave come appare nella disposizione indicata dalla figura 35I segni marcati in blu sono i tasti morti per i segni diacritici si noti tra lrsquoaltrola presenza sia della cediglia sia della virgola sottoscritta del rumeno Vi sonodiverse ripetizioni ma tutto sommato questa disposizione egrave piuttosto ricca disegni In ogni caso nella impostazione di sistema che concerne la tastiera egravepossibile configurare le combinazioni di tasti che si preferiscono per agevolarelrsquointroduzione dei segni che non sono direttamente marcati sui tasti

Lrsquouso di tutti questi segni implica la specificazione della codifica utf8 nelpreambolo di ogni documento LATEX

363 Le tastiere sulle macchine MacintoshQui ci riferiamo alle macchine Macintosh moderne dotate di sistema operativoMac OS X Queste macchine qualunque disposizione di tasti abbiano (italianaUSA o altra disposizione) dispongono di una comodissima interfaccia graficache permette di avere sullo schermo la disposizione della tastiera e come questacambia premendo i tasti serigrafati con i segni ctrl (alt) o (cmd) Neldisegno della tastiera i tasti morti sono disegnati in colore beige dopo averpremuto (o cliccato su) un tasto morto la tastiera normale cambia aspetto epresenta solo i caratteri che corrispondono alle lettere lsquoaccentatersquo con il particolarelsquoaccentorsquo del tasto morto usato Dopo un poco si imparano a memoria questecombinazioni di tasti e non egrave piugrave necessario ricorrere allrsquoimmagine della tastiera

Chi scrive usa abitualmente una tastiera estesa con la disposizione dei tastisecondo lo schema USA priva quindi di qualunque segno accentato come si vedenella figura 36 Tuttavia chi scrive ormai esegue automaticamente lrsquooperazioneper esempio di battere assieme i tasti alt e lsquo e successivamente il tasto Eper avere nello schermo il carattere lsquoEgraversquo

364 Le tastiere virtualiAbbiamo visto sopra che sulle macchine Mac esiste un applicativo che permettedi mostrare il layout della tastiera in uso e che permette di scrivere anche i segniche non sono serigrafati sui tasti Lavorando con la mano sinistra sui tasti dicontrollo e con la mano destra sul mouse si riesce a scrivere praticamente con ognitastiera il cui driver sia stato installato nel sistema Questo egrave particolarmente

37 GLI SHELL EDITOR 37

utile per scrivere anche in alfabeti diversi da quello al quale corrisponde latastiera fisica connessa allrsquoelaboratore Ecco quindi come si puograve agevolmentescrivere in cirillico o in greco Ma apparentemente questo si puograve fare solo sullemacchine Macintosh

Non egrave cosigrave Anche se chi scrive non egrave la corrente di programmi di visualizza-zione di una tastiera virtuale interattiva sulle macchine Windows o Linux (cheesisteranno sicuramente ma lo scrivente non ne egrave a conoscenza) oggi si stannodiffondendo gli schermi touch screen

Per lo piugrave questa funzionalitagrave touch screen viene riservata ad alcuni giochi o aoperazioni grafiche Ma questi elaboratori possono davvero funzionare senza unatastiera materiale consentendo allrsquoutente di servirsi del disegno della tastierariportato sullo schermo lrsquoutente tocca i tasti virtuali sullo schermo e il testoappare nel documento che si sta scrivendo Estremamente comodo e funzionaleanche se costringe lrsquoutente a scrivere in una posizione innaturale su una tastierasostanzialmente verticale come lo schermo e non orizzontale come una tastieramateriale

Tuttavia se si dispone di una tastiera italiana ma si desidera usare unatastiera USA per esempio basta averne caricato il driver e averlo azionatotoccando lrsquoapposta icona nella barra inferiore o superiore dello schermo Se sivuole usare una tastiera greca lo stesso basta averne caricato il driver e avertoccato la sua icona per attivare quella tastiera E cosigrave vale per ogni tastiera conuno schema dei tasti diverso da quello della tastiera fisica in uso

Oggi poi si stanno diffondendo dei leggeri e non tanto piccoli elaboratoriportatili dotati di schermo touch screen essi posono anche essere privi di unatastiera fisica Se dispongono di una tastiera (tablet PC) si puograve ruotare loschermo in posizione orizzontale coricandolo sopra la sua tastiera e usarlo perscrivere con le mani nella posizione solita ed ergonomicamente valida Questipiccoli elaboratori possono essere usati tranquillamente non solo come tastierevirtuali ma se sono di potenza adeguata (disco RAM velocitagrave dimensioni delloschermo) possono anche sostituire completamente un PC ldquonormalerdquo sia esso datavolo o da viaggio

Il problema tastiera con questi dispositivi cessa di essere un problema

37 Gli shell editorNelle versioni precedenti alla 090 di questa Introduzione non si era deliberata-mente fatto nessun cenno agli shell editor percheacute si riteneva che questo fosse unargomento facoltativo non direttamente collegato con la composizione tipograficacon LATEX

In un certo senso questo argomento egrave ancora valido in rete e in commercioesistono tanti diversi shell editor adatti ai vari sistemi operativi che forse crsquoegraveaddirittura lrsquoimbarazzo della scelta tuttavia si egrave ora ritenuto che fosse necessariodedicare un cenno a qualche shell editor specialmente quelli che sono direttamentedisponibili con i software di installazione del sistema TEX

Di alcuni shell editor basta conoscere il nome cercare su Internet e scaricaredallrsquoopportuno sito il programma di installazione provvedere allrsquoinstallazione epoi farne uso in modo da imparare progressivamente a sfruttarli al meglio

Essi hanno in comune alcune caratteristiche

38 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

bull permettono di creare e correggere (editare in gergo) file puramente testualinon formattati o comunque di salvare il file in modo che contenga solo iltesto e il mark-up senza nessuna informazione sulla formattazione del testose non quella contenuta nel file di classe e nei file di estensione usati Quasitutti permettono di scegliere fra diverse codifiche dei caratteri immessi datastiera i piugrave recenti e meno caratteristici di una particolare piattaformaconsentono lrsquouso della codifica UNICODE Si parleragrave diffusamente piugraveavanti in diversi capitoli della necessitagrave di scegliere opportunamente lacodifica per i file sorgente (vedi lrsquoappendice D)

bull Durante il processo di editing egrave possibile avere in azione uno o piugrave correttoriortografici per una o piugrave lingue Inoltre alcuni editor possono eseguire ope-razioni di taglia e incolla non solo per gruppi di righe ma anche per blocchirettangolari di un certo numero di righe che si estendono orizzontalmenteper un certo numero di colonne con questi editor il mouse ha anche dellefunzioni di selezione piugrave estese di quelle che sono normalmente disponibili

bull Per quel che riguarda il testo da comporre egrave generalmente possibile sceglierela codifica (encoding) dei caratteri introdotti con la tastiera e se questaegrave di tipo avanzato egrave anche possibile scegliere la codifica UNICODE alpunto da poter introdurre direttamente caratteri di altri alfabeti ancheretrogradi e gli ideogrammi delle lingue dellrsquoestremo oriente

bull Se si sceglie di suddividere il file del documento in tanti spezzoni didimensioni minori essi generalmente consentono di editare diversi file allavolta

bull Essi generalmente consentono di scrivere e salvare su disco i file sorgenteper qualunque programma del sistema TEX come si vedragrave i programmidi composizione di questo sistema non si limitano al solo LATEX e non silimitano solamente alla composizione di testi ma anche alla creazione didisegni vettoriali o a matrici di punti quali sono ad esempio gli stessicaratteri con cui vengono composti i testi

bull Permettono di cliccare su un bottone virtuale con il puntatore del mousebottone scelto fra una serie di bottoni per scopi analoghi oppure di scegliereil programma di composizione da una lista di un menugrave a caduta per salvareil file e per lanciare direttamente il programma di composizione

bull Dopo lrsquoesecuzione del programma di composizione se non ci sono statierrori lo shell editor apre direttamente il programma di visualizzazioneadatto al formato di uscita del documento composto Se invece ci sonoerrori lo shell editor permette di aprire il file ldquodi registrordquo nel quale sonoelencati gli errori in modo da mettere in relazione le righe diagnosticatecome erronee come appaiono nel file di registro con le righe presenti nelfile sorgente cosigrave da poter navigare facilmente avanti e indietro fra il file diregistro e il file sorgente

bull Nello stesso tempo se non ci sono errori di mark-up ma il testo compostopresenta dei refusi o delle frasi incomplete erronee imprecise oscure oaltro lo shell editor permette di navigare avanti ed indietro fra la finestra divisualizzazione del documento composto e la finestra dellrsquoeditor contenente

37 GLI SHELL EDITOR 39

il file sorgente in modo da usare la finestra di visualizzazione come sefossero le bozze del documento cosigrave da apportare le debite correzioni omodifiche al file sorgente In genere questa operazione su alcune piattaformerisulta piugrave difficile o impossibile con il formato PDF ma egrave sempre possibilecon il formato DVI anche se poi il documento finale verragrave prodotto conil formato PDF Sui sistemi Mac questo inconveniente non si presentamai percheacute il programma di visualizzazione integrato in TEXShop egrave fattoapposta per gestire agilmente i file in formato PDF che rappresentanoil formato di default di tutti i documenti presenti sulle macchine MacOra perograve cominciano ad essere disponibili editor multipiattaforma checonsentono di spostarsi agevolmente fra punti corrispondenti della finestradi composizione contenente il file sorgente e della finestra di visualizzazioneanche con il formato PDF

bull Alcuni shell editor sono multipiattaforma vuoi percheacute sono scritti in unlinguaggio interpretato per esempio Java vuoi percheacute vengono prodottisimultaneamente nelle versioni adatte alle tre piattaforme principali

bull Alcuni shell editor sono freeware altri sono shareware le distribuzioni com-merciali del sistema TEX contengono shell editor specifici della particolareversione commerciale e quindi sono per cosigrave dire compresi nel prezzo

bull Alcuni programmi non sono dei veri e propri shell editor ma consentono divisualizzare direttamente il prodotto della composizione oppure permettonodi presentare schermate che assomigliano fortemente al risultato finale nelsenso che i comandi di mark-up (almeno alcuni) sono giagrave interpretati inmodo da mostrare sulla finestra dellrsquoeditor praticamente solo il testo Diquesti programmi si faragrave nel seguito un breve cenno separatamente dallebrevi descrizioni relative agli shell editor veri e propri

371 Shell editor multipiattaformaCome giagrave accennato esistono shell editor multipiattaforma lo stesso programmagira su macchine diverse con hardware e software diversi Questo egrave possibilese i programmi relativi sono scritti in un linguaggio interpretato di cui esistalrsquointerprete per tutte le piattaforme per esempio il linguaggio Java con la suaJava Virtual Machine

Altri shell editor sono multipiattaforma nellrsquoaltro senso cioegrave chi li ha prodottiha compilato i codici sorgente in modo da ottenere i codici eseguibili validi pertutte e tre le piattaforme principali a parte questo dettaglio tecnico essi hannoanche lo stesso aspetto da un punto di vista grafico ed hanno esattamente lestesse prestazioni gli stessi comandi le stesse scorciatoie eccetera

Alcuni sono multipiattaforma nel senso che chi li ha prodotti ha provvedutoa generare i file di installazione che ne permettono lrsquouso immediato ma soloper due sistemi operativi mentre per il terzo sono necessarie procedure parti-colari per lrsquoinstallazione in ogni caso lrsquoaspetto grafico e il funzionamento sonosostanzialmente identici

emacs egrave un potentissimo shell editor molto noto agli utenti dei sistemi UNIXassociato alla sua estensione auctex permette di editare file LATEX con unaserie di facilitazioni ben congegnate questa estensione consente anche di

40 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

eseguire la compilazione e la successiva previsione dellrsquoaspetto grafico diparti selezionate del file sorgente In pratica selezionando una parte del filesorgente e cliccando su un opportuno bottone (o dando da tastiera uno deinumerosissimi comandi abbreviati ottenuti premendo contemporaneamenteuno o piugrave tasti di controllo (Ctrl Shft Alt ) e un altro tasto (letteracifra ecc)) si puograve compilare e vedere nel visore del file di uscita quelbrano giagrave composto come lo farebbe latex questa funzionalitagrave egrave moltoutile specialmente quando si devono comporre formule complicate tabellecomplicate disegni ecceteraemacs consente di usare tutti le possibili codifiche dei font in entrataanche se con le macchine Windows meno recenti converrebbe impostarelrsquoencoding ansinewQuesto editor egrave potentissimo ma molti utenti lo trovano difficile da usareesso diventa formidabile quando si conoscono a memoria moltissimi comandiabbreviati cosiccheacute non sia quasi mai necessario ricorrere al mouse che ipuristi non usano mai

TeXmaker ha ottime caratteristiche per la gestione dei file sorgente permettedi vedere la struttura del documento di disporre di menugrave a discesa perselezionare i vari simboli matematici i vari ambienti i caratteri non ASCIIcon comodi pulsanti a lato della barra a sinistra del panello dellrsquoeditorConsente di fare il passaggio dalla finestra del file sorgente alla finestra delfile composto e viceversa se lrsquooutput egrave in formato DVI TeXmaker disponeora anche di un visualizzatore integrato per i file in formato PDF con ilquale consente la ricerca diretta e inversa purcheacute il commando per lanciarepdflatex contenga lrsquoopzione -synctex=13La prima volta che si usa TeXmaker esso fa una scansione del sistema pervedere quali strumenti siano giagrave installati e li inserisce direttamente nellaconfigurazione del programma configurazione che in un secondo tempolrsquoutente puograve cambiare a piacimento in particolare per quel che riguardalrsquoencoding dei caratteri in entrataGli utenti che sulla loro macchina Windows abbiano il sistema operativo initaliano (e in Italia credo che siano decisamente la maggioranza) stiano perograveattenti stranamente certi programmi accessori come per esempio AdobeReader sono individuati correttamente ma nel comando per accederviessi sono indicati con il percorso in inglese (cosigrave si trovano indicati nellaRegistry di ogni sistema Windows) ma sui sistemi in italiano la cartelladei programmi non si chiama CProgram files bensigrave CProgrammiLrsquoutente deve correggere a mano questa indicazione altrimenti chiedendolrsquoesecuzione di quel programma TeXmaker segnaleragrave che non lo trovaPiccolo bug ma facilmente correggibile Probabilmente dalla versione 21questo problema egrave stato risoltoChi scrive lrsquoha usato e trova che sia eccellente Esso puograve essere fattolavorare con il visualizzatore esterno SumatraPDF con il quale egrave possibilesincronizzare le finestre di composizione e di visualizzazione come con ilvisualizzatore interno ma lasciando inalterate tutte le altre funzionalitagrave di

3Questo egrave possibile a partire dalla versione 21 del programma

37 GLI SHELL EDITOR 41

SumatraPDF Si tenga presente che il formato PDF diventeragrave de facto lostandard per la composizione dei documenti

TeXmakerX egrave una estensione di TeXmaker che consente anche di eseguire laprevisione di parti selezionate del file sorgente Credo che sia preferibileusare questa versione estesa piuttosto che la versione standard essodalla versione 20 contiene il visualizzatore interno ma puograve venire anchesincronizzato con il visualizzatore SumatraPDF

TeXworks egrave un programma freeware multipiattaforma derivato dal programmaTeXShop per i calcolatori Mac egrave uno shell editor la cui versione stabi-le viene installata direttamente sulle macchine Windows e Mac quandosi installa TEX Live o MacTEX rispettivamente per le macchine Linuxbisogna installarlo appositamente come spiegato qui appresso In ognicaso si possono scaricare dal suo sito le versioni in evoluzione per Win-dows e Mac per installare TeXworks sulle macchine Linux bisogna sca-ricare il pacchetto dei file sorgente e bisogna completare le librerie indotazione al sistema poi diventa abbastanza facile seguire le indicazio-ni nel sito httpcodegooglecomptexworkswikiBuilding per laparticolare versione del sistema operativo Linux che si sta usandoPer gli utenti della distribuzione MiKTEX non crsquoegrave per ora nessun sugge-rimento che il programma sia giagrave disponibile (in fondo egrave ancora mdash oggisiamo a dicembre 2010 mdash alla versione 030) chi ne ha sentito parlare lotrova giagrave ligrave nella cartella MiKTeX29miktexbin se si vuole se nepuograve creare una ldquoscorciatoiardquo da trasferire sul desktop in modo da poternefare lrsquouso che si desidera La prima volta che lo si usa esso cerca i file dicui ha bisogno e configura tutto o quasi quello che serveTeXworks egrave in grado di usare lrsquoencoding UNICODE e di lanciare tutti iprincipali programmi di composizione del sistema TEX Il suo visualizzatoreintegrato perograve visualizza direttamente i file di uscita in formato PDF epermette di passare direttamente con un semplice click del mouse dallafinestra di composizione al punto corrispondente della finestra di visualiz-zazione e viceversa il visualizzatore egrave molto rapido Le dimensioni delledue finestre sono adeguate a riempire bene uno schermo panoramico inmodo da averle affiancate senza sovrapposizioniDispone di un comodo correttore ortografico usabile per diverse linguesolo il dizionario ortografico per lrsquoinglese egrave preinstallato per lrsquoitalianobisogna scaricare lo stesso file di correzione ortografica che usa OpenOf-ficeorg e metterlo in una apposita cartella e cosigrave bisogna fare per lealtre lingue il cui dizionario ortografico non sia giagrave preinstallato Conla distribuzione di MiKTEX29 le lingue preinstallate sono aumentateoltre allrsquoinglese americano ci sono anche i file di correzione ortograficaper il francese e per il tedesco se si vuole aggiungere la possibilitagrave dicorreggere anche lrsquoitaliano o qualunque altra lingua bisogna farlo primadi avviare la prima volta TeXworks bisogna inserire i due file it_ITaffe it_ITdic del correttore ortografico di OpenoOffcieorg nella cartellaProgrammiMiKTeX29hunspelldicts insieme agli altri file del-lo stesso genere per le lingue giagrave installate Quando si apre TeXworks per laprima volta esso si autoconfigura e riconosce la presenza dei file in questio-ne selezionabili per la verifica ortografica del testo italiano Al momento

42 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

TeXworks non egrave ancora in grado di aggiungere voci al dizionario ortograficoma egrave una delle operazioni previste durante lo sviluppo di questo editorConsente di interpretare direttamente certe speciali linee di commentoallrsquoinizio dei file sorgente in modo da poter specificare sia il programma dicomposizione desiderato sia lrsquoencoding del particolare file sia importan-tissimo il nome del file principale il master file in modo che il progettopossa essere gestito senza file ausiliari Questo shell editor dispone anchedella prerogativa del completamento dei comandi si comincia a scrivereun comando poi si batte il tasto Tab o minusrarr fincheacute sullo schermo nonappare il comando completo desiderato Nel file di Aiuto sono elencateanche le numerose scorciatoie che esso consente di usare quando si desideraevitare lrsquouso del mouse Certamente in poco tempo verranno messi in lucesia gli errori sia le prestazioni ancora mancanti e per quando saragrave arrivatoalla versione 10 (probabilmente anche prima) diventeragrave de facto lrsquounicoshell editor per tutte le piattaforme

Questi shell editor multipiattaforma sono i piugrave consigliabili in generale sepoi uno desidera avvalersi di prestazioni particolari su una macchina particolareallora puograve considerare la possibilitagrave di installare uno shell editor specifico fraquelli descritti nelle sezioni seguenti

372 Shell editor per le macchine WindowsPer le macchine Windows il disco di installazione TEX Live offre la possibilitagravedi installare il freeware TeXnicCenter il programma di installazione del sistemaMiKTEX ProTEXt segnala la possibilitagrave di installare lo shareware WinEdt oil freeware TeXmaker indicandone i siti da cui eseguire il download In retesi trovano anche il freeware LED e lrsquoestensione TeXmakerX Esiste anche unaversione del freeware emacs per le macchine Windows

WinEdt egrave un programma shareware ottimo specialmente sviluppato per le mac-chine Windows del cui sistema operativo sfrutta non poche librerie di-namiche usa solo la codifica dei font in entrata specifica delle macchineWindows e offre al ldquotastieristardquo la possibilitagrave di immettere una grandequantitagrave di caratteri non rappresentati direttamente sulla tastiera segnispeciali e lettere con ogni possibile segno diacritico permette di introdurrequasi tutti i segni compresi nello standard ISO 8859-1 ma in senso strettoper avere la massima possibilitagrave di scrittura sarebbe meglio inserire nelpreambolo del documento la specifica

usepackage[ansinew]inputenc

Il programma permette di disporre di una moltitudine di menugrave che con-sentono con un solo click del mouse di introdurre nel testo sorgente lemacro che individuano i simboli e i segni degli operatori matematici divario genereEsso permette di disporre di maschere (template) per ogni genere di am-biente testuale grafico o matematico cosiccheacute inserita la maschera nel filesorgente non resta che riempirla con le informazioni specifiche del materialeda comporre

37 GLI SHELL EDITOR 43

Cosigrave come egrave distribuito il programma dispone di una moltitudine divocabolari per la verifica ortografica per motivi storici la lista di paroleche compongono il dizionario per la lingua italiana egrave molto ricco ma leparole tronche sono prive di accento questo apparente inconveniente vieneeliminato con lrsquouso percheacute ogni volta che una parola tronca correttamenteaccentata (e ovviamente anche scritta correttamente) presente nel filesorgente viene segnalata come errata basta usare un click di mouse peraggiungerla al dizionario dopo pochi giorni drsquouso le parole tronche chelrsquoautore usa abitualmente sono tutte inserite nel dizionario successivamentela mancanza di altre parole tronche viene segnalata solo raramenteIl programma permette di definire un ldquoprogettordquo vale a dire di definirein una struttura interna in un file con estensione prj lrsquoelenco completodei file che compongono un dato documento e permettono di registrareanche le impostazioni per il o i dizionari da usare per quel documento cosigravecome altre impostazioni in merito per esempio alla gestione delle righeche compaiono troppo lunghe per restare completamente nello schermo

TeXnicCenter offre prestazioni simili ma meno estese di quelle che si possonoavere con WinEdt gli utenti lo trovano (oltre che gratuito) piugrave semplice dausare di WinEdt ma le prestazioni sono secondo chi scrive decisamenteinferiori

LED egrave un programma freeware con alcune caratteristiche particolari come peresempio quella di sfruttare bene gli schermi ldquopanoramicirdquo dei moderni PCe laptop infatti egrave possibile tenere aperte simultaneamente una accantoallrsquoaltra le finestre del testo sorgente e quella del testo composto (soloperograve in formato DVI) cosiccheacute la navigazione da una finestra allrsquoaltraavviene in modo semplicissimo e comodissimo per controllare errori refusiimprecisioni o altro La schermata del testo composto viene aggiornataautomaticamente ogni volta che si clicca sul bottone per lrsquoesecuzione dellacomposizione in formato DVI che data la velocitagrave dei PC moderni dagravequasi lrsquoillusione di una composizione sincronaPer altro le funzionalitagrave di LED sono simili a quelle degli altri programmigiagrave descritti purtroppo non dispone di un visore diretto di file in formatoPDF per cui bisogna ricorrere ad un programma esterno per esempioAdobe Reader che perograve non si integra perfettamente con il programmaLED altrettanto bene del visore interno per i file in formato DVI cosiccheacutesi perdono un poco le prestazioni che LED offre con questrsquoultimo formato

TextPad egrave uno shareware leggermente piugrave economico di WinEdt (32euro contro40euro) e anche leggermente meno performante molti sviluppatori di soft-ware lo usano percheacute permette di gestire file anche di grandi dimensioni(contrariamente al piccolo Notepad di serie su ogni macchina Windows)ma TextPad garantisce una piccola ldquoinvasivitagraverdquo della memoria RAM Neesiste anche una versione localizzata in italiano cosiccheacute almeno per loshell editor gli utenti poco ferrati in inglese si sentono a loro agio

Kile egrave uno shell editor che opera solo su macchine Linux e che abbiano lrsquointerfacciagrafica KDE (vedi poco piugrave avanti) per le macchine Windows esiste ilprogramma CygWin che permette di emulare il sistema operativo UNIXLinux allrsquointerno di un apposito ambiente grafico dentro questo ambiente

44 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

CygWin egrave possibile installare una versione dellrsquointerfaccia grafica KDEper cui anche sulle macchine Windows si puograve usare Kile Forse sembracomplicato tutto questo marchingegno per simulare un ambiente Linuxtuttavia esistono moltissimi altri programmi freeware che possono venireinstallati allrsquointerno di CygWin oltre che sulle macchine Linux e checonsentono di eseguire processi di elaborazione mai previsti o non ancoraprevisti per le macchine Windows

373 Shell editor per le macchine LinuxCon le macchine Linux si ha una grande disponibilitagrave di programmi adatti ascrivere ed editare file testuali anche percheacute in questo sistema si fa un grandeuso di scripting cioegrave di programmi scritti senza particolari formattazioni anzispesso contenenti solo i caratteri da 32 a 127 della pagina ASCII dei caratteri4

Gli utenti fortemente coinvolti con una macchina Linux e che usano loscripting in modo esteso generalmente si servono del programma vim oppure delprogramma emacs Per usare un vero shell editor appositamente previsto perlrsquouso con LATEX si puograve ricorrere al programma Kile purcheacute lrsquointerfaccia graficasia lrsquointerfaccia KDE

vim egrave un programma con una interfaccia grafica virtualmente assente moltoveloce e molto efficace nelle mani di un utente di Linux molto espertoma poco utile ad un utente ldquonormalerdquo Egrave solamente un efficacissimo ldquotexteditorrdquo ma non lo si puograve chiamare ldquoshell editorrdquo nel senso stretto dellaparola Esiste una versione con interfaccia grafica che egrave piugrave facile da usarema resta sempre solo un editor di testi

emacs egrave giagrave stato descritto come programma multipiattaforma e non sarebbenecessario aggiungere altro Merita invece segnalare che emacs egrave installatodi default in ogni distribuzione delle varie implementazioni del sistemaoperativo Linux quindi ogni utente Linux ne dispone per il solo fatto diusare una macchina con sistema operativo LinuxConviene ricordare di usare sempre lrsquoopzione auctex che fa diventare emacsun vero shell editor per LATEX oltre a consentire la visualizzazione quasisincrona di tratti selezionati del file sorgente

Xemacs egrave una versione di emacs piugrave avanzata e che giagrave contiene alcune delleprerogative del plug-in auctex il quale egrave ugualmente adatto anche a Xemacsemacs egrave normalmente installato insieme al sistema Linux Xemacs inveceva installato deliberatamente Esiste una versione di Xemacs anche per lemacchine Windows

Kile per i sistemi Linux che dispongono del ldquoK Desktop Environmentrdquo in siglaKDE egrave disponibile anche lo shell editor Kile KDE Integrated LATEXEnvironment Si tratta di un ottimo shell editor con tutte le funzionalitagravenecessarie e giagrave descritte per altri shell editor in piugrave esso ha indicazioni

4Sarebbe la prima mezza pagina di ogni codifica di caratteri che contenga solo 256 caratterioppure moltissime pagine ognuna di 256 caratteri come la codifica UNICODE La codificaANSI contiene una unica pagina di 256 caratteri le varie codifiche ISO 8859 contengonociascuna una sola pagina di 256 caratteri Per tutte le codifiche perograve la prima mezza paginadella prima o dellrsquounica pagina contiene i caratteri ASCII

37 GLI SHELL EDITOR 45

grafiche che permettono di controllare gli ambienti testuali o matematiciin modo che si puograve essere sicuri che ogni apertura di ambiente abbia lacorrispondente chiusura (questo egrave il minimo che si puograve richiedere e in unmodo o nellrsquoaltro quasi tutti gli shell editor offrono questa funzionalitagrave) mapermette anche di ldquochiudererdquo ciascun ambiente vale a dire si puograve contrarresullo schermo tutto lrsquoambiente ad una sola riga in modo che lavorando sulfile sorgente si possa esaminare con piugrave semplicitagrave il testo che precede equello che segue lrsquoambiente cliccando su una piccola icona a forma di lrsquoambiente viene nuovamente espanso si tratta di una funzionalitagrave graficamolto utileKile permette anche di sfruttare il completamento dei nomi vale a direche quando si comincia a scrivere una macroistruzione per esempio ilprogramma dopo qualche carattere presenta un menugrave a discesa con tutti inomi che cominciano con quelle lettere e fra i quali si puograve scegliere il nomegiusto Per gli ambienti non appena si scrive lo statement di aperturaKile inserisce subito dopo lo statement di chiusura se lrsquoambiente richiedeobbligatoriamente dei parametri esso inserisce anche le parentesi graffeche li racchiuderanno sta poi al ldquotastieristardquo di completare il gruppodei parametri e di inserire il contenuto dellrsquoambiente Ad alcuni questafunzionalitagrave piace moltissimo e in generale egrave considerata una funzionalitagravemolto utile per qualsiasi editor altri ne sono un poco infastiditi ovviamentesi tratta di gusti personali per venire incontro ai quali Kile permette diconfigurare la finestra di editing con o senza questa funzionalitagraveQuando si esegue una composizione diciamo con pdflatex Kile provvededirettamente a ripetere la compilazione quante volte occorre affincheacute tuttii riferimenti incrociati siano corretti che la bibliografia contenga tutti iriferimenti correttamente collegati con i richiami che lrsquoindice analiticosia aggiornato eccetera Anche questa funzionalitagrave puograve venire disabilitataper la lavorazione iniziale di un documento e riattivata nella fase finalecosiccheacute si possa essere sicuri che il documento sia globalmente completo ecorrettoLe macchine Linux che operano con lrsquointerfaccia grafica Gnome possonocomunque attivare una parte ridotta dellrsquointerfaccia KDE in modo da poterusare ugualmente Kile oppure possono ricorrere al programma seguente

gedit-LaTeX-plugin gedit egrave il semplice editore testuale con interfaccia graficadisponibile sulle macchine Linux con il desktop gnome Questo sempliceeditor accetta lrsquoinnesto di plug-in e il gedit-LaTeX-plugin egrave quello chepermette di gestire i file LATEX attraverso la sua semplice interfaccia graficaMa questo plugin offre numerose prestazioni utili per la gestione la modi-fica e lrsquoesecuzionecompilazione dei file LATEX Precisamente consente dicompletare i comandi controlla la sintassi del mark-up di LATEX permettedi avere come Kile TeXmaker e TeXmakerX una finestra laterale con lastruttura dei un documento complesso e permette di navigare facilmente daun punto allrsquoaltro dei file sorgente dispone di un certo numero di ldquoWizardrdquoche svolgono diversi compiti gestisce anche i file sorgente da elaborare conBIBTEX Consente di usare e volendo di modificare gli schemi iniziali deidocumenti da comporre consente di creare degli ldquosnippetsrdquo per estenderela gestione e il controllo dei comandi e degli ambienti personali allo stesso

46 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

modo di come esso fa da solo per i comandi e gli ambienti standard diLATEX e dei pacchetti piugrave comuni permette di creare degli strumenti dicompilazione personalizzati dispone di un visualizzatore PDF integratocome TeXworks e TEXShop e grazie a questo fatto ha lo stesso tipo disincronizzazione fra il file sorgente e in file composti in formato PDFDispone degli strumenti necessari per il controllo ortograficoLa pagina iniziale di questo gedit-LaTeX-plugin creato da Michael Zeising sitrova in httpwwwmichaels-websitedegedit-latex-plugin mail plug-in che consiste sostanzialmente di un programma scritto in Py-thon si trova nel sito httpsourceforgenetprojectsgedit-latexfiles Ovviamente questo plug-in dipende da altri pacchetti e altre li-brerie generalmente presenti su ogni macchina Linux allrsquooccorrenza on egravedifficile installare le librerie mancantiApparentemente gedit e quindi questo plug-in sono installabili anche sullemacchine Macintosh con sistema operativo Mac OS X

TeXworks egrave lo stesso programma descritto per le macchine Windows solo che inrete si trovano alcune distribuzioni binarie giagrave usabili e installabili con i solitistrumenti di installazione delle specifiche distribuzioni Linux altrimenti pertutti egrave disponibile la ldquotarballrdquo con i file sorgente ed egrave possibile compilare ilprogramma con le caratteristiche che si desiderano ma piugrave propriamentecon le funzionalitagrave e le librerie presenti sulla propria macchina

TeXmaker egrave lo stesso programma descritto per le macchine Windows ma sulsuo sito crsquoegrave anche un certo numero di eseguibili giagrave predisposti per diversedistribuzioni Linux Anche con questo programma esiste la possibilitagrave dicostruirsi il programma personalizzato per la propria macchinaSi veda la descrizione svolta nella sezione relativa alle macchine Windowsper conoscerne le funzionalitagrave Molto comodo per usare lrsquoencoding UNI-CODE ma questo lo fa anche Kile I due programmi hanno caratteristichesimili anche se forse Kile egrave un poco piugrave performante

TeXmakerX egrave lo stesso programma descritto per Windows ed ha le stesse presta-zioni oltre alle proprie specifiche che gli consentono di fare molte piugrave cosee meglio

374 Shell editor per le macchine MacintoshQui ci si riferisce a macchine Mac recenti operanti con il sistema operativoMac OS X questo egrave un sistema UNIX con lrsquointerfaccia grafica raffinata tipica dellemacchine Mac Su queste macchine possono venire montati anche i programmivalidi per Linux e appositamente integrati con lrsquointerfaccia grafica per MacQuindi buona parte di ciograve che si egrave detto per le macchine Linux egrave applicabile anchealle macchine Mac tuttavia esistono programmi specifici creati e sviluppati perqueste macchine sarebbe opportuno farne uso proprio per sfruttare al meglio lespecificitagrave di questo sistema operativo per il quale ogni documento egrave generalmentescritto solo usando i formati PDF oppure RTF oppure XML (bersquo molte partipre-esistenti scritte in HTML sono ugualmente usate ma generalmente nonriguardano i documenti creati dagli utenti)

37 GLI SHELL EDITOR 47

TEXShop egrave lo shell editor che accompagna di default il sistema TEX quandoquesto viene installato con MacTEX Dal punto di vista dellrsquoediting deltesto questo editor non egrave fortissimo ma offre tutte le funzionalitagrave principalidescritte per gli altri shell editor forse manca di piccole funzionalitagravedi secondaria importanza esso dalla versione 2 in avanti egrave stato moltoarricchito di nuove funzionalitagrave e puograve reggere benissimo il confronto congli altri shell editor

Invece possiede nativamente un funzionalitagrave unica che normalmente mancanegli altri shell editor tranne TeXworks vale a dire la possibilitagrave di navigarenei due sensi fra la finestra di editing testuale e quella di visualizzazione deltesto composto Questa funzionalitagrave egrave formidabile tutte le volte che si usail sistema TEX ma egrave particolarmente gradita sulle macchine Mac visto cheil formato di default dei documenti composti egrave comunque il formato PDFCerto egrave possibile configurare il motore di composizione affincheacute il formatodi uscita sia quello DVI ma la funzione di visualizzazione attraverso ilprogramma integrato in TEXShop richiede comunque sempre il formatoPDF per cui lrsquoeventuale file DVI prodotto viene subito ldquodistillatordquo nelformato PDF Si puograve installare un visualizzatore come xdvi per il formatoDVI e si puograve configurare TEXShop in modo che usi quel visualizzatoreinvece del suo visualizzatore interno ma questa sembrerebbe la strada perrendere complicate le cose semplici

Aquamacs egrave una versione speciale di emacs adattata allrsquointerfaccia grafica deisistemi Mac dalla versione 20 in poi egrave particolarmente indicata per ilsistema operativo Mac OS X 105 e per le versioni successive

Pur conservando lrsquointera funzionalitagrave di emacs contiene una vasta seriedi menugrave con i comandi che normalmente si trovano nei programmi per lepiattaforme Mac inoltre integra giagrave lrsquoestensione auctex per cui quandosi crea o si apre un file LATEX il programma cambia automaticamente ilsuo aspetto e la sua barra dei comandi per mostrare allrsquoutente quanto egravedisponibile nel caso si debba editare un file LATEX Funziona con lo stessocorrettore ortografico di TEXShop Se il visualizzatore PDF che si associaa Aquamacs egrave Skim esso consente la sincronizzazione fra i file sorgente eil file composto in formato PDF piugrave o meno con la stessa funzionalitagrave diTeXworks

Un suo vantaggio molto utile nella gestione del file sorgente egrave costituitodalla serie di ldquointerpretazionirdquo dei comandi LATEX che consentono di dareun colore diverso una forma diversa una grandezza diversa alle parti ditesto marcate con il mark-up di LATEX un comando section avragrave quindiil suo argomento scritto in corpo decisamente maggiore del testo normalecolorato in blu scuro e sostanzialmente in grassetto Un testo da evidenziarepassandolo come argomento al comando emph appariragrave composto nellafinestra di editing con un font inclinato e di colore contrastante Lo stessosuccede per le note e per gli argomenti di diversi altri comandi Questi giochidi colore risultano molto utili durante la fase di creazione e di modifica delfile sorgente va da seacute che sono attuati tutti gli altri espedienti utili perevitare gli errori piugrave comuni per esempio mediante lrsquoaccoppiamento delleparentesi dello stesso tipo allo stesso livello

48 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

Esso presenta la possibilitagrave di vedere direttamente nella finestra del filesorgente le equazioni e i disegni giagrave trasformati in immagine compostacon pdflatex egrave ovviamente possibile tornare al file sorgente anche percorreggere questi casi ma se il risultato egrave soddisfacente si puograve proseguirea elaborare il testo sorgente e il contenuto della finestra del file sorgentescorre sullo schermo portandosi dietro le parti che hanno giagrave subito questavisualizzazione parzialeLa sincronizzazione fra il file sorgente e il file PDF viene eseguita attraversoun programma di visualizzazione dei file PDF che si chiama Skim questoegrave un programma indipendente da Aquamacs e va installato per suo contoesso puograve venire configurato per agire in sincronizzazione con diversi editorin particolare anche con TeXmakerX che quindi anche sul Mac puograve giovarsidella stessa possibilitagrave di sincronizzazione che puograve avere sulle macchineWindows

emacs viene distribuito anche per operare nativamente con lrsquointerfaccia graficadel sistema Mac OS X quindi si puograve usare la combinazione emacs eauctex per operare come sulle macchine Linux emacs egrave molto piugrave potentecome editor testuale di TEXShop quindi potrebbe essere una buona sceltatuttavia anche con lrsquoaggiunta di auctex lo shell editor che si viene a formarepuograve navigare avanti e indietro solo con i file in formato DVI e questo portauna pesante ipoteca alla comoditagrave di lavorazione del documento

Kile Poicheacute il sistema operativo Mac OS X prevede anche lrsquointerfaccia graficaX Windows (tipica dei sistemi Linux) e consente lrsquoinstallazione dellrsquointer-faccia KDE si puograve usare anche il bello shell editor Kile ma sotto certiaspetti sembra un regresso rispetto a TEXShop

TextWrangler e diversi altri editor testuali specifici per il sistema Mac OS Xpossono essere utili ma non sono shell editor quindi non sono cosigrave comodiper la lavorazione di un documento TeXwrangler per altro puograve esseremolto utile per aprire e leggere i file log percheacute nativamente questaestensione egrave collegata ad altri applicativi che chi scrive non trova cosigravecomodi

TeXworks regge il confronto con TEXShop sebbene sia ancora nella sua infanziaPer aggiornarlo rispetto alla versione impacchettata nellrsquoinstallatore Mac-TeX lo si scarica dal suo sito come file zip che perograve contiene direttamentelrsquoapplicazione TeXworksapp basta estrarla dal file zip e metterla nellapropria cartella Applications per averlo direttamente funzionante Ci siricordi che per impostare la configurazione desiderata dopo averlo lanciatoalmeno una volta anche senza aprire nessun file bisogna fare come al solitocon i programmi Mac cioegrave aprire il menugrave a discesa cliccando sul nomedel programma presente nella barra superiore e ligrave scegliere ldquoPreferencesrdquoNei programmi per Windows e per Linux invece la scelta delle preferenzepersonali si trova come ultimo elemento del menugrave a discesa della voceldquoEditrdquo (ldquoModificardquo quando il programma egrave localizzato in italiano)Bencheacute questo programma nasca da TEXShop presenta alcune funzionalitagraveassenti in TEXShop altre funzionalitagrave sono eseguite in modo diverso comeper esempio la creazione del legame di subordinazione di un file sorgenteal suo master file Cosigrave la configurazione dei programmi delle scorciatoie

38 IL SISTEMA TEXMACS 49

dellrsquoencoding eccetera Egrave comodo che il pulsante per eseguire la composi-zione si presente sia nella finestra del file sorgente sia nella finestra del filecomposto

Non egrave escluso che in futuro TeXworks possa subentrare a TEXShop nelleprossime distribuzioni di MacTEX

TeXmaker presenta le stesse funzionalitagrave descritte per i sistemi Windows e lestesse limitazioni Per altro egrave un ottimo shell-editor esso egrave adatto anche allemacchine Mac percheacute egrave contiene un suo visualizzatore interno predispostoper la sincronizzazione

TeXmakerX ha gli stessi pregi giagrave descritti come shell editor multipiattaforma chiscrive non egrave riuscito a verificare se sia sincronizzabile con il visualizzatoredi file in formato PDF Skim sulla macchine Mac probabilmente sigrave maapparentemente questo nome manca dal menugrave di Skim e bisogna procederead una configurazione ldquoCustomrdquo

38 Il sistema TeXmacs

Il sistema di composizione TeXmacs egrave un editor testuale che presenta la finestradi editing esattamente come verrebbe se fosse composta con LATEX come editorha tutte o quasi le funzionalitagrave di emacs ma come interfaccia grafica egrave moltopiugrave vicina a quella dei sistemi WYSIWYG Il file composto puograve venire salvatoin formato compatibile con LATEX o pdfLATEX Sui file testuali cosigrave ottenutivolendo si puograve ulteriormente intervenire per apportare modifiche e inserire lefunzionalitagrave dei pacchetti di estensione di LATEX che TeXmacs non egrave in grado diinserire

Questo sistema di composizione egrave quindi utile per i principianti per farsilrsquoocchio a quello che si puograve ottenere con LATEX dati i suoi vincoli non lo siconsiglierebbe per una lavorazione di un documento complesso che richiedafunzionalitagrave estese del sistema TEX

Non crsquoegrave dubbio che per un principiante avere una sola finestra in cui eseguirelrsquoediting e vedere il risultato in modo assolutamente sincrono possa essere unvantaggio purtroppo lo si paga con una notevole riduzione delle funzionalitagrave dicomposizione che il sistema TEX consente

Il sistema TeXmacs egrave disponibile per tutti e tre i principali sistemi operativima di fatto egrave ldquonativordquo solo sui sistemi Linux La cosiddetta versione ldquonativardquoper Windows egrave obsoleta quella che si installa con un unico programma diinstallazione insieme ad una versione ridotta di CygWin CygTeXmacs nonsembra essere funzionante Tuttavia installando il simulatore di ambiente LinuxCygWin crsquoegrave la possibilitagrave di installare anche TeXmacs in modo corretto Peri sistemi Mac lrsquoinstallazione deve venire eseguita attraverso Fink o attraversoMacPorts ma questi a loro volta sono incompatibili con la simultanea presenzasulla macchina di una versione aggiornata di TEX Live anche se esistono degliespedienti per far funzionare due versioni diverse del sistema TEX

50 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

39 Il sistema LyXMolto migliore appare il sistema LYX questo editor consente di usare una finestradi editing dove il testo egrave composto con font a spaziatura proporzionale ilmark-up semplice (forma serie e corpo dei font sezionamento eccetera) vienevisualizzato direttamente sullo schermo producendolo con semplici operazionicon il mouse Il file sorgente quindi appare quasi come quello che verragrave prodottodalla compilazione mediate latex

Non ci sono le limitazioni di TeXmacs percheacute si possono inserire comandiLATEX come si possono invocare i piugrave diversi pacchetti di estensione di LATEXqueste operazioni possono venire eseguite dentro apposite finestrine intercalateal testo oppure nel preambolo in modo da non intralciare lrsquoaspetto generale deltesto composto sullo schermo che lo si ripete non egrave ciograve che verragrave composto daLATEX ma qualcosa che gli assomiglia

Molti dei pacchetti di estensione di LATEX hanno giagrave le opportune interfacceper essere usati con LYX per gli altri pacchetti bisogna arrangiarsi un porsquoper creare queste interfacce sebbene gli utenti che stanno usando la versione16 di LYX affermino che ora le cose sono molto piugrave semplici che in passatoQueste interfacce non servono a LYX per eseguire il codice LATEX che i pacchetticontengono ma servono per far sigrave che quel che LYX presenta sullo schermo sia ilpiugrave simile possibile a ciograve che si otterragrave quando si compila con latex o pdflatex

Le figure possono venire inserite con pochi click del mouse esse appaionosulla schermata di LYX ma non egrave detto che tutte siano elaborabili con latex sesi vuole eseguire un processo di elaborazione differita con latex ci si potrebbetrovare nei guai con figure incompatibili

LYX prevede per i propri documenti un formato specifico (file con estensio-ne lyx) e prevede opportuni bottoni nellrsquointerfaccia grafica per stampare ildocumento (processandolo attraverso pdflatex o altri compositori del sistemaTEX) come gli altri documenti che si possono gestire sul proprio PC o laptopTuttavia esso puograve esportare il suo contenuto in formato ldquoLATEXrdquo questo puograveessere comodo per collaborare con altri autori che non siano equipaggiati con ilprogramma LYX Chi scrive perograve ha moderatamente usato LYX fino una decinadi anni fa quindi i suoi ldquopregiudizirdquo potrebbero essere obsoleti come il sistemaLYX disponibile allora Tuttavia anche altri utenti di LYX hanno confermato cheil file tex che si ottiene in questo modo era ldquoterribilerdquo questo non egrave piugrave vero echi scrive se ne egrave accorto nellrsquoeseguire le prove necessarie per esporre il materialedel capitolo 22 Ora certamente fra i vari programmi che consentono di salvarei file in formato tex con il mark-up di LATEX LYX egrave senzrsquoaltro il migliore

Per altro lrsquoinstallazione di LYX presuppone che la macchina sui cui vienemontato contenga giagrave oltre a una versione del sistema TEX anche ghostscripte gview molte delle operazioni che esso svolge sono ottenute attraverso latexstesso il che fa pensare (erroneamente) che LYX tutto sommato non sia altro cheun editor piugrave comodo da usare e ben adattato al sistema TEX visto che molteoperazioni di mark-up sono ottenute come in altri ben noti word processor con iquali egrave probabile che lrsquoutente abbia giagrave una certa confidenza prima di mettersiad usare LYX o LATEX Egrave una visione un porsquo riduttiva ma certamente egrave possibileusarlo anche solo a questo livello Questo non implica che lrsquoutente di LYX debbaconoscere anche LATEX perograve se ne ha qualche rudimento egrave decisamente meglio

Certamente LYX non puograve presentare sullo schermo tutte le cose come verrannocomposte da LATEX durante la scrittura di un file basta scegliere dal menugrave View

310 LATEX E pdfLATEX 51

lrsquoopzione DVI5 e visualizzare il documento composto da LATEX le differenzesono notevoli Tuttavia il tipo di editing che LYX consente di eseguire assomigliaallrsquoapproccio di LATEX stesso cioegrave di impegnare lrsquoautore a concentrarsi sulcontenuto piuttosto che sulla forma WYSIWYM piuttosto che WYSIWYG

In sostanza LYX potrebbe essere consigliabile per utenti di media abilitagrave chenon richiedano programmazioni avanzate o pacchetti avanzati del sistema TEXLYX consente di richiamare nel preambolo qualunque pacchetto di estensioneanche pacchetti per i quali esso non sia giagrave attrezzato con una apposita interfacciacosigrave come consente di definire nuove macro nel preambolo ma se bisogna ricorrerea queste cose allora forse un semplice shell editor fa altrettanto bene egrave solouna questione di gusti Per le conversioni di formato per esempio da doc atex LYX egrave invece senzrsquoaltro lo strumento da preferire

LYX egrave disponibile per tutti e tre i principali sistemi operativi

310 LATEX e pdfLATEXEgrave bene che il lettore sappia che quando si dice LATEX si intende il linguaggiodi mark-up specifico per descrivere le componenti di un documento e di cuiparleremo approfonditamente nel resto di questo testo Nel linguaggio corrente siusa lo stesso nome per indicare il programma che interpreta il mark-up ed eseguela composizione del documento Quindi esso indicheragrave non solo il programma latexvero e proprio ma anche il programma pdflatex Questrsquoultimo ha la caratteristicache il suo formato di uscita egrave direttamente il formato PDF e non sono necessarieconversioni di nessun genere come egrave stato piugrave volte menzionato nei paragrafiprecedenti

Vale la pena sottolineare immediatamente le differenze nel file finale che siottiene direttamente con pdflatex rispetto a quello che si puograve ottenere mediantele trasformazioni giagrave menzionate cioegrave eseguendo in sequenza i programmi latexdvips e ps2pdf oppure latex e dvipdfm (o dvipdfmx)

Il programma diretto pdflatex produce un file PDF conforme agli standard edotato di tutte le caratteristiche che gli standard consentono dalle annotazioniai thumbnail6 dai link ai file o siti esterni ai link di navigazione interna deldocumento La composizione diretta in formato PDF consente anche una qualitagravetipografica decisamente superiore grazie alla possibilitagrave di usare la microtipografiase ne faragrave una descrizione abbastanza ampia in un successivo capitolo

Passare attraverso il formato DVI quello di default che si produce con ilprogramma latex comunque lo si trasformi non consente di ottenere tutte lefunzioni del formato PDF lsquoverorsquo percheacute il formato DVI di sua natura non puogravecontenere certe informazioni Esso egrave un modo per descrivere il layout di unapagina tipografica non di descrivere gli oggetti che ne fanno parte Egrave vero esiste

5Sulle macchine Mac scegliere questa opzione egrave praticamente la stessa cosa che sceglierelrsquoopzione PDF percheacute il visualizzatore di entrambi i tipi di file egrave comunque TEXShop il qualeprovvede automaticamente a ldquodistillarerdquo i file DVI per trasformarli in file PDF

6La parola inglese thumbnail alla lettera significa unghia di un pollice in italiano si userebbela parola unghia ma si riferisce a quegli intagli semicircolari sul margine esterno delle pagineche si trovano in grossi volumi di consultazione come dizionari ed enciclopedie e che servonoper agevolare la ricerca di una particolare sezione alfabetica del volume In informatica siattribuisce il nome di thumbnail alle immagini ridotte delle pagine o delle figure che compaionospesso sui bordi dei programmi di visualizzazione dei file PDF o nei programmi di sistema checonsentono di cercare i file nelle cartelle dei dischi

52 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

la possibilitagrave di aggirare queste limitazioni mediante un comando speciale cheappunto si chiama special e che permette di inserire nel file di uscita deibrani di un altro linguaggio che verragrave poi interpretato (o ignorato se non egraveconforme) dal programma di lsquotraduzionersquo del formato DVI in un altro formatooppure per essere visualizzato sullo schermo o per essere stampato Va comunqueprecisato che il formato DVI non consente lrsquouso della microtipografia e quindibencheacute la sua qualitagrave tipografica sia molto buona non egrave altrettanto buona diquella che si puograve ottenere con la generazione diretta del file PDF attraverso ilprogramma pdflatex

Il formato PDF si chiama appunto Portable Document Format propriopercheacute consente di lsquoportarersquo i documenti composti su qualunque piattaformadotata di qualunque sistema operativo basta che disponga di un visualizzatore difile PDF e perciograve egrave particolarmente indicato per i libri elettronici (o e-book comespesso vengono chiamati oggi) previsti non per essere stampati ma per esserelsquosfogliatirsquo sullo schermo Ovviamente il formato PDF va benissimo anche per lastampa e una volta stampato le possibilitagrave di navigazione interna o esternavengono comunque perse

Fino a poco tempo fa e in certi ambienti ancora oggi veniva data una grossapreferenza al formato PostScript chi lavora in ambiente UNIX e Linux continuaa privilegiare il formato PS grazie al fatto che questo formato negli anni rsquo80 e neiprimi anni rsquo90 era lrsquounico che potesse ricorrere a stampanti per la stampa direttadel formato PostScript Oggi i libri elettronici sono relativamente diffusi e stannodiffondendosi ancor di piugrave con la messa in commercio di piccoli apparecchi capacidi funzionare non solo come telefoni cellulari ma anche come navigatori di retelettori di libri elettronici riproduttori di file audio eccetera Dal punto di vistaarchivistico oggi esiste una norma ISO che impone lrsquouso del formato PDF al finedi produrre documenti elettronici archiviabili a lungo termine

Nel seguito quindi ci si riferiragrave quasi sempre al formato PDF prodottodirettamente con il programma pdflatex

Egrave bene precisare che i comandi da dare dalla linea di comando latex o pdflatexseguiti dal nome del file da elaborare si comportano come programmi ma inrealtagrave quei nomi sono solo utili per specificare sia lrsquointerprete dei comandi (ilvero motore di composizione) sia il tipo di mark-up contenuto nei file di formato

Il file di formato egrave un file che contiene una collezione di definizioni di macro-istruzioni che vengono lette come prima cosa dal vero motore di composizionesiccome queste macroistruzioni vengono lette sempre allora il sistema TEX findallrsquoinizio ha sviluppato la tecnica di raccogliere le definizioni comuni legate altipo di mark-up in file speciali per LATEX nel file latexltx per plain TEXnel file plaintex eccetera questa tecnica consente di leggere una volta pertutte questi file contenenti le macro comuni mediante una versione lsquoverginersquodei programmi tex oppure pdftex che dopo avere letto i file e averli elaboratiper trasformarli in linguaggio macchina li memorizzano sul disco di sistemain file binari con estensione fmt Quando si lancia latex in realtagrave si lancia unprogrammino di interfaccia che a sua volta lancia pdftex con lrsquouscita in formatoDVI oppure pdftex con lrsquouscita in PDF dicendogli anche di usare il file diformato latexfmt

Questa delucidazione puograve sembrare capziosa specialmente se si aggiungeche dal 2005 ogni distribuzione del sistema TEX contiene anche i programmidi composizione etex e pdfetex (vedi piugrave avanti il paragrafo 3112) questi

310 LATEX E pdfLATEX 53

programmi estesi sono compatibili allrsquoindietro con i programmi precedenti percui li sostituiscono completamente dal punto di vista funzionale

Per complicare le cose al neofita che per altro almeno allrsquoinizio difficilmentesi accorgeragrave delle differenze bisogna aggiungere che il programma pdfetex speci-ficando un opportuno parametro si comporta in modo esattamente uguale a etexDal 2007 pdftex egrave diventato il programma di composizione di default lrsquoutentenon se ne accorge ma per chi si dedica alla manutenzione dei programmi la cosarappresenta una enorme semplificazione insomma pdftex ha le funzionalitagrave ditex etex pdfetex

Per tradizione lrsquointerprete tex bencheacute le sue funzionalitagrave siano un sottoinsiemedi quelle di pdftex continua ad essere incluso in ogni distribuzione del sistemaTEX Se un altro programma comunque si chiami svolge le stesse funzionidel programma tex esso ha diritto di chiamarsi o di far parte della collezionedella distribuzione del sistema TEX Questo programma progenitore di tuttigli altri continua ad essere la pietra di riferimento per tutto il sistema peraltro oggi non viene quasi piugrave usato se non appunto come pietra di paragoneNon va dimenticato che il suo creatore Donald E Knuth lrsquoha congelato e nonintende piugrave modificarlo si limita a correggere i pochi errori che ancora contienepremiando con un assegno di 1 $ firmato di suo pugno chiunque gli segnali un veroerrore Non va in bancarotta per due motivi (a) di errori ce ne sono pochissimie (b) chiunque riceva un assegno firmato da Knuth stesso non lo incassa ma loespone in cornice Il numero di versione di tex contiene le prime cifre del numeroπ e ad ogni modifica acquisisce una nuova cifra tendendo asintoticamente aπ cosa che non avverragrave mai visto che π egrave irrazionale (o meglio trascendente)Oggi il numero di versione egrave 31415926 visto che le poche correzioni a texvengono immediatamente inserite anche in pdftex questo numero lo si ritrovanella prima riga di ogni file log qualunque sia il programma effettivamenteusato direttamente o indirettamente attraverso lo shell editor

Ciograve non toglie che esistano due modalitagrave di composizione (non importa sesono due distinte modalitagrave di funzionamento dellrsquounico programma pdftex)quella che in uscita produce un file DVI e quella che produce invece un file PDF

I file sorgente elaborabili con latex o con pdflatex sono in generale identici opossono essere resi tali nel senso che usano lo stesso mark-up LATEX Per cuiquando si parla di un file elaborabile con latex si intende che egrave stato scrittofacendo uso del metodo di mark-up tipico di LATEX e che il file egrave elaborabileindifferentemente anche da pdflatex Sarebbe desiderabile che i file con questomark-up avessero lrsquoestensione ltx invece che lrsquoestensione tex ma per varimotivi questa convenzione non viene quasi mai rispettata

A causa dellrsquouso di pacchetti di estensione specializzati un file apparentementeconforme alla grammatica del mark-up di LATEX puograve essere elaborato con latexma puograve risultare incompatibile per essere elaborato con pdflatex puograve succedereanche il contrario Ciograve succede raramente ma non egrave impossibile che accadasarebbe quindi desiderabile evitare tali pacchetti di estensione ricorrendo apacchetti meno specializzati ma adeguati per la particolare funzione per laquale essi vengono invocati Questa soluzione puograve essere usata nella stragrandemaggioranza dei casi

Talvolta lrsquoincompatibilitagrave fra latex e pdflatex non dipende dal file sorgente madai file inclusi ciograve puograve accadere facilmente con i file che contengono delle immaginiegrave per questo che sono molto utili quei programmi accessori che consentono di

54 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

trasformare una immagine da un formato allrsquoaltro a questo proposito si facciariferimento al capitolo 8

Comandodi sistema Interprete File di formato

sorgenteFile di formatocompilato

tex tex texini texfmtetex pdftex etexini etexfmtpdftex pdftex pdfetexini pdftexfmteplain pdftex eplainini eplainfmtlatex pdftex latexini latexfmtpdflatex pdftex pdflatexini pdflatexfmt

Tabella 31 Legame fra alcuni comandi di sistema gli interpreti e i formati

La tabella 31 riassume in parte quanto egrave stato esposto Lrsquounica differenzavista la moltitudine di formati da generare in pratica con un solo interprete egraveche invece di usare dei file sorgente con estensione tex o ltx si usano dei filedi inizializzazione con estensione ini che provvedono a far leggere allrsquointerpretei file specifici per il formato e per impostare i parametri necessari allrsquointerpreteper produrre i formati giusti in relazione al particolare modo di funzionamentodel programma di sistema che si desidera attivare In pratica i primi quattroformati attraverso i file di inizializzazione leggono tutti il file plaintex insiemead altri file con possibili estensioni del linguaggio e impostano i parametri internidellrsquointerprete affincheacute lrsquoesecuzione dei programmi i cui nomi non comincianocon pdf producano lrsquouscita in formato DVI mentre quelli il cui nomi comincianocon pdf producano lrsquouscita in formato PDF Gli ultimi due casi si riferiscono alprogramma latex la cui uscita egrave in formato DVI e al programma pdflatex la cuiuscita egrave in formato PDF Entrambi i formati sono creati leggendo sostanzialmentelo stesso file latexltx ma con inizializzazioni diverse a seconda del formato diuscita di default

311 Altri programmi di composizione del siste-ma TEX

Vale la pena ricordare in questo capitolo la presenza di altri lsquofratellirsquo di LATEX epdfLATEX Essi hanno campi di applicazione in parte complementari a quelli diLATEX e spesso possono venire installati di default quando si installa il sistemaTEX

3111 Plain TEXIl mark-up semplice lsquoplainrsquo in inglese usato nei primi quattro esempi dellatabella 31 egrave quello formato dallrsquoinsieme di comandi predisposto dallrsquoautoreKnuth e con il quale tra lrsquoaltro egli continua a comporre tutti i suoi libri

Come linguaggio di mark-up egrave molto meno strutturato di LATEX tanto chetalvolta il suo insieme di comandi viene qualificato come lsquoprescrittivorsquo inveceche lsquodescrittivorsquo LATEX ha un insieme di comandi di mark-up decisamente piugravedescrittivo ma non egrave completamente descrittivo cosigrave il mark-up Plain ha un

311 ALTRI PROGRAMMI DI COMPOSIZIONE DEL SISTEMA TEX 55

insieme di comandi di gran lunga molto prescrittivo e solo qualche comando ditipo descrittivo

I programmi che usano il mark-up Plain semplice o esteso7 con uscita DVIo PDF oggi vengono usati poco ma in qualche raro caso si incontrano dei filesorgente scritti da altri che possono essere composti ricorrendo a tex o a pdftexIn questo caso gli shell editor sono in grado di eseguire questo compito con lasemplice pressione di uno dei vari pulsanti presenti nei vari menugrave quindi lrsquoutentelsquonormalersquo non ha bisogno di conoscere il mark-up Plain Sappia tuttavia chelrsquoinsieme di comandi di LATEX costituisce una enorme sovrastruttura sui comandidi Plain TEX e che quasi tutti i comandi di Plain sono usabili sotto LATEX egeneralmente producono lo stesso effetto

Per la documentazione ci si puograve rivolgere direttamente alla pietra miliarecostituita dal libro e manuale di Knuth il TEXbook [25] che non dovrebbemancare dalla scrivania di qualunque utente avanzato di LATEX

3112 I programmi estesiI programmi etex elatex pdfetex e pdfelatex deriverebbero dalla generazione delformato mediante il programma etex questo oggi egrave totalmente assorbito dentropdftex quindi quei programmi non esistono piugrave tuttavia se ne parla solo perdescrivere le estensioni di etex introdotte in pdftex

Come si vede dalla tabella 31 oggi tutti questi programmi sono prodotticreando il formato sempre con lrsquointerprete pdftex e quindi sostituiscono com-pletamente tutti i programmi con la lsquoersquo citati sopra chi usa i programmi dellatabella usa sempre programmi estesi anche se non usa nessuna delle estensioni

Insomma i programmi di oggi sono downward compatible con i rispettiviprogenitori Tutti i pacchetti di estensione che fino ad oggi sono stati sviluppatiper TEX LATEX e i loro lsquofratellirsquo sono quindi usabili anche con i programmiestesi per altro a tuttrsquooggi sono ancora pochissimi i pacchetti di estensione cherichiedano espressamente lrsquouso dei programmi estesi e non siano compatibili coni progenitori

Crsquoegrave da sperare perograve che tutti i pacchetti di estensione esistenti vengano viavia aggiornati non tanto per dotarli di nuove funzionalitagrave quanto per sfruttarele estensioni dei lsquomodirsquo di esecuzione che possono svolgere nativamente certefunzioni che fino ad oggi non sono sfruttate oppure che sono simulate consequenze di istruzioni TEX o LATEX

Vale la pena di sottolineare un fatto che a prima vista potrebbe apparire comesuperfluo ma non lo egrave egrave vero che fino ad oggi i programmi generalmente distribuitisu ctan non sfruttano le nuove potenzialitagrave o funzionalitagrave dei programmi estesianche se questi sono i motori veri di ogni variante dei programmi di composizionedel sistema TEX Tuttavia questi programmi cominciano ad apparire il primo chelo scrivente ha incontrato egrave proprio formato dalla classe arstexnica predispostaper comporre gli articoli della rivista ArsTEXnica dellrsquoassociazione guIt Questaclasse di composizione richiede la modalitagrave estesa dei programmi di composizionedi default invece lrsquoaggiornamento di MacTEX del 2008 che lo scrivente avevainstallato predisponeva il sistema per usare sigrave i motori di composizione estesi

7Sono estesi i mark-up che contengono la lettera lsquoersquo prima di lsquoplainrsquo o prima di lsquotexrsquolrsquoestensione consiste nellrsquouso della sillabazione per molte lingue (valido solo per il mark-updiscendente da plaintex) e nella disponibilitagrave dei comandi estesi descritti successivamente inmerito allrsquointerprete etex

56 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

senza perograve attivare la modalitagrave estesa La situazione si egrave risolta ricostruendotutti i file di formato in modalitagrave estesa dando dalla finestra comandi o consoleo terminal o xterm e con i privilegi dellrsquoamministratore il comando

fmtutil ndashall

che ha appunto ricreato indistintamente tutti i file di formato in modalitagraveestesa Forse pochi lettori di questo testo si troveranno nella necessitagrave di farealtrettanto ma egrave bene sapere che allrsquooccorrenza questa breve e semplice azionerisolve tutti i problemi

Per altro una cosa egrave quella di creare i file di formato che sono sinonimidei lsquoprogrammirsquo da lanciare unrsquoaltra egrave quella di sapere in quale modalitagrave staoperando il motore di composizione finora questo motore di composizione egrave statochiamato interprete percheacute il suo scopo egrave quello di interpretare le definizionidelle macroistruzioni per tradurle in linguaggio macchina al fine di produrre unfile di uscita contenente il testo composto tipograficamente

Come si egrave giagrave detto dal 2007 esiste un solo interprete di default che egrave pdftex secon questo interprete si generano i file di formato in modalitagrave estesa si ottengonoi file di formato capaci di attivare la modalitagrave estesa quando vengono usatiper il lavoro di composizione vero e proprio altrimenti funzionano in modalitagravelsquocompatibilersquo con il passato

Se con questo interprete si generano i file di formato avendo specificatopdfoutput=0 il lavoro di composizione si concluderagrave con un file di uscitain formato DVI al contrario se viene specificato pdfoutput=1 il lavoro dicomposizione termina con un file in formato PDF Il valore specificato per ilparametro pdfoutput viene integrato dentro al file di formato per cui lrsquoesitodella composizione egrave predefinito a meno che il compositore non voglia eglistesso specificare allrsquoinizio del suo file sorgente un diverso valore del parametropdfoutput

Ognuno puograve esaminare il proprio shell editor per vedere quale programmaviene lanciato quando si clicca sullrsquoicona che rappresenta LATEX Per chi scriveche usa lo shell editor TEXShop su una macchina Mac il bottone ldquoTypesetrdquocorrisponde a lanciare lrsquointerprete pdftex in modalitagrave estesa con il file di formatoprodotto con pdfoutput=1 quindi egli produce di default in modalitagrave estesafile di uscita in formato PDF Con lo shell editor LED su una macchina Windowsinvece il bottone ldquoLATEXrdquo lavora con pdftex in modalitagrave estesa ma produce inuscita un file DVI percheacute il formato latexfmt egrave stato creato con pdfoutput=0quando si preme il bottone ldquopdfLATEXrdquo si lancia lo stesso interprete ma si lavoracon un altro formato creato con pdfoutput=1

Generalmente oggi i file di formato sono tutti o quasi tutti composti inmodalitagrave estesa o lo si puograve fare come si egrave descritto sopra Tuttavia per trarneil miglior beneficio bisogna documentarsi a fondo nel file docetexbaseetex_manpdf

Ma in che cosa consiste questa modalitagrave estesa Permette di superare lalimitazione di 256 contatori scatole lunghezze rigide lunghezze elastiche ecce-tera che erano uno dei limiti del programma tex Permette di comporre il testosia con alfabeti lsquonormalirsquo (da sinistra a destra) sia con alfabeti retrogradi (dadestra a sinistra) Permette di eseguire alcuni semplici calcoli con i contatorie le lunghezze direttamente allrsquointerno di espressioni speciali ma facendo usosostanzialmente delle stesse notazioni operazionali che siamo soliti usare quandoscriviamo lrsquoalgebra Permette di eseguire alcuni altri test non previsti da tex

311 ALTRI PROGRAMMI DI COMPOSIZIONE DEL SISTEMA TEX 57

come per esempio verificare se un particolare segno esiste in un determinatofont Si puograve approfondire nel documento indicato sopra docetexbaseetex_manpdf anche se si riferisce ad un programma che non esiste piugrave ma lecui funzionalitagrave sono state trasfuse tutte in pdftex

Secondo lo scrivente uno dei vantaggi della modalitagrave estesa consiste anche nellapossibilitagrave di lanciare altri programmi durante lrsquoesecuzione della composizionee questo per esempio consente di convertire al volo il formato delle immaginicome si descriveragrave meglio nel capitolo 8 e specialmente per gestire gli indicianalitici come esposto nel paragrafo 165

3113 Il mark-up ConTEXtIl mark-up ConTEXt assomiglia molto vagamente sia a Plain sia a LATEX Essoegrave un mark-up molto strutturato ma tutto sommato semplice come Plain ladifferenza sta nel fatto che virtualmente ogni comando accetta che venganospecificate delle opzioni per cui la personalizzazione della composizione avvienein modo piugrave semplice molto piugrave semplice rispetto a quanto sarebbe necessariofare con Plain

Esso permette di descrivere il testo da comporre in modo molto piugrave strutturatoanche rispetto a LATEX e i libri e gli altri documenti composti con questoprogramma sono generalmente molto ben riconoscibili per lrsquoaltissima qualitagrave delrisultato finale Tutto ciograve avviene grazie alle opzioni previste e attivate dai varicomandi usati per la descrizione del testo Gli autori hanno spesso affermatoche essi preferiscono la libertagrave di definire qualunque dettaglio compositivo manon volevano perdere le funzionalitagrave offerte da LATEX direi che ci sono riuscitimagnificamente e i risultati si vedono Tuttavia il mark-up egrave cosigrave differente daquello di LATEX che la maggior parte degli utenti continua a usare LATEX

ConTEXt puograve svolgere compiti piuttosto specializzati in modo molto comodoConTEXt ha come motore ci composizione pdftex e quindi contiene le sue

estensioni e i suoi limiti il principale egrave quello di essere limitato a font che noncontengano piugrave di 256 caratteri quindi non puograve lavorare con gli OpenTypeneacute con i font in codifica UNICODE Questa versione di ConTEXt si chiamaConTEXt Mk ii

Si sta sviluppando una versione chiamata ConTEXt Mk iv che superi questilimiti lo sviluppo perograve egrave simultaneo a quello di LuaTEX e a quello si rimanda

3114 I programmi Omega e Lambda Aleph e LamedIl programma Omega il cui sviluppo sembra si sia arrestato cerca di sostituireil programma TEX in modo da togliergli tutte le limitazioni che ha per esempioquella di trattare font con non piugrave di 256 segni e di arricchirlo di altre funzionalitagraveTra le altre funzioni consente anche la composizione con alfabeti retrogradi conlrsquoarabo che egrave sostanzialmente ancora una scrittura calligrafica molto legataconsente di eseguire legature molto complesse che coinvolgono anche quattro ocinque segni In altre parole egrave decisamente piugrave esteso di pdftex

Il programma Lambda egrave per cosigrave dire la versione LATEX di Omega ne accettatutte le estensioni e mette in grado il compositore di riferirsi ad una sintassisimile a quella di LATEX

Il programma Aleph egrave una versione estesa di Omega che permette di liberarsidi certi vincoli sui font usabili per un certo periodo anche ConTeXt poteva

58 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

usare Aleph come motore di composizione Lrsquoautore di Aleph Giuseppe Bilottaha lavorato anche al programma Lamed versione di Aleph LATEX-compatibileSembra perograve che anche questo programma sia stato assorbito in parte da luatexe quindi il suo sviluppo ulteriore sia stato interrotto Non deve perograve esseresottovalutata lrsquoimportanza di Aleph percheacute rappresenta il passaggio da pdftex aluatex Molte sue librerie sono state infatti incorporate in luatex

3115 Il programma X ETEX

Il programma X ETEX8 ora disponibile per tutte le piattaforme di elaborazione econ qualunque sistema operativo egrave una ulteriore estensione che riunisce moltedelle funzionalitagrave dei programmi precedentemente descritti ma in piugrave consentedi usare tutti i font presenti sul particolare calcolatore dove puograve essere impiegatopurcheacute questi siano font di tipo OpenType oppure TrueType oppure PostScriptNon occorrono estensioni particolari per lrsquouso di questi font percheacute il programmasfrutta i comandi del sistema operativo per gestire i font disponibili e quindi unadelle operazioni relativamente meno semplici da fare con LATEX per gestire i fontviene superata in un solo colpo Il programma non egrave ancora diffusissimo ma sisappia fin drsquoora che gestisce tutti i possibili font di qualunque alfabeto anchei sistemi di ideogrammi e gli alfabeti retrogradi come quello ebraico o quelloarabo Mescolare lingue diverse scritte con sistemi di caratteri completamentediversi diventa quindi una operazione semplicissima

Ovviamente per raggiungere questi scopi deve poter usare sia in entrata siain uscita la codifica UNICODE anche se ha delle funzioni che gli consentono diusare i font vettoriali del sistema TEX bencheacute non siano codificati in UNICODEin senso stretto

Esiste anche la versione LATEX di X ETEX e non egrave particolarmente difficileusarla pur di riferirsi al particolare manuale che lrsquoaccompagna se non altro perprendere nota delle differenze rispetto al sistema LATEX standard

Il passaggio dalla compilazione con LATEX a quella con X ELATEX egrave praticamenteindolore se non si richiamano font diversi da quelli standard del sistema TEXlo stesso file sorgente puograve venire composto sia con pdflatex sia con xelatex e siottengono gli stessi risultati I font usati di default sono quelli della collezioneComputer Modern semplicemente invocando il pacchetto fontspec ma senzaspecificare nessun font particolare viene usata la versione OpenType dei fontche fanno parte della collezione Latin Modern Si puograve usare anche il pacchettounicode-math per usare le particolaritagrave delle polizze di font che contengono anchei segni matematici codificati con la codifica UNICODE e si dispone di una sceltasterminata di segni matematici (oltre ad una miriade di altri segni) che possonomettere nellrsquoimbarazzo della scelta Anche altri programmi di impaginazionepossono accedere ai font matematici UNICODE ma solo il motore xetex riesce agestirli in modo impeccabile come fa anche pdflatex rispetto a qualunque altroimpaginatore o word processor

8X ETEX egrave scritto in modo palindromo (simmetrico rispetto alla mezzeria) e lascerebbepensare che si debba pronunciare anche in modo palindromo il suo creatore Jonathan Kewha generato il nome pensando a eXtended ε-TEX e quindi la prima lsquoXrsquo non egrave una lsquoχrsquo maiuscolama egrave davvero una lsquoXrsquo Il nome dovrebbe quindi essere pronunciato lsquoxetekhrsquo il suo creatorelo pronuncia allrsquoinglese lsquozitekrsquo ma a differenza di D Knuth non ne impone una pronunciaparticolare

311 ALTRI PROGRAMMI DI COMPOSIZIONE DEL SISTEMA TEX 59

3116 Il programma LuaTEXIl programma luatex egrave giagrave nato raggiungeragrave una forma beta stabile forse entro lafine del 2010 probabilmente entro il 2011 la versione 10 egrave prevista per il 2012luatex egrave giagrave usabile oggi ma in condizioni controllate percheacute egrave ancora soggettoa molte modifiche Questa volta si tratta veramente di un nuovo programmache accoglie in seacute diverse librerie C di pdftex (che a sua volta contiene sia texsia etex) diverse di Aleph (che giagrave contiene Omega) diverse di METAPOSTdiverse di kpathsea diverse del linguaggio di scripting lua alcune delle quali sonostate scritte apposta diverse del visualizzatore xpdf alcune dellrsquoeditor di fontFontForge

Il file sorgente di un documento da comporre segue il mark-up di ContTEXtmk iv e contiene sia il testo da comporre sia le istruzioni per comporlo malrsquointerprete luatex egrave in grado di svolgere anche altre funzioni che per esempiolrsquointerprete pdftex non egrave capace di eseguire Per esempio gli interpreti classici delsistema TEX non sono in grado di eseguire agevolmente calcoli con operandi innotazione floating point tipica di ogni programma di calcolo per questi interpretiun numero scritto nella forma -012345E02 egrave privo di senso pdftex egrave in gradodi usare il numero decimale -12345 (equivalente a quello indicato in notazionefloating point) solo come fattore di scala per le lunghezze Per poter eseguirecalcoli di ogni genere con numeri decimali eo floating point bisogna ricorrerea macro specializzate con pdftex mentre con luatex i calcoli si possono faretranquillamente Ciograve egrave possibile per il fatto che luatex contiene un certo numerodi librerie lua compresa la libreria matematica cosiccheacute con i comandi di luaeseguibili allrsquointerno di luatex si possono generare valori floating point giagrave fruttodi elaborazioni e passare questi numeri ai moduli di composizione di pdftexper usarli nel modo che il sottostante linguaggio pdf possa gestirli nel modorichiesto per lrsquooutput

Questo stesso principio vale per ogni altra caratteristica del testo da comporrevisto che le librerie di lua sono in grado di eseguire ogni operazione eseguibile daun calcolatore Perciograve luatex egrave in grado di elaborare file da comporre con alfabetistrani di eseguire ogni sorta di comandi condizionali in modo che lo stesso filesorgente possa produrre lrsquouscita in diversi formati possa gestire i font OpentTypetestuali e matematici in modo relativamente semplice eccetera Una delle cosedifficili da fare con pdftex se non impossibili ma facili da fare con luatex egrave quelladi caricare i pattern di sillabazione al momento dellrsquoesecuzione unrsquoaltra egrave quelladi generare al volo font virtuali e di crearne le relative informazioni metricheda usare durante la stessa esecuzione del programma Grazie alle librerie diAleph egrave possibile gestire le complicatissime legature che possono coinvolgereanche quattro o cinque glifi con alfabeti come lrsquoarabo che egrave molto calligraficoma anche come il font Zapfino uno script ldquolatinordquo fortemente calligrafico comeappare nella figura 22

Informazioni dettagliate si possono trovare nel sito del progetto LuaTEXhttpwwwluatexorg Siccome egrave giagrave stata presentata le versione lsquobetarsquo crsquoegraveda aspettarsi che LuaTEX diventi presto la soluzione di default per tutti o quasii compiti di composizione tipografica Un bel documento che traccia la storiadello sviluppo di ConTEXt e illustra le potenzialitagrave di luatex si puograve scaricare dahttpwwwpragma-adecomgeneralmanualsmkpdf

Capitolo 4

LATEX prime nozioni

41 IntroduzioneVerranno ora esposte le prime nozioni per usare LATEX e per comporre semplicidocumenti di solo testo Saragrave necessario mostrare esempi di codice sorgente cosigravecome saragrave necessario descrivere la lsquosintassirsquo di alcuni comandi

Il codice e i vari comandi saranno composti con il font della famiglia aspaziatura fissa per esempio si scriveragrave documentclass La grammatica prevedeche ogni comando possa avere degli argomenti il cui significato logico vieneindicato da un nome o da una semplice locuzione scritta in corsivo e racchiusafra parentesi lsquoacutersquo per esempio 〈classe〉 cosigrave che la sintassi del comandodocumentclass possa essere espressa cosigrave

documentclass[〈opzioni〉]〈classe〉

Con questo tipo di grammatica gli argomenti che obbligatoriamente devonoessere forniti ad un comando che richieda argomenti sono sempre racchiusi fraparentesi graffe mentre gli argomenti facoltativi opzionali se sono presentisono sempre racchiusi fra parentesi quadre Le parentesi acute della descrizionedella grammatica servono solo per questa descrizione e non vanno effettivamenteintrodotte quando il comando viene usato

42 Lrsquoinizio del file sorgenteIl comando documentclass egrave il primo che deve essere dato allrsquoinizio di un file(o nel primo file di un gruppo) da trattare con LATEX

La 〈classe〉 indica il tipo di documento che si intende comporre le classistandard del sistema sono book per comporre libri report per comporrerapporti lsquotecnicirsquo e article per comporre articoli esistono ovviamente altreclassi non standard ma queste tre sono le piugrave note sotto ogni aspetto

Per questo libro egrave stato usato il comando

documentclass[a4paper]book

e con questa dichiarazione iniziale si egrave detto che si vuole comporre un libro e chelo si vuole stampare su carta ISO-UNI A4 (210 mmtimes 297 mm)

61

62 CAPITOLO 4 LATEX PRIME NOZIONI

Lrsquoinizio del file sorgente prosegue facoltativamente con una serie di speci-ficazioni per rendere piugrave agevole la scrittura del file sorgente per scegliere lalingua o le lingue da usare nel documento per scegliere la codifica di default deifont da usare per comporre il documento per estendere i comandi di default conistruzioni non standard al fine di ottenere risultati particolari

Questo insieme di dichiarazioni preliminari si chiama preambolo non egrave ne-cessario che il preambolo contenga qualche cosa ma in pratica il preambolo inItalia e per i documenti in italiano contiene almeno la specificazione dellrsquousodella lingua italiana e probabilmente la specifica dei font a 256 caratteri checontengono le lettere accentate questo vale praticamente in ogni paese trannequando la lingua da usare egrave solamente lrsquoinglese che per LATEX egrave la lingua didefault e la sua scrittura non contiene lettere accentate Per questo libro la primaparte del preambolo comincia (nella versione 00 cominciava) cosigrave

documentclass[a4paper]bookusepackage[latin1]inputencusepackage[T1]fontencusepackage[italian]babelusepackageguit

authorGuITtitleIntroduzione allrsquoarte

della composizione tipografica con~LaTeXdateVersione 00

Come vi si puograve leggere in chiaro in questo preambolo si ordina a LATEX di usareun certo numero di pacchetti di estensione mediante il comando usepackagein ordine gli si ordina di usare il pacchetto per gestire lrsquoimmissione del testospecificandogli come opzione che i caratteri immessi corrispondono alla codificalatin1 poi gli si ordina di usare il pacchetto per gestire la codifica (encoding)per i font di composizione del documento mediante la sigla T1 che corrispondealla codifica standard di LATEX per poter usare i caratteri latini accentati (vedilrsquoappendice D) poi gli si comanda di usare il pacchetto babel per gestire linguediverse dallrsquoinglese e come opzione gli si specifica lrsquoitaliano poi infine gli siordina di usare il pacchetto guit per poter avere a disposizione il comando GuITper comporre la sigla del Gruppo degli Utilizzatori Italiani di TEX volendo sipotrebbe usare anche il logo del gruppo

I primi tre pacchetti sono pressocheacute obbligatori per ogni documento compostoin italiano e anche specificando un diverso nome della lingua per comporredocumenti in qualunque lingua diversa dallrsquoinglese si possono specificare anchediverse lingue mediante una lista di nomi (in inglese) separati da virgole e senzaspazi inclusi lrsquoultima delle quali egrave quella usata di default nel documento

Alcuni suggeriscono di usare la codifica utf8 invece di latin1 altri per lemacchine Windows suggeriscono la codifica ansinew altri ancora suggerisconola codifica latin9 per le macchine Macintosh lsquovecchiottersquo (con sistema operativoprecedente al Mac OS X) egrave preferibile la codifica applemac Questa questionedella codifica verragrave sviluppata piugrave avanti nellrsquoappendice D per ora si preferiscala codifica latin1 che va abbastanza bene per tutte le macchine ed egrave adatta perscrivere in italiano

Per il file di uscita lrsquoopzione T1 egrave senzrsquoaltro consigliabile per scrivere initaliano direi quasi obbligatoria Lrsquoalternativa egrave di non specificare nulla la

43 IL DOCUMENTO 63

differenza passeragrave inosservata al principiante ma dopo un porsquo di esperienzaanche il neofita si accorge che senza specificare nulla o specificando lrsquoopzioneOT1 le lettere accentate del file di ingresso o non appaiono per nulla oppureappaiono con gli accenti non perfettamente centrati sulla lettera di base e chele parole contenenti lettere accentate tendono a produrre una giustificazionepeggiore delle righe a causa del fatto che la divisione in sillabe egrave meno efficientecon la codifica OT1

Dopo la riga vuota (o bianca) si specifica che lrsquoautore di questo libro egrave il guItstesso si specifica il titolo del libro e invece della data si specifica il numerodella versione 00 egrave il valore iniziale ma egrave probabile che il documento che stateleggendo abbia un numero successivo che non sia cioegrave la versione lsquozeresimarsquo

Il preambolo di questo libro contiene altre cose che verranno descrittepiugrave avanti Finito il preambolo comincia la composizione vera e propria deldocumento

43 Il documentoCome egrave facile prevedere il documento comincia con

begindocument

e altrettanto prevedibilmente finisce con

enddocument

Tutto ciograve che egrave racchiuso fra queste due righe viene composto o viene usatoper controllare la composizione Egrave opportuno notare che tutto ciograve che nel filecompare dopo enddocument non viene stampato ma puograve essere usato perscrivere dei commenti relativi al file allo stato di avanzamento della composizionedel documento o ad altro che possa interessare il compositore per sua futuramemoria

In questo libro il documento comincia (nella versione 00 cominciava) cosigrave

begindocumentfrontmattermaketitletableofcontents

chapterPresentazione

dove il primo comando dichiara che si stanno componendo le pagine preliminariil secondo comando serve per comporre la pagina del titolo usando le scarneinformazioni circa lrsquoautore il titolo e la versione fornite nel preambolo il terzocomando ordina di comporre lrsquoindice generale la riga bianca non conta nientema ha un effetto visivo di separazione nel file sorgente in generale essa serve permarcare la fine di un capoverso ma in questo punto non ci sono capoversi dinessun genere da comporre

Il comando chapter serve per comporre un capitolo non numerato lrsquoa-sterisco indica che non si vuole la numerazione i capitoli non numerati noncompaiono nellrsquoindice a meno che non lo si voglia espressamente indicare me-diante comandi appositi che per ora esulano da questa descrizione Lrsquoargomentodi questo comando indica il titolo da dare a questo capitolo non numerato

64 CAPITOLO 4 LATEX PRIME NOZIONI

Come si vede il mark-up contiene unrsquounica piccola difficoltagrave per coloro chenon hanno nessun rudimento di inglese cioegrave che tutti i comandi sono in inglese ilbuono egrave che non contenendo abbreviazioni questi comandi sono immediatamentecomprensibili senza bisogno di ricorrere a elenchi di comandi criptici

44 La fine del documentoQuando il testo del documento egrave stato completamente introdotto nel file sorgentenon resta che dichiararne la fine chiudendo lrsquoambiente document mediante ilcomando

enddocument

Dopo questa riga e questa istruzione potete scrivere quello che volete ma nonverragrave mai composto questa egrave la dichiarazione che il documento egrave terminato nonche il file egrave terminato

45 Un semplice esercizioEsercizio 41 Copiate dal testo precedente i comandi illustrati a partire dal

comando documentclass dopo chapter introducete un qualun-que testo con capoversi sufficientemente lunghi magari un capoverso initaliano uno in inglese uno in francese (non dovrebbe essere troppo difficiletrovare dei libri o dei giornali che contengano delle frasi anche in linguastraniera da copiare se la propria fantasia e la propria conoscenza dellelingue straniere non fosse sufficiente) Alla fine del documento ricordatevidi dichiararne la fine sembra lapalissiano ma talvolta ce ne dimentichiamoSalvate il file scritto rigorosamente in formato testuale (meglio se facendouso di uno shell editor adatto allrsquouso di LATEX) per esempio con il nomeesempio1tex (il nome non egrave importante ma lrsquoestensione deve essere tex(o se proprio volete ltx)Lanciate LATEX se state lavorando con uno shell editor cliccate sullrsquoop-portuna icona se non state lavorando con un shell editor aprite la finestracomandi o terminal o xterm o console comunque si chiami sul vostrocalcolatore quella finestra nella quale potete inserire i cosiddetti comandiin linea scrivendo esplicitamente i nomi dei programmi da lanciare e delfile su cui devono operare in questo esempio scriverete

latex esempio1

senza specificare lrsquoestensione tex se aveste usato questa estensione oppureesplicitando lrsquoestensione diversa da tex che avete usato per il vostro fileSe nella finestra comandi o nellrsquoopportuna finestra dello shell editor com-paiono messaggi drsquoerrore rivedete il testo percheacute gli unici errori che poteteavere fatto consisterebbero in errori di battitura rivedete con particolareattenzione di aver usato le parentesi graffe dove ci vogliono le graffe leparentesi quadre dove ci vogliono le quadre e che tutte le parentesi siaccoppino correttamente cioegrave che ad ogni parentesi aperta segua una pa-rentesi chiusa dello stesso tipo come in matematica quindi apertandashchiusa

45 UN SEMPLICE ESERCIZIO 65

apertandashchiusa oppure aperta aperta ndash chiusa chiusa Questo egrave unodegli errori piugrave comuni inoltre i comandi devono essere scritti corretta-mente rivedetene lrsquoortografia ricordandovi che il correttore ortografico delvostro editor di solito non rileva e non corregge gli errori di battitura deicomandiSe le ultime righe di quel che compare nella finestra dicono che il file egravestato correttamente salvato nel file esempio1dvi1 lanciate il previeweradatto a quel formato potragrave essere YAP se avete il sistema MiKTEX saragravexdvi se state operando su Linux ecceteraAmmirate la vostra composizione sullo schermo e osservate se il testo ininglese eo in francese egrave stato composto bene in particolare se le cesure infin di riga sono corrette

Questo semplice esercizio vi permette di rilevare quanto sia semplice usareLATEX specialmente se state usando uno shell editor con questrsquoultimo potetepremere un solo pulsante che vi attiva lrsquoesecuzione di LATEX e se non ci sonoerrori vi attiva anche il previewer ad ogni successiva compilazione generalmentela finestra del previewer viene automaticamente aggiornata per cui avete unacompilazione quasi sincrona vi consiglio di compilare sovente e di verificaresovente sul previewer che non ci siano errori grossolani di composizione peresempio potreste aver dimenticato lrsquoeffetto di una dichiarazione e quindi potrestescoprire che da un certo punto in avanti state componendo con un font percheacutevi siete scordati di ripristinare il font precedente Questi sono errori grossolaniche conviene correggere prima di avere composto le settecento pagine del libroche volete scrivere

Gli errori piugrave fini vanno ricercati nelle successive revisioni delle bozze cheper fortuna non richiedono di stampare su carta una serie di bozze dietro lrsquoaltrama possono essere riviste direttamente sullo schermo

Va notato che molti sistemi TEX permettono di eseguire sia la forward searchsia la reverse search Queste operazioni prevedono una interazione fra lrsquoeditore il previewer in modo che azionando opportuni pulsanti dellrsquoeditor mentre ilcursore si trova in una certa posizione nel testo del file sorgente nella finestradel file compilato il cursore viene collocato se non nella stessa posizione qualcheparola piugrave avanti o piugrave indietro questa egrave la forward search Analogamente conil cursore nella finestra del previewer in una certa posizione cliccando su unapposito pulsante o premendo una opportuna combinazione di tasti il cursoresi sposta nella finestra dellrsquoeditor praticamente nella stessa posizione parolapiugrave parola meno questa egrave la reverse search Grazie a questa interazione fraeditor e previewer la correzione delle bozze procede spedita in quanto la finestradellrsquoeditor e quella del previewer sono praticamente sincronizzate

Egrave probabile che le parti di testo scritte in lingue diverse dallrsquoitaliano risultinoavere alcune parole divise in sillabe in fin di riga (la cesura) in modo erratoquesto dipende dal fatto che nel preambolo dellrsquoesempio si egrave invocato il pacchettoper il trattamento delle lingue e gli si egrave specificato di voler comporre in italianoEgrave ovvio che la sillabazione delle altre lingue egrave diversa da quella dellrsquoitaliano edegrave altrettanto ovvio che scrivendo in lingue diverse dallrsquoitaliano egrave possibile chealcune cesure risultino errate

1Se state usando TEXShop su un Mac il file viene salvato in formato PDF e il previewerviene aperto automaticamente

66 CAPITOLO 4 LATEX PRIME NOZIONI

Avete probabilmente usato specialmente per il francese molte lettere accen-tate avrete quindi sfruttato a fondo le possibilitagrave del vostro editor per inserire icaratteri accentati diversi da quelli che vi compaiono giagrave sulla vostra tastieracome per esempio lsquoocircrsquo di lsquodiplocircmersquo molto probabilmente il file composto visua-lizzato nel previewer vi mostreragrave il segno giusto Se state lavorando con unamacchina Windows questo fatto potrebbe non succedere e per ovviare a questoinconveniente sostituite la dichiarazione della codifica latin1 con la dichiarazioneansinew

46 I caratteri specialiPer scrivere il mark-up secondo LATEX bisogna ricordare che alcuni caratterihanno un significato speciale essi sono i seguenti

$ ^ _ amp ~

Il carattere chiamato backslash in inglese e barra inversa in italiano servecome iniziatore di un comando o istruzione come lo si preferisce chiamare unaistruzione egrave sempre costituita dal segno seguito senza spazi interposti da unastringa di lettere minuscole eo maiuscole e questa stringa termina quando egraveseguita da un carattere non alfabetico oppure una istruzione egrave formata dalcarattere seguito da un solo carattere non alfabetico oppure essa egrave costituitada un carattere attivo Nella lista di caratteri speciali illustrata sopra il carattere~ egrave un carattere attivo ed egrave lrsquounico carattere attivo definito da LATEX Se nepossono avere altri ma questo si puograve ottenere solo con pacchetti di estensioneper esempio con lrsquoopzione per la lingua italiana di babel il carattere egrave anchrsquoessoattivo come lo egrave per quasi tutte le lingue con la notevole eccezione dellrsquoinglese

I caratteri e sono molto particolari percheacute servono per delimitare gliargomenti dei comandi ma svolgono anche altre funzioni di cui si parleragrave inseguito

Il carattere svolge il compito di inizio di un commento come in tutti ilinguaggi di programmazione esiste una maniera per inserire dei commenti inlinea con il codice cosigrave anche con il sistema TEX lrsquoinserzione del carattere inuna riga ordina al motore TEX di trascurare tutti i caratteri che seguono sullastessa riga fino al primo carattere diverso da uno spazio (noto anche con il nomedi blank) nella riga successiva

Il carattere $ serve come lsquointerruttorersquo per ordinare a TEX di passare dalmodo testo al modo matematico o viceversa Quando lrsquointerprete TEX egrave in modotesto interpreta i caratteri del file drsquoentrata in una certa maniera mentre quandoegrave in modo matematico li interpreta come segni matematici Per esempio lo stessocarattere - in modo testo indica un trattino lsquo-rsquo mentre in modo matematicorappresenta il segno negativo lsquominusrsquo e si vede chiaramente che si tratta di duesegni diversi un analogo diverso modo di interpretare i caratteri del file dientrata viene usato da TEX per gestirli appropriatamente quando esso egrave in modomatematico

Il segno ^ viene usato solo in matematica e indica che quanto segue even-tualmente racchiuso fra parentesi graffe rappresenta un esponente o un apicePer usarlo come accento circonflesso nel testo basta farlo precedere da un back-slash per indicare un accento circonflesso in modo matematico bisogna usare ilcomando hat

47 ORGANIZZAZIONE DEI FILE SORGENTE 67

Il segno _ serve in matematica per indicare un deponente o un pedice Perusarlo come lsquounderscorersquo sia nel testo sia in matematica basta farlo precederedal backslash

Il segno amp serve per separare fra di loro i brevi testi o le brevi espressionimatematiche che entrano nelle celle di una tabella o di una matrice Precedutodal backslash serve per comporre lrsquo lsquoe commercialersquo ampersand in inglese

Infine il segno serve per marcare il numero progressivo dellrsquoelenco deiparametri nella definizione di una nuova istruzione preceduto dal backslash serveper comporre il number sign oppure hash sign in italiano chiamato gergalmentelsquocancellettorsquo

Per scrivere questi caratteri in un brano di testo senza che svolgano il lorocompito normale bisogna farli precedere dal backslash Ecco quindi che peresprimere un ammontare di denaro in dollari bisogna usare $ nel file sorgenteper cui $23499 diventa $23499 Analogamente per indicare un incrementodel 10 bisogna scrivere 10 nel file sorgente Lrsquounico carattere che non egravestampabile ricorrendo al segno egrave proprio questo stesso segno Per stamparlobisogna ricorrere al comando textbackslash Siccome nel testo questo segnonon si usa quasi mai il fatto di dover ricorrere ad un comando cosigrave lungo noncostituisce un vero problema Generalmente sono disponibili anche i comanditextasciicircum e textunderscore che servono per inserire i rispettivi segnidurante la composizione del testo Esistono anche i comandi textdollar etextasciitilde questrsquoultimo per inserire una tilde invece di uno spazio nonseparabile come avviene usando il carattere attivo ~

47 Organizzazione dei file sorgenteQuesto paragrafo andrebbe scritto in fondo a questo testo ma tutto sommato egravelogicamente connesso con il materiale esposto in questo capitolo Allrsquooccorrenzapotete saltarne la lettura salvo poi tornare a questo paragrafo quando dovretegestire la composizione di un lungo testo molto strutturato

I semplici esercizi che si possono fare ora e con il contenuto dei primi capitoliche seguono comportano la scrittura di brevi file sorgente che raramente unavolta compilati superano il paio di pagine di testo composto

Il file sorgente non richiede quindi una particolare organizzazione percheacutela sua suddivisione naturale in lsquopreambolorsquo e lsquocorpo del documentorsquo egrave piugrave chesufficiente

Tuttavia si immagini di dover scrivere un testo diviso in numerosi capitoliappendici indici e glossari prefazioni e postfazioni eccetera Il file sorgentemonolitico rischierebbe di diventare enorme senza contare lrsquoorganizzazione deifile da includere come i file che contengono le immagini o i file che convienepredisporre a parte percheacute richiedono una paziente messa a punto del contenuto

In questo caso lrsquoorganizzazione monolitica non egrave consigliabile e infatti LATEXoffre diversi strumenti per spezzare il file sorgente in file di minori dimensioniLATEX infatti offre due insiemi di comandi per questo scopo input e includeassieme a includeonly oltre al comando includegraphics per immettere nelflusso di informazioni da elaborare i file contenenti le immagini Per questrsquoultimocomando si veda piugrave avanti il capitolo 8 Per gli altri comandi la sintassi egrave laseguente

68 CAPITOLO 4 LATEX PRIME NOZIONI

input〈file〉

includeonly〈lista di file〉include〈file〉

Lrsquoinformazione 〈file〉 egrave solamente il nome di un singolo file mentre 〈lista difile〉 egrave un elenco di nomi di file separati da virgole senza spazi prima o dopo levirgole Per tutti i nomi dei file lrsquoestensione tex egrave sottintesa e quindi questa deveessere specificata se si vuole inserire un qualunque altro file con una estensionediversa compresa lrsquoestensione ltx che in teoria dovrebbe essere lrsquoestensione didefault per tutti i file scritti con il mark-up del linguaggio LATEX

Merita invece osservare che quasi tutti i sistemi operativi ammettono chei nomi dei file possano contenere anche spazi e altri punti oltre a quello chesepara lrsquoestensione Un nome di file del tipo parte IItex oppure parte2texegrave perfettamente lecito con moltissimi sistemi operativi Ma egrave altrettanto ovvioche gli spazi e i punti come anche gli altri caratteri che in TEX hanno unsignificato particolare ma sono leciti nei nomi dei file possono produrre guaiseri Si sconsiglia per esempio di usare la linea ribassata (underscore in inglese)ldquo_rdquo percheacute per TEX quel segno indica i pedici in matematica ed egrave illegale inmodo testo Oggi spesso questo segno viene gestito correttamente se egrave presentein un nome di file tuttavia se ne sconsiglia lrsquouso e se si desidera avere unldquoallontanamentordquo visivo delle parti del nome del file si preferisca il trattinonormale -

Perograve si evitino assolutamente i punti se ci si riferisce al file parte2tex il〈file〉 potrebbe essere parte2 ma TEX potrebbe scambiare 2 per lrsquoestensione elamentarsi che non trova il file

Si potrebbe racchiudere il nome del file fra doppi apici parte II oppureparte2 ma crsquoegrave il problema che il doppio apice in quasi tutte le lingue invocatecon babel italiano compreso egrave definito come carattere attivo cioegrave egrave definito inmodo che si comporti come una istruzione non come un segno grafico per questomotivo nel momento in cui si vuole leggere un file esterno mediante input oinclude lrsquoistruzione corrispondente al doppio apice viene eseguita e TEX siritrova confuso e non sa che cosa leggere cosiccheacute emette dei messaggi drsquoerroreche talvolta sono difficili da associare al file che TEX non riesce a leggere

Ci si ricordi infine che in molti sistemi operativi le lettere maiuscole eminuscole sono ldquodiverserdquo al fine di identificare e distinguere i file Per i sistemiUNIX e Linux i file PartePrimatex e parteprimatex sono due file diversinei sistemi Windows quei due nomi identificano lo stesso file Sui Macintosh ladistribuzione MacTEX egrave fatta in modo tale da non distinguere le lettere maiuscoleda quelle minuscole nei nomi dei file sebbene il sistema operativo le distinguabenissimo

Per evitare gli inconvenienti menzionati sopra si consiglia di usare nomi di fileformati da una sola parola alfanumerica senza punti e spazi inclusi seguita dallaestensione opportuna possibilmente scritti completamente con lettere minuscoleIn questo modo non bisogna ricorrere a nessun espediente per gestire questinomi durante lrsquoesecuzione di una compilazione ma ancora piugrave importante nonsi generano inconvenienti quando si scambiano i propri file con collaboratori chelavorano con altre macchine eo con altri sistemi operativi La portabilitagrave egrave unbene prezioso che gli utenti del sistema TEX apprezzano moltissimo

47 ORGANIZZAZIONE DEI FILE SORGENTE 69

Il comando input ordina a LATEX di leggere il 〈file〉 specificato il flusso didati che viene letto viene inserito nel flusso complessivo del documento comese fosse inserito esattamente al posto di input che questo 〈file〉 contenga unasola parola o un intero paragrafo o capitolo non ha nessuna importanza il suocontenuto viene letto incondizionatamente ed elaborato immediatamente

Questo comportamento del comando input si mantiene anche se egrave contenutodentro altri file a loro volta inseriti nel flusso di elaborazione dati mediantealtri comandi input o anche comandi include non esiste un limite teoricoal numero di file che possono essere inclusi richiamandosi in catena salvo lalimitazione ovvia delle dimensioni finite della macchina di elaborazione e delnumero di canali di ingresso che possono essere aperti contemporaneamentequesto numero massimo di canali egrave di sedici unitagrave ma alcuni di questi canali sonogiagrave impegnati per altre funzioni di servizio per cui si puograve contare su una decina dicanali effettivamente disponibili questo numero dovrebbe essere sovrabbondanterispetto a qualunque esigenza insolita di immissioni a catena mediante comandiinput

Il gioco di includeonly e include egrave invece piugrave complesso innanzi tuttoin assenza di includeonly e della sua 〈lista di file〉 include agisce quasicome input lrsquounica differenza egrave che prima di elaborare il contenuto del fileincluso LATEX ordina di eseguire un salto di pagina cioegrave di iniziare una nuovapagina Questo permette di capire subito che include non egrave usabile al postodi input proprio a causa di questo salto di pagina Il comando include egravepiugrave adatto per includere un intero capitolo (che comincia sempre su una paginanuova) piuttosto che per immettere semplicemente del testo da elaborare nelpunto in cui compare il comando

Ma tutto diventa piugrave interessante e utile se si fanno agire includeonlyed include assieme infatti in questo modo include include solo i 〈file〉 checompaiono nella 〈lista di file〉 perograve se lrsquoargomento di include egrave un 〈file〉 chenon compare nella 〈lista di file〉 include ordina a LATEX di leggere solo il fileaux cioegrave il file 〈file〉aux che contiene le informazioni relative ai riferimentiincrociati e al contenuto dei vari contatori che interessano LATEX cosiccheacute anchese il file 〈file〉tex non viene elaborato le sue informazioni utili sono tenute inconto e tutto procede agli effetti esterni come se il file fosse stato elaborato Vada seacute che se questo file 〈file〉tex non egrave mai stato elaborato prima non esistenemmeno il file 〈file〉aux ma include non protesta percheacute si limita a scrivereun avvertimento nel file log privo di qualunque conseguenza sul buon fine dellacompilazione

Un file incluso mediante include puograve contenere a sua volta comandi inputi file dei quali a loro volta Va da seacute perograve che se un file non viene incluso percheacuteil suo nome non compare nella 〈lista di file〉 non vengono elaborati nemmeno glieventuali file subalterni richiamati dai comandi input

Al contrario di input i comandi include non possono essere innestatilrsquouno dentro lrsquoaltro ed egrave del tutto logico che sia cosigrave

Tutto questo puograve sembrare oltremodo complicato mentre un esempio per-mette di rendersi conto che non solo egrave semplicissimo ma egrave anche molto logicoSi pensi ad un lungo saggio che si ritiene di suddividere nei file seguenti

1 premessetex che contiene le informazioni per comporre tutto il materialeiniziale dallrsquoocchiello fino alla prefazione inclusi tutti gli indici che sivogliono creare

70 CAPITOLO 4 LATEX PRIME NOZIONI

2 introduzionetex che contiene un capitolo introduttivo

3 statodellartetex che contiene una dettagliata descrizione della situa-zione pertinente prima della teoria esposta nel saggio

4 motivazionitex dove si descrivono le motivazioni che portano allo svi-luppo della nuova teoria descritta nel saggio

5 sviluppotex dove si discute lo sviluppo della nuova teoria

6 risultatitex dove si discutono i risultati alla luce della nuova teoria

7 confrontitex dove si discutono e si confrontano i nuovi risultati conquelli che si potevano ottenere applicando le teorie precedenti Magariquesto file contiene anche le considerazioni conclusive

8 appendicitex dove si raccolgono tutte le informazioni dalla biblio-grafia alle informazioni accessorie allo sviluppo della nuova teoria finoeventualmente agli indici analitici e ai glossari

Si procederagrave allora a predisporre un lsquomaster filersquo nuovateoriatex nel qualesi mettono solo il preambolo e i comandi per lrsquoinclusione dei vari file

file nuovateoriatexdocumentclass[〈opzioni〉]〈classe〉〈preambolo che contiene tutti i comandi per i pacchetti da usare le definizioni dinuovi comandi e si conclude con〉includeonlypremesseintroduzionestatodellartemotivazionisvilupporisultaticonfrontiappendici Qui finisce il preambolo e comincia il documentobegindocument

includepremessemainmatterincludeintroduzioneincludestatodellarteincludemotivazioniincludesviluppoincluderisultatiincludeconfrontibackmatterincludeappendici

47 ORGANIZZAZIONE DEI FILE SORGENTE 71

enddocument

Se si elabora il file nuovateoriatex cosigrave come egrave presentato sopra LATEXlegge se ci sono tutti i file dichiarati come argomento ai vari comandi includeMa si osservi come egrave scritta la 〈lista di file〉 che costituisce lrsquoargomento diincludeonly ogni file della lista egrave scritto allrsquoinizio di una nuova riga la qualeegrave terminata dal segno di commento al fine di non lasciare spazi spuri nella listaIn questo modo crsquoegrave la possibilitagrave di inserire un segno di commento allrsquoinizio dellerighe che contengono i nomi dei file che non desideriamo elaborare

Allrsquoinizio della scrittura dellrsquointero documento si cominceragrave presumibilmentecon il file premessetex si metteragrave allora un segno di commento davanti al nomedi tutti gli altri file quando poi si passa a scrivere introduzionetex si toglie ilsegno di commento davanti al nome di questo file e lo si inserisce invece davantial nome di premessetex Via via che si procede si compone un file alla volta ese ne controlla il risultato attraverso il programma di visualizzazione adeguatoal tipo del file di uscita Ogni volta la compilazione ha luogo su un solo file edegrave particolarmente veloce nello stesso tempo i riferimenti incrociati a elementicontenuti nei capitoli precedenti vengono tutti risolti correttamente Anche lebozze se le si volesse stampare hanno le pagine numerate correttamente Soloalla fine a lavoro quasi terminato si tolgono tutti i segni di commento davantiai nomi dei file della 〈lista di file〉 e si esegue la composizione dellrsquointero testo inun unico file di uscita

Se lo shell editor lo richiede (e quasi tutti gli shell editor lo richiedono) bisognasolo specificare allrsquoeditor il nome del lsquomaster filersquo affincheacute quando si compila elrsquoeditor ha aperto solo uno dei file da includere esso possa lanciare LATEX sullsquomaster filersquo e non sul file correntemente aperto

Questo tipo di organizzazione del file drsquoentrata diventa piugrave comodo da usarevia via che si acquisisce pratica e se ne apprezzano i vantaggi

Vale la pena di sottolineare che la divisione in capitoli da includere con ilcomando include va benissimo con i capitoli Il comando input serve per gliscopi indicati ma lrsquoesperienza insegna a servirsene con il massimo profitto indiverse altre circostanze per esempio lo scrivente ha sviluppato lrsquoabitudine dicomporre grandi tabelle in file a se stanti da includere con input Questo mododi procedere deriva dalla constatazione che le grandi tabelle sono complesse dacomporre ed egrave facile commettere errori Inserite in file a se stanti e creato ununico piccolo lsquomaster filersquo che ordini la lettura solo del file contenente la tabellaogni tabella viene composta e corretta per suo conto e non crsquoegrave pericolo che gravierrori particolarmente difficili da individuare fermino la compilazione di ungrosso file in un punto che non ha nulla a che vedere con la posizione dellrsquoerrorecome ahimegrave talvolta succede

Dalla versione 009 anche i file che compongono questo testo sono gestiticon il meccanismo di include e includeonly Questrsquoultimo collocato nelpreambolo egrave formato cosigrave

includeonlypreliminaripresentazionesincrona-asincronanozioni-tipografiainstallazioneprime-nozionitesti-speciali

72 CAPITOLO 4 LATEX PRIME NOZIONI

tabellefigureimportazione-figurematematica1matematica2caratteripresentazionifilologiaclassibibtexindici-glossarinuovi-comandimicrogiustificazionelayoutortografiapdfarchiviabiledocumentazionesimbologiadivisione-sillabesintassi-riepilogoindanalitico

e come si vede ogni capitolo numerato o non numerato e ogni appendice vieneelencata nella 〈lista di file〉 nella speciale maniera descritta sopra Successivamenteil corpo del testo egrave formato dal blocco

begindocumentfrontmatterincludepreliminariincludepresentazionemainmatterpagestyleheadingsincludesincrona-asincronaincludenozioni-tipografiaincludeinstallazioneincludeprime-nozioniincludetesti-specialiincludetabelleincludefigureincludeimportazione-figureincludematematica1includematematica2includecaratteriincludepresentazioniincludefilologiaincludeclassi

48 GESTIONE DEGLI ERRORI 73

includebibtexincludeindici-glossariincludenuovi-comandiincludemicrogiustificazioneincludelayoutincludeortografiaincludepdfarchiviabile

cleardoublepage

appendix

includedocumentazioneincludesimbologiaincludedivisione-sillabeincludesintassi-riepilogoincludeindanaliticoenddocument

I comandi frontmatter e mainmatter specificano lrsquoinizio dei preliminari elrsquoinizio del corpo del testo e sono presenti anche se gli eventuali file che dovrebberovenire inclusi di fatto non lo sono percheacute eliminati con segni di commento dallalista dei file di includeonly invece di backmatter si egrave usata solo la specificaappendix che ordina che da quel punto in poi i capitoli sono da trattare comeappendici non si egrave usato backmatter percheacute chi ha predisposto la classe bookha ritenuto che le appendici facessero parte del corpo del testo e non delle partifinali

48 Gestione degli erroriPurtroppo talvolta i file sorgente contengono errori in queste circostanze lrsquoin-terprete TEX procede ad interpretare il flusso di informazioni che via via leggedai file sorgente fincheacute riesce a dare loro un qualche significato poi si fermacon un messaggio drsquoerrore Quasi sempre si tratta di un comando scritto con unerrore di ortografia sullo schermo appare allora il messaggio drsquoerrore con unaqualche frase esplicativa e la linea dove TEX si egrave bloccato scritta lsquospezzatarsquo incorrispondenza dellrsquoultimo oggetto che TEX ha letto Se si tratta di un erroredi ortografia in un comando appare appunto il comando errato alla fine delprimo moncone della riga presentata e la riga del flusso drsquoentrata non ancorasottoposto al processo di interpretazione appare subito sotto Il primo monconedi riga egrave anche preceduto dal numero della riga del file sorgente

Le risposte possibili ad un messaggio drsquoerrore sono quelle di introdurre unadelle seguenti lettere x h i e eventualmente seguita da un stringa di testox serve per terminare subito la compilazione successivamente si puograve dare il

comando allo shell editor di collocare il cursore nella riga contenente lrsquoerrorein modo da poterlo correggere e riprendere la compilazione

h serve per chiedere aiuto i messaggi informativi che LATEX fornisce sulloschermo talvolta permettono di capire di che errore si tratti talvolta

74 CAPITOLO 4 LATEX PRIME NOZIONI

sono troppo generici e bisogna armarsi di pazienza e di ragionamentoinvestigativo per trovare che cosa crsquoegrave che non va

e serve per uscire dal programma di compilazione e di ritornare immediatamenteallo shell editor con il cursore giagrave messo nella riga con lrsquoerrore questaoperazione ha esito felice se crsquoegrave una perfetta integrazione fra compilatore eshell editor ma talvolta non riesce percheacute lo shell editor non egrave configuratocorrettamente

i serve per introdurre una stringa di testo al posto dellrsquoultimo oggetto lettodallrsquointerprete per esempio se si scrivesse iput TEX si fermerebbe dopoaver letto questo oggetto a cui non sa dare un significato percheacute egrave uncomando scritto male al prompt di TEX (costituito da un punto interroga-tivo) basta scrivere iinput e poi premere il tasto di invio TEX sostituisceinput allrsquooggetto ignoto iput e procede nella compilazione si noti cheil file sorgente non egrave stato toccato da questa operazione quindi lrsquoerroreesiste ancora e bisogna correggerlo bisogna cioegrave ritornare allo shell editore chiedergli di collocarsi alla riga che contiene lrsquoerrore

Se si ha lrsquoaccortezza di lanciare LATEX abbastanza sovente ogni possibile erroreanche difficilissimo da trovare puograve trovarsi solo nel testo sorgente introdotto frala penultima e lrsquoultima volta che si egrave eseguita la compilazione se questa vieneeseguita sovente il testo introdotto egrave relativamente corto e quindi risulta piugravefacile trovare lrsquoerrore

Per errori piugrave complessi bisogna ricorrere a pacchetti oppure a comandispecifici la cui discussione egrave fuori luogo in questo capitolo introduttivo desti-nato alle prime nozioni Per comprendere meglio certi errori e certi avvisi dicattiva composizione (Overfull hbox e altri avvisi simili) conviene leggerelrsquoappendice E Il trattamento degli errori piugrave gravi e gli strumenti disponibilicon il sistema TEX sono trattati nellrsquoappendice F

Capitolo 5

LATEX testi speciali

I testi speciali sono quelli che devono venire composti in modo diverso dal restodel testo in particolare sono speciali quei testi da comporre interrompendo iltesto principale o quelli da scrivere in parti della pagina diverse da quelle dovesi troverebbero normalmente

I testi che interrompono la composizione normale si chiamano fuori testo oin inglese in display I brani di testo fuori sequenza sono generalmente costituitidalle note a piegrave di pagina da quelle a margine e da quelle alla fine del documentoo di una suddivisione importante del documento come per esempio alla finedei capitoli

Anche la matematica puograve essere composta in display ma di questo si parleragravepiugrave avanti

51 Che cosa sono i testi in displayI testi in display sono quelli lsquoin vetrinarsquo quelli messi in evidenza in qualche modoo per il loro contenuto o per quello che rappresentano si distinguono

bull le citazioni

bull gli elenchi

bull le descrizioni

bull le liste bibliografiche

e verranno ora descritti una categoria alla volta

52 Le citazioniLATEX offre tre ambienti per mettere in evidenza dei testi citati

1 le citazioni brevi

2 le citazioni lunghe

3 le poesie

75

76 CAPITOLO 5 LATEX TESTI SPECIALI

521 Le citazioni breviUna citazione di un testo altrui che consista in poche parole puograve essere eseguitaallrsquointerno del testo racchiudendola fra virgolette Le virgolette si indicano coni segni lsquolsquo per le virgolette aperte e con rsquorsquo per le virgolette chiuse Siccome latastiera italiana manca del tasto per segnare lrsquoaccento grave bisogna appoggiarsialle potenzialitagrave dello shell editor per inserire questi segni mancanti oppurebisogna conoscere i codici immissibili nel file drsquoentrata mediante apposite combi-nazioni di tasti Le virgolette caporali sono piugrave facili da immettere quando si usala codifica T1 per il font di composizione del documento (vedi lrsquoappendice D)basta scrivere ltlt per i caporali aperti e gtgt per i caporali chiusi si ottiene laquo raquoSolo che i caporali sono usati meno frequentemente per le citazioni ma sono usatipiugrave frequentemente per i dialoghi1

A questo proposito va segnalato che le virgolette aperte ldquo e quelle chiuse rdquosono asimmetriche in tipografia non bisogna mai usare le doppie virgolettesimmetriche anche se noti word processor lo fanno Per questo motivo nonbisogna mai usare il segno per inserire le virgolette Anzi con lrsquoopzione perlrsquoitaliano di babel il segno egrave attivo e quindi si comporta come una istruzionePrecisamente se esso egrave seguito da un qualunque carattere alfabetico esso inserisceun punto di possibile cesura e questa possibilitagrave torna molto comoda per indicaredove andare a capo in quelle parole composte dove si vuole evitare la sillabazionefonetica prescritta dalle grammatiche e dalle norme tipografiche ma si vuoleusare la sillabazione etimologica se si scrive macroistruzione le due parolemacro e istruzione sono trattate separatamente ai fini della sillabazione mauna eventuale cesura viene esplicitata allrsquooccorrenza anche fra la lsquoorsquo e la lsquoirsquo se lacesura in fin di riga lo richiede Allo stesso modo consente di andare a capodopo la barra quando si scrive per esempio modulazionedemodulazione cheviene composto come modulazionedemodulazione in fin di riga modulazionedemodulazione

Tornando alle virgolette siccome con la tastiera italiana lrsquoinserzione dellevirgolette aperte egrave problematica se si usa babel con lrsquoopzione per lrsquoitalianobasta scrivere per ottenere ldquo2

522 Le citazioni lungheLe citazioni piugrave lunghe anche consistenti in qualche riga di testo ma complessi-vamente senza superare la lunghezza di un capoverso possono essere evidenziatemediante lrsquoambiente quote in questo modo

beginquote〈breve testo da citare〉endquote

1Con lrsquoopzione italian di babel indipendentemente dalla codifica usata per il testo di uscitasi puograve ricorrere alle funzionalitagrave del carattere attivo e scrivere lt per i caporali aperti egt per i caporali chiusi Inoltre si puograve scrivere per sfruttare le potenzialitagrave del carattereattivo che introduce in questo caso le doppie virgolette alte aperte ldquo come se si fossero potutiintrodurre da tastiera due accenti gravi in sequenza

2In generale sarebbe preferibile usare sempre una tastiera con il layout dei tasti corrispon-dente alla versione USA e poi usare le comode personalizzazioni per scrivere le lettere accentatemancanti dalla tastiera USA La stessa tecnica serve anche per le lettere maiuscole (ldquoEgrave arrivatordquoinvece di ldquoErsquo arrivatordquo) e per inserire gli accenti che non si usano in italiano ma sono necessariper scrivere anche solo poche parole in altre lingue

52 LE CITAZIONI 77

Il testo viene composto mettendolo in evidenza fra margini ristretti rispetto altesto normale

Per le citazioni piugrave lunghe si usa lrsquoambiente quotation la sintassi egrave

beginquotation〈testo lungo da citare〉endquotation

La differenza rispetto allrsquoambiente quote egrave che in questo caso la citazione puogravecontenere diversi capoversi questi a loro volta oltre ad essere composti framargini ristretti vengono composti con la prima riga rientrata del solito rientrodi capoverso

I versi sono una forma particolare di citazione nel senso che viene compostoun testo scritto da altri tuttavia si tratta di un testo strutturato in versi e strofelrsquoambiente verse richiede che alla fine di ogni verso sia indicato lrsquoordine di andarea capo mediante il comando e che ogni strofa sia trattata come un capoversocioegrave che venga lasciata una riga bianca fra una strofa e la successiva

La sintassi egrave la seguente

beginverse〈verso〉〈verso〉 〈verso〉

〈verso〉〈verso〉 〈verso〉endverse

Ecco per esempio il famoso sonetto di Dante Alighieri3

Tanto gentil e tanto onesta parela donna mia quandrsquoella altrui salutachrsquoogne lingua deven tremando mutae li occhi no lrsquoardiscon di guardareElla si va sentendosi laudarebenignamente drsquoumiltarsquo vestutae par che sia una cosa venutada cielo in terra a miracol mostrareMostrasi sirsquo piacente a chi la mirache darsquo per li occhi una dolcezza al coreche rsquontender non la puorsquo chi no la provae par che de la sua labbia si movauno spirito soave pien drsquoamoreche va dicendo a lrsquoanima Sospira

3La mancanza di accenti sostituiti con gli apostrofi di troncamento sembra che sia unacaratteristica dei manoscritti piugrave accreditati Probabilmente quegli apostrofi marcano la cadutadi una o piugrave lettere finali (aferesi) rispetto alla versione latineggiante umiltarsquo al posto diumiltade sirsquo al posto di sic puorsquo al posto di puote

78 CAPITOLO 5 LATEX TESTI SPECIALI

viene composto con i comandi seguenti

beginverseTanto gentil e tanto onesta parela donna mia quandrsquoella altrui salutachrsquoogne lingua deven tremando mutae li occhi no lrsquoardiscon di guardare

Ella si va sentendosi laudarebenignamente drsquoumiltarsquo vestutae par che sia una cosa venutada cielo in terra a miracol mostrare

Mostrasi sirsquo piacente a chi la mirache darsquo per li occhi una dolcezza al coreche rsquontender non la puorsquo chi no la prova

e par che de la sua labbia si movauno spirito soave pien drsquoamoreche va dicendo a lrsquoanima Sospiraendverse

Un tipo di citazione o di messa in evidenza di un testo egrave quello che serve perpresentare brani di programmazione come succede spesso in questo libro Questotipo di composizione richiede che nessun carattere sia speciale che il font usatosia tale da rendere chiaro il fatto che il testo citato egrave un brano di programmazionedove gli spazi e le rientranze possono avere un importanza particolare dove lelinee troppo lunghe vanno a capo ma senza dividere in sillabe nessuna parola edove anche gli lsquoa caporsquo devono essere rispettati senza preoccuparsi di giustificareil testo Questo risultato si ottiene ricorrendo allrsquoambiente verbatim4 Lrsquounicacosa che non si puograve riprodurre egrave proprio costituito dalla stringa di caratteriendverbatim percheacute questa stringa nella sua interezza serve per riconoscerela fine dellrsquoambiente Questo testo abbonda di esempi di brani di programmazioneil piugrave recente egrave quello usato per rappresentare il codice della poesia citata pocosopra La sintassi dellrsquoambiente verbatim egrave la seguente

beginverbatim〈testo da riprodurre verbatim〉endverbatim

53 Gli elenchiGli elenchi sono generalmente di tre tipi (a) in linea con il testo come questoelenco (b) in display con gli oggetti elencati distinti per mezzo di una numerazioneper cui questo tipo di elencazione si chiama enumerazione e (c) in display doveperograve ogni elemento egrave evidenziato mediante un simbolo grafico ma questo simbolonon egrave distintivo del particolare oggetto elencato per cui questa egrave una elencazionesemplice

4La parola latina lsquoverbatimrsquo significa lsquoalla letterarsquo

53 GLI ELENCHI 79

531 Le elencazioni in lineaLe elencazioni in linea sono quasi sempre composte come lrsquoelencazione precedentedove il segno distintivo di ogni oggetto elencato egrave una lettera in corsivo racchiusafra parentesi tonde Lrsquoelenco non egrave particolarmente evidenziato e la presenza dellelettere corsive egrave lrsquounico elemento che fa capire che si tratta di una elencazionenon egrave frequente ma queste lettere corsive possono essere usate per richiamarelrsquooggetto identificato nel qual caso devono essere riportate anche le parentesicome quando ci si vuol riferire al caso (a)

532 Le enumerazioniGli elenchi numerati sono molto piugrave strutturati anche in relazione alla possibilitagravedi annidare un elenco dentro un altro Le enumerazioni vengono realizzatericorrendo allrsquoambiente enumerate con la seguente sintassi

beginenumerateitem[〈opzione〉] 〈oggetto testuale〉item[〈opzione〉] 〈oggetto testuale〉 endenumerate

Perciograve

1 Lrsquoenumerazione viene composta dentro un ambiente enumerate come erafacile prevedere

2 ogni oggetto da enumerare viene introdotto con il comando item

3 se per questo comando non si specifica nessuna opzione (e quindi non siscrivono nemmeno le parentesi quadre) lrsquooggetto viene numerato con unlsquonumerorsquo progressivo

4 questo lsquonumerorsquo puograve essere qualsiasi oggetto appartenente ad un sequenzaordinata di oggetti tipicamente

(a) dei numeri arabi o(b) dei numeri romani oppure(c) delle lettere dellrsquoalfabeto latino minuscolo o(d) delle lettere dellrsquoalfabeto latino maiuscolo

La classe del documento specifica quale tipo di numerazione viene eseguitoper ogni livello di enumerazione annidata Di default LATEX con la suaclasse book usa i numeri arabi le lettere minuscole i numeri romani lelettere maiuscole

5 Se invece viene espressa lrsquoopzione fossrsquoanche una opzione lsquonullarsquo allorainvece del lsquonumerorsquo viene scritta lrsquoopzione perciograve

si puograve fare riferimento simbolico agli elementi numerati per davvero manon si puograve fare riferimento per esempio a questo elemento percheacute non egravenumerato

80 CAPITOLO 5 LATEX TESTI SPECIALI

6 Come tutte le elencazioni esse possono essere annidate una dentro lrsquoaltrama non si possono usare piugrave di tre elencazioni annidate una dentro lrsquoaltradentro una elencazione principale non tanto percheacute la cosa sia tecnicamenteimpossibile ma percheacute la struttura diventerebbe troppo complicata e illettore ne rimarrebbe confuso

533 Le elencazioni sempliciLe elencazioni semplici sono in display come le enumerazioni ma ogni elementoelencato egrave solamente contrassegnato con un simbolo grafico uguale per tutti glielementi dello stesso livello di elencazione Lrsquoambiente si chiama itemize e vale lasintassi seguente

beginitemizeitem[〈opzione〉] 〈oggetto testuale〉item[〈opzione〉] 〈oggetto testuale〉 enditemize

Perciograve

bull il primo livello di elencazione viene contrassegnato con dei pallini neri ma

se viene espressa una opzione come in questo caso il contrassegno egrave quantoviene specificato come opzione

bull Le elencazioni semplici possono essere annidate lrsquouna dentro lrsquoaltra e ilcontrassegno cambia secondo il livello di annidamento per esempio

ndash in questo secondo livello il contrassegno egrave costituito da un lineatomedio

ndash si possono cambiare questi contrassegni agendo sulle definizioni chesono contenute nel file di classe

bull In ogni caso si ricorre a queste elencazioni semplici quando gli oggetti daelencare non sono logicamente sequenziali

534 Alcune osservazioni relative alle elencazioniNei paragrafi precedenti si sono descritte alcune elencazioni la domanda ricor-rente egrave la seguente Quale tipo di punteggiatura viene usato fra un elemento e ilsuccessivo

Per le elencazioni in linea si suppone che gli oggetti elencati siano brevi frasicostituite al massimo da un solo periodo quindi il punto e virgola sembra essereil segno di interpunzione piugrave appropriato Se non fosse cosigrave allora sarebbe megliocostruire una elencazione in display

Per le elencazioni in display semplici o numerate la punteggiatura puograveancora essere un punto e virgola se gli oggetti sono brevi frasi o frazioni difrase ma se sono costituiti da periodi completi o da piugrave periodi egrave necessariousare la punteggiatura che si userebbe anche senza evidenziare lrsquoelencazione Nonnecessariamente ogni oggetto elencato deve finire con la stessa punteggiatura

54 LE DESCRIZIONI 81

anzi negli elenchi precedentemente usati a titolo di esempio si sono terminatialcuni oggetti senza punteggiatura ma con una congiunzione

Nelle enumerazioni egrave possibile inserire il comando label dentro gli oggettia cui si vuole fare riferimento in modo simbolico per esempio si puograve inserirenellrsquoultimo elemento dellrsquoenumerazione usata come esempio

item labeleleannidatoCome tutte le elencazioni

cosigrave che qui vi si possa fare riferimento mediante lrsquouso dei comandi ref epageref scrivendo

lrsquoelemento~refeleannidato nella pagina~pagerefeleannidato

ottenendo ldquolrsquoelemento 6 nella pagina 80rdquo

54 Le descrizioniLe descrizioni possono essere viste come elencazioni particolari nelle quali ilsegno distintivo non egrave neacute un numero neacute un simbolo ma egrave una parola o unalocuzione di cui si fornisce una descrizione o una spiegazione nel resto del testodellrsquooggetto la sintassi dellrsquoambiente description egrave la seguente

begindescriptionitem[〈locuzione〉] 〈descrizione〉item[〈locuzione〉] 〈descrizione〉 enddescription

Bencheacute la 〈locuzione〉 sembri facoltativa essa in effetti egrave logicamente necessa-ria percheacute non avrebbe nessun senso dare una 〈descrizione〉 di nulla

Questo ambiente egrave particolarmente indicato per dare una serie di definizionioppure per scrivere un glossario

Esercizio 51 Continuando lrsquoesercizio 41 si cominci un nuovo capitolo senzaspecificare lrsquoasterisco ma dandogli un titolo a piacere si componga poi unambiente description nel quale si danno le definizioni di avanzamento diriga di corpo e di interlinea

55 Le liste bibliograficheLe liste bibliografiche sono dei particolari elenchi numerati dove i riferimentibibliografici sono etichettati con numeri che possono essere richiamati simbolica-mente nel corso del testo Va subito detto che qui si parla dellrsquoelenco bibliograficostandard cioegrave quello che si ottiene utilizzando lrsquoambiente thebibliography con lasintassi seguente per comporre lrsquoelenco dei riferimenti bibliografici

beginthebibliography〈stringa〉bibitem[〈richiamo〉]〈chiave〉 〈riferimento bibliografico〉bibitem[〈richiamo〉]〈chiave〉 〈riferimento bibliografico〉 endthebibliography

82 CAPITOLO 5 LATEX TESTI SPECIALI

dove

〈stringa〉 egrave una stringa di caratteri generalmente una stringa di cifre ma ilsignificato numerico egrave irrilevante serve allrsquoambiente per prendere le misureper la lunghezza del campo da lasciare sul margine sinistro dellrsquoelenco alfine di incolonnare correttamente tutte le voci della bibliografia

〈richiamo〉 egrave una parola o una stringa di lettere e numeri che permette diidentificare il particolare riferimento bibliografico allrsquointerno del testo oltreche nel campo identificativo dellrsquoelenco se non si specifica niente (nemmenole parentesi quadre) il riferimento di default egrave costituito da un numeroprogressivo allrsquointerno dellrsquoelenco racchiuso fra parentesi quadre Questo egraveil modo di citazione piugrave frequente negli articoli scientifici che si riferisconoa scienze nelle quali si fa un grande uso del linguaggio matematicoNelle discipline umanistiche egrave piugrave frequente il modo di citazione lsquoautore-annorsquo per cui il 〈richiamo〉 egrave appunto costituito dal cognome del (primo)autore seguito dallrsquoanno di pubblicazione dellrsquoopera citata e in caso diambiguitagrave da una lettera progressiva Ecco allora che la possibilitagrave di sta-bilire con precisione il nome dellrsquoautore e lrsquoanno di pubblicazione dellrsquooperacitata diventa un ottimo modo per specificare il 〈richiamo〉

〈chiave〉 egrave il nome simbolico da usare sia nellrsquoeventuale database bibliografico siacome argomento obbligatorio del comando bibitem sia come argomentodel comando cite che serve per citare il lavoro allrsquointerno del documento

Lrsquoambiente thebibliography nella classe book provvede a iniziare una nuovapagina a scrivere una intestazione di capitolo non numerato ma intitolataBibliography oppure Bibliografia oppure a seconda della lingua di default

Se questo ambiente contenesse una voce del genere

bibitemLamp94 textscLeslie LamporttextitA document preparation system --- LaTeX ---Userrsquos guide and reference manual Addison WesleyReading Mass 2nd ed 1994

nella bibliografia apparirebbe una voce[12] Leslie Lamport A document preparation system mdash LATEX mdash Userrsquos guideand reference manual Addison Wesley Reading Mass 2nd ed 1994e lrsquoopera citata verrebbe citata con citeLamp94 per ottenere nel testo lsquo[12]rsquo

Se invece nellrsquoelenco bibliografico si fosse scritto

bibitem[textscLamport-94]Lamp94 textscLeslie LamporttextitA document preparation system --- LaTeX ---Userrsquos guide and reference manual Addison WesleyReading Mass 2nd ed 1994

nella bibliografia apparirebbe una voce[Lamport-94] Leslie Lamport A document preparation system mdash LATEX mdashUserrsquos guide and reference manual Addison Wesley Reading Mass 2nd ed1994e lrsquoopera citata sempre con la stessa chiave citeLamp94 apparirebbe neltesto come lsquo[Lamport-94]rsquo

56 I RIFERIMENTI INCROCIATI 83

Facendo ricorso a pacchetti di estensione da richiamare con usepackage nelpreambolo egrave possibile comporre questi elenchi in modo stilisticamente diversonon solo ma egrave possibile estrarre da un database bibliografico le informazioni neces-sarie mediante il programma BIBTEX cosigrave da avere un risultato compositivamenteomogeneo oltre che semanticamente completo

56 I riferimenti incrociatiCome si egrave visto nei paragrafi precedenti egrave possibile riferirsi simbolicamente aqualunque oggetto numerato e alla pagina in cui compare se questo tipo diinformazione egrave sensato

I comandi per ottenere questi riferimenti sono i seguenti e soddisfano allasintassi qui di seguito indicata

label〈chiave〉ref〈chiave〉pageref〈chiave〉

bibitem[〈riferimento〉]〈chiave〉cite[〈informazioni aggiuntive〉]〈chiavi〉

La 〈chiave〉 egrave una etichetta simbolica possibilmente mnemonica (compostacon qualunque sequenza di caratteri esclusa la virgola) con la quale si vuoleidentificare un oggetto Come si egrave visto negli esempi precedenti io compongo lachiave con una breve sigla che ricorda il tipo di oggetto per esempio fig peruna figura ese per un esempio cap per un capitolo equ per una equazioneeccetera seguito da un nome mnemonico che mi ricordi di che cosa si tratti

Il comando label con la sua 〈chiave〉 va inserito nel file sorgente dopo ilcomando che assegna un numero allrsquooggetto i comandi ref e pageref conle loro chiavi vanno scritti nel testo nei punti dove si vuole fare riferimentoallrsquooggetto una precauzione utile dal punto di vista tipografico egrave quella di farprecedere i comandi ref e pageref da una tilde che in LATEX ha il significato dispazio non separabile cosigrave che durante la composizione il motore TEX non spezzila riga o non cambi pagina fra il nome che precede il riferimento e il riferimentostesso Si scriveragrave per esempio nellrsquoequazione~refequPitagora cosigrave cheTEX non spezzi la riga fra la parola lsquoequazionersquo e il numero che esso sostituiragravealla 〈chiave〉 lsquoequPitagorarsquo

Facendo uso del pacchetto di estensione varioref (da richiamare mediante ilcomando usepackage nel preambolo) egrave possibile avere i riferimenti incrociaticompleti di numero e pagina in locuzioni del tipo lsquola figura 513 nella paginaseguentersquo oppure lsquola figura 514 nella pagina 215rsquo a seconda della distanza delrichiamo dal punto in cui lrsquooggetto compare nel documento

Per i riferimenti bibliografici il comando bibitem come si egrave visto consentedi definire una chiave e facoltativamente un richiamo Il comando cite accettanon solo una chiave ma diverse chiavi separate da virgole si potrebbe per esem-pio scrivere citelamp94TexComp e ritrovarsi scritto nel testo lsquo[12 13]rsquo cioegravela citazione di entrambe le opere identificate mediante i loro numeri progressiviallrsquointerno dellrsquoelenco bibliografico

84 CAPITOLO 5 LATEX TESTI SPECIALI

Il comando cite accetta anche un argomento facoltativo (che ha sensoquando si cita una sola chiave) per indicare un posto preciso dellrsquoopera citataper esempio se si scrive cite[cap~4]Lamp94 si ottiene lsquo[12 cap 4]rsquo

Il vantaggio che questo metodo di citazione simbolico offre egrave che in casodi correzioni per esempio cancellazioni o inserimenti di parte del testo non egravenecessario correggere tutte le citazioni ma ci pensa LATEX a correggere tuttii valori che risultano modificati bisogna solo lanciare LATEX un paio di voltefincheacute nei messaggi finali non compare piugrave il messaggio che lsquoalcuni riferimentipotrebbero essere stati modificatirsquo

57 Altri testi in displayTalvolta egrave necessario mettere in evidenza separandolo dal resto del testo unbrano composto senza giustificazione o meglio solo allineato a sinistra oppuresolo allineato a destra oppure centrato

Per questo scopo sono disponibili i tre ambienti flushleft flushright e center Si ricorda che il testo giustificato solo a sinistra egrave piugrave facilmente leggibile di

quello giustificato solo a destra e del testo in stile epigrafico con le righe centrateTuttavia per i titoli per esempio lo stile con le righe centrate egrave quasi sempre piugraveindicato che non lo stile giustificato solo da un lato o giustificato da entrambi ilati

Questi tre ambienti compongono il testo che essi racchiudono nella manieraspecifica di ciascuno ma tutti e tre hanno la caratteristica che il testo cosigravecomposto risulta distanziato sopra e sotto mediante lrsquoequivalente di una rigabianca (vuota)

In certe circostanze non egrave questo quello che si desidera ma si vuole cambiaretemporaneamente il tipo di giustificazione senza lasciare spazi bianchi prima odopo il testo cosigrave composto

Esistono i tre comandi (dichiarazioni) raggedright raggedleft e natu-ralmente centering che ottengono lo scopo desiderato siccome non esiste uncomando justify che permetta di tornare al testo giustificato da entrambi ilati egrave necessario limitare lrsquoeffetto di questi tre comandi mediante lrsquouso di ungruppo un gruppo egrave una parte di testo intercalato a comandi racchiuso (a) fradue parentesi graffe oppure (b) fra i comandi bgroup ed egroup oppure(c) fra i comandi begingroup e endgroup oppure (d) allrsquointerno di ambientidelimitati da begin e end

Tuttavia bisogna ricordare che lrsquointerprete TEX esegue la composizione diciascun capoverso e quindi la sua giustificazione specifica solo alla fine delcapoverso stesso per indicare esplicitamente la fine di un capoverso allrsquointernodi un gruppo egrave meglio fare uso del comando par (iniziale di paragraph che ininglese indica il capoverso) che specifica proprio la fine di un capoverso Perciogravescrivere

Andando lungo la strada egli vide una iscrizioneche annunciava[1ex]centering Qui visse Torquato Tasso durante il suosoggiorno del 1605[1ex] ma la cosa gli sembravastrana poicheacute ricordava che il Tasso era vissuto nel~rsquo500

egrave sbagliato percheacute produce

57 ALTRI TESTI IN DISPLAY 85

Andando lungo la strada egli vide una iscrizione che annunciavaQui visse Torquato Tasso durante il suo soggiorno del 1605ma la cosa gli sembrava strana poicheacute ricordava che il Tasso era vissutonel rsquo500

senza centrare il messaggio lapidarioInvece scrivendo

Andando lungo la strada egli vide una iscrizioneche annunciavaparvspace1excentering Qui visse Torquato Tasso durante il suosoggiorno del 1605parvspace1exnoindent ma la cosagli sembrava strana poicheacute ricordava che ilTasso era vissuto nel~rsquo500

si ottiene correttamente

Andando lungo la strada egli vide una iscrizione che annunciavaQui visse Torquato Tasso durante il suo soggiorno del 1605

ma la cosa gli sembrava strana poicheacute ricordava che il Tasso era vissutonel rsquo500

Nellrsquoesempio precedente oltre allrsquoillustrazione dellrsquouso di centering e delcomando par vengono usati diversi altri comandi non ancora descritti ma chevale la pena di commentare qui

serve per andare a capo sia nel mezzo di un testo sia quando si compongo-no matrici matematiche o tabelle questo comando accetta un argomentofacoltativo racchiuso fra parentesi quadre che indica quanto spazio verti-cale lasciare dopo essere andati a capo [1ex] vuol dire lsquovai a capo elascia uno spazio verticale pari a 1 ex cioegrave pari allrsquoaltezza di una lettera lsquoxrsquonel font correntersquo Esiste anche la variante che continua ad accettarelrsquoargomento facoltativo dove lrsquoasterisco impone a TEX di non andare apagina nuova con la nuova rigaVale la pena di sottolineare che serve per andare a capo alterando lagiustificazione di quella riga allrsquointerno di un capoverso egrave errato lasciareuna riga vuota e cominciare una altro capoverso con noindent che soload un occhio distratto sembra produrre lo stesso effetto egrave altrettantoerrato al contrario cominciare un altro capoverso scrivendo indentpercheacute si produce la rientranza (indent in inglese) ma non si cominciaaffatto un nuovo capoverso Con certi stili grafici eo certi ambienti larientranza potrebbe essere nulla con certi altri stili grafici eo ambientila separazione fra i capoversi non egrave indicata dalla rientranza ma da unavisibile interlineatura

vspace serve per inserire uno spazio verticale dopo la fine di un capoverso odetto in termini piugrave tecnici quando TEX egrave in modo verticale Lrsquoargomentoindica quanto spazio lasciare siccome questo spazio viene perso allrsquoiniziodi una pagina la forma asteriscata vspace consente di mantenere lospazio specificato anche allrsquoinizio della pagina

86 CAPITOLO 5 LATEX TESTI SPECIALI

CBeccari

ndashpi

ctur

e testo precedente

Figura

Didascalia 1 Uso di centering

Testo seguente

testo precedente

Figura

Didascalia 2 Uso di center

Testo seguente

Figura 51 Effetto dellrsquouso del comando centering rispetto allrsquoambiente center

noindent serve per evitare il rientro allrsquoinizio di un capoverso

Attenzione Sarebbe desiderabile non fare mai uso dei comandi appena de-scritti questi non sono parte del mark-up ma del disegno grafico sonocomandi prescrittivi non comandi descrittivi Lrsquoautorecompositore do-vrebbe attenersi al mark-up descrittivo la maggior parte del tempo Egravecostretto a ricorrere a questi lsquosotterfugirsquo quando la situazione non prevedequalche ambiente che gli consenta di ottenere la composizione nella manieradesiderata Piuttosto egli farebbe meglio a definire un nuovo ambiente conle caratteristiche desiderate ma questo egrave un argomento che verragrave vistomolto piugrave avanti

Nota bene Al contrario egrave opportuno usare centering allrsquointerno degli am-bienti figure e table per centrare lrsquoinclusione dellrsquoillustrazione o della tabellada flottare non occorre servirsi di par percheacute quegli ambienti contengonogiagrave tutte le informazioni per poter gestire questa situazione Se si usasseinvece lrsquoambiente center per centrare lrsquoillustrazione o la tabella questo am-biente inserirebbe dellrsquoulteriore spazio bianco prima e dopo la sua aperturae la sua chiusura per cui lrsquooggetto flottante risulterebbe poi precedutoe seguito da troppo spazio bianco eo la didascalia risulterebbe troppospaziataInfatti lrsquouso di centering per specificare la collocazione orizzontale dellefigure e delle tabelle allrsquointerno dei loro rispettivi ambienti flottanti consentedi evitare lrsquoinserimento di spazi bianchi in eccesso per lrsquouso dettagliato diquesti ambienti flottanti si rimanda al paragrafo 72 qui li si simuleragrave permostrare la differenza fra il risultato ottenibile con il comando centeringrispetto a quello ottenibile con lrsquoambiente center in entrambi i casi vengonocollocati due filetti orizzontali per marcare la differente spaziatura verticaleCome si vede nella figura 51 lrsquooggetto (rappresentato in questo esempioda un semplice rettangolo) viene inserito fra il testo precedente e il testoseguente insieme alla sua didascalia distanziato dagli spazi previsti dalfile di classe quando si usa centering Quando invece si usa lrsquoambientecenter questo inserisce ulteriori spazi e lrsquooggetto e la sua didascalia risultanocontornati da troppo spazio bianco

58 LE NOTE 87

58 Le noteLATEX consente di scrivere due tipi di note quelle a piegrave di pagina e quellecomposte nel margine della pagina Per scrivere note raccolte assieme alla finedi un capitolo di un articolo di un libro bisogna ricorrere al pacchetto esternoendnotes5

581 Le note in calcePer scrivere una nota in calce basta usare il comando footnote con la seguentesintassi

footnote[〈richiamo〉]〈testo〉

Il 〈richiamo〉 di default egrave un numero collocato in posizione di apice talvolta puograveessere un simbolo come un asterisco una spada una doppia spada eccetera lanumerazione delle note normalmente ricomincia da 1 con lrsquoinizio di un nuovocapitolo ma la cosa dipende dalla classe del documento Il 〈testo〉 della nota nonrichiede commenti salvo che si tratta di un lsquoargomento mobilersquo e quindi certicomandi lsquofragilirsquo non possono essere usati allrsquointerno del 〈testo〉 Il lettore non sipreoccupi dei comandi fragili e degli argomenti mobili sono cose abbastanza rarequando si scrive un documento lsquonormalersquo in questo testo che descrive i comandidi LATEX alcune cose non sono lsquonormalirsquo proprio percheacute si tratta di comandiperciograve quando alcuni comandi comparivano nelle note si egrave dovuto ricorrere atrucchetti vari per poterli scrivere alla lettera senza farli eseguire

Le note sono testi speciali percheacute vengono composte e trattenute in memoriafino a quando non viene composta la pagina nella quale esse devono comparireLATEX fa il possibile affincheacute le note non siano spezzate fra pagine successive eche ognuna sia collocata al piede della pagina nella quale compare il richiamoEgrave abbastanza raro che LATEX non riesca a sistemare la nota in calce senzaspezzarla ma puograve succedere Non egrave colpa di LATEX ma del testo nel quale lanota egrave richiamata e del testo della nota Talvolta cambiando lrsquouno o lrsquoaltro ilproblema si risolve da solo

Egrave possibile attribuire una etichetta ad una nota mediante il comando labele a questa etichetta si puograve fare riferimento per citare la stessa nota in puntidiversi del testo

Allrsquooccorrenza si puograve fare uso di un comando separato per inserire il richiamoe per scrivere il testo i comandi seguono la sintassi seguente

footnotemark[〈richiamo〉]footnotetext[〈richiamo〉]〈testo〉

nei quali il 〈richiamo〉 egrave facoltativo se si fa uso dellrsquoargomento facoltativo sia inquesti comandi sia in footnote non viene incrementato il contatore delle notee quindi lrsquoattribuzione di una etichetta mediante label non funziona

Questi due comandi sono prescrittivi non descrittivi percheacute scendono neldettaglio di come fare apparire le note nel testo composto Questi comandi anchese in generale egrave bene che siano evitati tuttavia possono essere necessari quandoil procedimento normale di composizione di LATEX non egrave adeguato al compito

5Non si confonda il pacchetto endnotes formato dal file endnotessty con il fileendnotetex che egrave un file di estensione per Plain TEX non per LATEX

88 CAPITOLO 5 LATEX TESTI SPECIALI

Per esempio non egrave possibile mettere note dentro alle tabelle esistono pacchettidi estensione per superare questi limiti ma se non capita sovente di inserire notenelle tabelle puograve valere la pena di usare footnotemark specificando il richiamodentro una casella della tabella e di usare footnotetext con lo stesso richiamodopo il comando caption per comporre la didascalia

Pertanto le note da attribuire alle tabelle vanno composte come mostrato nelseguente modello Ci si ricordi di specificare una 〈larghezza〉 adatta a contenerela tabella Nello stesso tempo non si perda di vista la possibilitagrave di specificaregli argomenti facoltativi sia di footnotemark sia di footnotetext percheacuteessi devono venire composti con lo stile che LATEX usa allrsquointerno delle minipage(richiami mediante apici letterali in corsivo) ma che essendo lrsquoambiente tabularcomposto dentro una scatola potrebbero non venire stampati correttamenteEsistono ovviamente pacchetti che consentono di eseguire quanto esemplificatoqui in modo lsquoautomaticorsquo ma anche Lamport consiglia nel suo manuale diricorrere allrsquouso di footnotemark e footnotetext proprio in questi casibegintablebeginminipage〈larghezza〉centeringbegintabular amp amp amp amp footnotemark endtabularcaption〈didascalia〉label〈chiave〉footnotetext〈testo della nota〉endminipageendtable

582 Le note marginaliSe i margini del documento sono abbastanza ampi questi possono accogliere lenote a margine talvolta chiamate in latino marginalia Il comando per produrleegrave marginpar e segue la sintassi

marginpar[〈nota di sinistra〉]〈nota di destra〉

Anche le note marginali sono testi che vengono trattenuti in memoria fincheacute lapagina in cui compaiono non viene completamente composta a seconda del tipodi documento della classe dello stile grafico dellrsquoampiezza dei margini la notamarginale puograve venire collocata nel margine esterno o in quello interno se perograveviene collocata a destra del testo viene composto il testo della 〈nota di destra〉altrimenti il testo della 〈nota di sinistra〉 se egrave stato specificato altrimenti iltesto della 〈nota di destra〉 viene usato anche per la 〈nota di sinistra〉

Si osservi che se si compone a due colonne le note relative alla colonna disinistra vengono collocate a sinistra della colonna e corrispondentemente lenote relative alla colonna di destra vengono collocate a destra della colonnaComponendo ad una colonna le note vengono collocate sempre nel margineesterno quindi a destra del testo nelle pagine di destra e a sinistra del testo nellepagine di sinistra Sembra complicato ma a pensarci bene egrave del tutto logico Egrave

58 LE NOTE 89

vero che con lrsquoapposito comando reversemarginpar questo comportamentopuograve venire scambiato ma in generale si suppone che questa scelta sia fatta nelfile di classe e il compositore non debba preoccuparsene

Le note marginali vengono composte in colonne strette con una giustezza cheraramente supera i 40mm con una giustezza cosigrave piccola egrave possibile che la com-posizione a pacchetto (giustificata da entrambi i lati) produca una composizionecon ampi spazi bianchi fra le parole e con parole difficili da dividere in sillabeche sporgono fuori dalla giustezza In questi casi sarebbe meglio specificare perla nota di destra una composizione giustificata solo a sinistra basta usare ilcomando raggedright Per le note di sinistra per una questione di simme-tria sarebbe quindi desiderabile specificare un testo giustificato solo a destramediante il comando raggedleft La cosa egrave evidentemente possibile se si fauso dellrsquoargomento facoltativo descritto nella sintassi di marginpar Tuttaviala lettura di un testo giustificato solo a destra puograve risultare meno agevole di untesto giustificato solo a sinistra ecco percheacute pur essendo possibile raramente sispecifica una composizione giustificata solo a destra anche se i testi delle notemarginali sono solitamente molto brevi e quindi non sono faticosi da leggereanche se fossero giustificati solo a destra

Le note marginali sono collocate nel margine che compete loro mantenendo Questa egrave una nota marginaleche si sviluppa su piugrave righela loro prima riga allineata con la riga del testo alla quale esse si riferiscono

se due note marginali compaiono troppo ravvicinate e ci fosse il rischio che si Questa egrave una seconda notamarginale troppo vicina allanota precedente

sovrappongano allora LATEX provvede a spostare in basso le note che potrebberointerferire con le note precedenti assicurando uno spazio di separazione speci-ficato nel file di classe come si vede nelle due note qui a margine la secondaspecificata nella riga dove si dice ldquocompaiono troppo ravvicinate rdquo risultatroppo ravvicinata alla prima ed egrave stata leggermente abbassata

Le note marginali vengono usate spesso negli scritti letterari specialmentese si tratta di note brevi e frequenti egrave raro incontrare note marginali in scrittitecnici

Capitolo 6

LATEX tabelle

61 IntroduzioneLe tabelle sono oggetti strutturati contenenti testo o formule o espressionimatematiche formati da un certo numero di celle ordinate in senso orizzontale ein senso verticale queste celle possono essere riquadrate mediante filetti spessociascuna colonna di celle ha una prima cella che descrive il contenuto delle cellesottostanti

Comporre questo insieme di celle egrave sempre stato un grosso problema anche aitempi in cui la composizione veniva eseguita a mano ora i vari word processore text processor consentono di lavorare con piugrave facilitagrave ma senzrsquoaltro la com-posizione delle tabelle specialmente delle tabelle ben composte richiede moltapazienza e molta preparazione iniziale se il compositore si fa uno schizzo anchegrossolano della tabella sa giagrave in anticipo dove sorgeranno i maggiori problemie quindi sa predisporre gli accorgimenti adeguati

Qui si parleragrave di tabelle lsquotestualirsquo quelle con contenuto prevalentementematematico si chiamano in generale matrici e verranno viste nel capitolo 10

Distinguiamo subito due casi cioegrave quello delle tabelle che non occupanopiugrave di una pagina e le tabelle lunghe che occupano piugrave pagine Le tabellelsquobrevirsquo nonostante la loro brevitagrave sono oggetti ingombranti perciograve egrave meglio cheil programma di elaborazione del testo LATEX nel nostro caso sposti la tabellanel documento composto dove crsquoegrave sufficiente posto per collocarla talvolta nellastessa pagina o persino nel punto stesso dove egrave stata definita piugrave spesso allrsquoinizioo alla fine della pagina successiva talvolta alla fine di un capitolo o dellrsquointerodocumento

Per consentire questo trattamento LATEX deve conservare in memoria latabella composta per poi scaricarla nel file di uscita alla prima occasione buona

Questo modo di procedere implica due cose

1 le tabelle devono essere numerate per farvi riferimento mediante i loronumero

2 le tabelle troppo grandi possono bloccare la memoria percheacute vi vengonotrattenute in quanto LATEX non trova mai lrsquooccasione buona per scaricarlenel file di uscita

91

92 CAPITOLO 6 LATEX TABELLE

Il fatto che le tabelle siano numerate e che debbano essere fatte lsquoflottarersquo finoal punto piugrave idoneo richiede un ambiente specifico di lsquoflottaggiorsquo e implicano uncomando per eseguire la didascalia anche una semplice didascalia composta dalsolo titolino

62 Come far flottare una tabellaLrsquoambiente di flottaggio si chiama table e richiede la seguente sintassi

begintable[〈codici di posizionamento〉]〈didascalia e tabella vera e propria〉endtable

I 〈codici di posizionamento〉 sono i codici con i quali viene descritto il modo dicollocare la tabella nel testo di default questi codici sono t b e p i codici sonocomplessivamente i seguenti

h poni la tabella qui (here in inglese)t poni la tabella in testa alla pagina (top)b poni la tabella al fondo della pagina (bottom)p poni la tabella in una pagina di soli oggetti flottanti (page) poni la tabella dove prescritto dagli altri codici di posizione senza

essere troppo rigoroso con i parametri di posizionamento

Per maggiori dettagli si veda il paragrafo 72 dove sono illustrati vari metodiper controllare la posizione degli oggetti flottanti e dove si descrivono alcunipacchetti che consentono di modificare gli ambienti standard e di definire nuoviambienti flottanti

63 Le didascalieQuanto segue vale per tutte le didascalie anche per quelle delle figure Didefault seguendo la tradizione nordamericana LATEX chiede che la didascaliasia posta sotto alle tabelle in Europa viene invece raccomandato di inserire ladidascalia prima della tabella a cui si riferisce Invece per le figure sia la tradizioneeuropea sia quella nordamericana preferiscono la didascalia dopo lrsquoillustrazioneOvviamente questa egrave una affermazione generale visto che le didascalie possonotrovare diverse posizioni a seconda del tipo di illustrazioni o di tabelle e del tipodi didascalie

La didascalia viene composta mediante il comando caption secondo laseguente sintassi

caption[〈didascalia breve〉]〈didascalia〉label〈etichetta〉

La 〈didascalia〉 egrave il testo a cui egrave stato premesso il titolino lsquoTabellarsquo o lsquoTablersquo olsquoTableaursquo o a seconda della lingua in uso seguito dal numero progressivodella tabella questa parte viene inserita di default il resto della didascalia puograveanche essere omesso ma non sarebbe una buona idea Il resto della didascaliapuograve essere composto con un titolo seguito da un capoverso descrittivo Questo

64 COME COMPORRE LA TABELLA VERA E PROPRIA 93

capoverso puograve mancare se crsquoegrave viene terminato con il punto fermo Se non crsquoegrave iltitolo viene terminato senza punto fermo come tutti i titoli

Non egrave il caso che lrsquointera 〈didascalia〉 vada a finire nellrsquoelenco delle tabelle almassimo ci andragrave il titolo ma non certo il capoverso descrittivo Ecco quindiche la 〈didascalia breve〉 torna utile per essere inserita nellrsquoelenco delle tabel-le eventualmente abbreviando ulteriormente il titolo inserito nella didascaliacompleta

Lrsquo〈etichetta〉 introdotta con il comando label serve per poter fare riferi-mento al suo numero (assegnato automaticamente da LATEX) mediante un nomesimbolico egrave opportuno quindi che lrsquo〈etichetta〉 sia scelta con qualche criteriomnemonico in modo che essa richiami il contenuto della tabella piuttosto cheunrsquoaltra caratteristica qualsiasi Nel corso del testo la tabella viene richiamataper numero mediante lrsquouso del comando ref eo per numero di pagina mediantelrsquouso del comando pageref secondo la sintassi seguente

ref〈etichetta〉pageref〈etichetta〉

Egrave opportuno fare uso del segno di legatura ~ per non staccare il riferimento dellatabella dal nome che lrsquoaccompagna si scriveragrave pertanto

la tabella~reftabpopolazione mostra che

per riferirsi alla tabella etichettata con tabpopolazione con la certezza chenon potragrave avvenire un fine riga o un fine pagina fra la parola lsquotabellarsquo e il suoriferimento numerico

Per modificare lo stile compositivo delle didascalie esiste lrsquoottimo pacchettodi estensione caption mediante il quale si possono modificare tutti i possibiliparametri che presiedono alla loro composizione

64 Come comporre la tabella vera e propriaLa tabella vera e propria viene composta mediante lrsquoambiente tabular che richiedela seguente sintassi

begintabular[〈posizione〉]〈descrittori delle colonne〉〈prima cella〉amp〈seconda cella〉amp 〈prima cella〉amp〈seconda cella〉amp 〈prima cella〉amp〈seconda cella〉amp endtabular

Crsquoegrave anche la versione asteriscata tabular che obbedisce alla sintassi seguente

begintabular〈larghezza〉[〈posizione〉]〈descrittori delle colonne〉〈prima cella〉amp〈seconda cella〉amp 〈prima cella〉amp〈seconda cella〉amp 〈prima cella〉amp〈seconda cella〉amp endtabular

94 CAPITOLO 6 LATEX TABELLE

Descrittore Spiegazione

l Cella col contenuto allineato a sinistrac Cella con il contenuto centrator Cella con il contenuto allineato a destrap〈larghezza〉 Cella contenente un blocco di testo

giustificato e largo 〈larghezza〉| Filetto verticale〈espressione〉 -espressionevline Filetto verticale da sostituire a | dentro

una -espressione〈numero〉〈descrittori〉 Ripetizione di 〈numero〉 volte la stessa

sequenza di 〈descrittori〉

Tabella 61 Descrittori delle colonne per le tabelle

Per lrsquoambiente tabular si vedano i dettagli nel paragrafo 65 qui per oraconcentreremo lrsquoattenzione sullrsquoambiente tabular ma ricordiamo che quasi tuttoquello che verragrave detto qui vale anche per le tabelle dellrsquoambiente tabular

641 I descrittori delle colonneI descrittori delle colonne sono esposti nella tabella 61

Mentre tutto il resto sembra ovvio egrave necessario spiegare che cosa sia una-espressione questa egrave una sequenza di comandi di descrittori di elementitestuali da mettere fra due celle adiacenti al posto del normale spazio fra lecolonne Anche il descrittore | potrebbe essere visto come un separatore fracolonne adiacenti (e lo egrave) ma non egrave una -espressione questa sostituisce anchelo spazio di separazione fra le celle adiacenti e quindi fra le colonne Per esempiosi puograve notare che la tabella 61 ha i filetti orizzontali che sporgono un pocofuori dei limiti della cella di sinistra e di destra Generalmente lrsquoeffetto esteticoegrave gradevole ma potrebbe essere necessario eliminare tale spazio serve allorainserire come primo descrittore di colonna e come ultimo descrittore di colonnauna -espressione lsquovuotarsquo

Esercizio 61 Una -espressione potrebbe essere usata per ripetere come separa-tore di colonna uno stesso segno in una tabella che riportasse una colonnacon valori numerici fratti e si volesse incolonnare questi numeri in modo cheil separatore decimale sia incolonnato fra tutte le celle indipendentementedal numero delle cifre prima e dopo la virgola si potrebbe usare la virgolacome testo allrsquointerno della -espressione spezzando la colonna in duecolonne adiacenti e incolonnare la parte intera in una colonna allineata adestra e la parte decimale in una colonna allineata a sinistraPredisporre una tabella con una colonna di testi descrittivi per ogni rigae una lsquocolonnarsquo di numeri decimali incolonnata sulle rispettive virgoledecimali

Lrsquoesercizio precedente egrave utile per capire il meccanismo per fortuna il pacchettodi estensione array consente giagrave mediante un nuovo descrittore di incolonnare inumeri fratti sulla base del loro separatore decimale Le estensioni che questo

64 COME COMPORRE LA TABELLA VERA E PROPRIA 95

Opera BranoI promessi sposi Quel ramo del lago di Como che volge a mezzogiorno

tra due catene non interrotte di monti tutto a senie a golfi a seconda dello sporgere e del rientrare diquelli vien quasi a un tratto

Tabella 62 Tabella la cui colonna di destra egrave specificata con p80mm

pacchetto consente sono tali e tante che converrebbe richiamarlo costantementeper ogni documento da comporre Si rinvia alla documentazione di quel pacchettoper maggiori dettagli

Il descrittore p come giagrave detto permette di comporre il contenuto di unacella come un piccolo capoverso giustificato a pacchetto (da entrambi i lati)dato che le celle hanno una larghezza limitata e certamente minore di quelladellrsquointero testo talvolta egrave consigliabile specificare raggedright oppure menofrequentemente raggedleft Ci si ricordi che il comando serve sia perandare a capo in un capoverso sia per terminare la riga di una tabella Bisognaquindi stare attenti quando si usa il descrittore p per quale scopo si usa ilcomando se serve per andare a capo dentro il capoverso si evita ogni fastidiose si usa al suo posto newline che non consente opzioni ma che certamentenon egrave ambiguo Si osservi infine nella tabella 62 lrsquoallineamento dei contenutidelle celle quando si usi il descrittore p

642 Il raggruppamento delle celleLe tabelle possono avere alcune celle adiacenti raggruppate a formare unrsquounicacella LATEX di per seacute consente di raggruppare le celle solo orizzontalmentemediante il pacchetto di estensione multirow egrave possibile raggrupparle ancheverticalmente ma il pacchetto egrave per cosigrave dire ancora in evoluzione per cuibisogna supplire a certe piccole manchevolezze con un porsquo di tentativi e dicorrezioni successive In generale perograve una tabella ha un aspetto piugrave professionalese non contiene celle raggruppate verticalmente

Si usa il comando multicolumn con la sintassi seguente per raggrupparealcune celle orizzontalmente

multicolumn〈numero〉〈descrittore〉〈contenuto〉

Il 〈numero〉 specifica quante celle bisogna raggruppare il 〈descrittore〉 contiene icodici di allineamento e di separazione necessari per descrivere lrsquounica grandecella frutto del raggruppamento il 〈contenuto〉 egrave il testo contenuto nellrsquounicagrande cella

Bisogna fare attenzione ad un dettaglio i separatori di colonna da inserirenel 〈descrittore〉 riguardano solo il lato destro dellrsquounica cella a meno che lacella non sia la prima della serie di celle in una riga in questo unico caso bisognaesplicitare anche il descrittore da inserire nel lato sinistro della cella

Per esempio se si avesse una tabella in cui il campo dei descrittori fosse ilseguente

begintabular|6c|

96 CAPITOLO 6 LATEX TABELLE

e si volessero raggruppare le celle 3 4 e 5 in unrsquounica grande cella presente inuna sola riga (per esempio la riga di intestazione) bisognerebbe specificare nellaposizione della cella 3

multicolumn3c|Intestazione 3

mentre se si volessero raggruppare le celle 1 e 2 sarebbe necessario specificare

multicolumn2|c|Intestazione 2

Per cui la prima riga della tabella verosimilmente sarebbe descritta dal seguentecodice

multicolum2|c|Intestazione 2ampmulticolum3c|Intestazione 3ampIntestazione 1

Nei precedenti esempi si noti che il numero di celle da raggruppare egrave formatoda una sola cifra quindi non ha bisogno di essere racchiuso fra parentesi graffequesta egrave una regola generale quando un argomento obbligatorio egrave formato daun solo oggetto (token nel gergo di TEX) non ha bisogno delle parentesi graffele quali invece sono necessarie ogni volta che lrsquoargomento egrave costituito da diversitoken ovviamente non egrave vietato usare le graffe anche quando lrsquoargomento egravecostituito da un solo token ma omettendole si scrive un porsquo di meno e non sicorre il rischio di dimenticare la graffa chiusa

643 I separatori verticaliPer separare verticalmente le righe di celle generalmente non serve nulla le tabellesono piugrave professionali se non contengono filetti o se ne contengono pochissimi

In ogni caso LATEX consente di separare le celle con dei filetti o degli spaziaggiuntivi

il comando serve per terminare una riga di celle perograve esso consente anchedi specificare uno spazio verticale da aggiungere alla normale spaziaturasi scrive allora per esempio [15ex] per terminare la riga e aggiungereuno spazio ulteriore di 15 ex fra il fondo della riga corrente e lrsquoinizio dellariga seguente Si faccia attenzione che allrsquoinizio della prima cella di ogniriga di qualunque tabella egrave inserito un oggetto invisibile che si chiamastrut (pilastrino in italiano) esso serve per garantire una altezza e unaprofonditagrave minima ad ogni riga in modo che le righe sembrino distanziateuniformemente indipendentemente dai loro ascendenti e discendenti secome argomento facoltativo di si specifica uno spazio troppo piccoloquesto potrebbe risultare assorbito dalla profonditagrave dello strut della rigacorrente

hline serve per tracciare un filetto orizzontale attraverso tutta la tabella duecomandi hline di seguito lrsquouno allrsquoaltro producono due filetti distanziatidi un paio di punti tipografici che rendono maggiormente evidente laseparazione verticale Il comando hline deve essere specificato o primadella prima riga di celle o dopo un comando

cline serve per tracciare un filetto orizzontale sotto alcune colonne adiacentiche devono venire specificate mediante la sintassi

64 COME COMPORRE LA TABELLA VERA E PROPRIA 97

cline〈colonna iniziale〉-〈colonna finale〉

Si noti che si possono ripetere due comandi cline di seguito specificandole stesse colonne iniziale e finale ma non si ottiene un filetto doppio percheacute idue filetti si sovrappongono si possono invece inserire due specificazioni concolonne diverse per mettere due filetti di seguito uno allrsquoaltro in orizzontale

Esercizio 62 Si predisponga una tabella a piugrave colonne e si inseriscano contenutiqualsiasi nelle celle ma si specifichino tutti e tre i tipi di separatori verticalidescritti in questo paragrafo osservando bene che cosa succede quando lospazio che costituisce lrsquoargomento facoltativo del comando egrave di pochipunti Ripetere la spaziatura con diversi valori di quello spazio

644 Come rendere le tabelle un poco piugrave aperteNonostante la presenza di uno strut nella prima cella di ogni riga talvoltasembra che questo strut non sia abbastanza grande cosiccheacute i filetti orizzontalisembrano toccare le lettere maiuscole o i discendenti delle minuscole

Si puograve usare il parametro arraystretch con la seguente sintassi

renewcommandarraystretch〈fattore〉

Il 〈fattore〉 egrave un numero decimale generalmente maggiore di uno che rappresentail fattore di scala con cui si vuol ingrandire verticalmente ogni spazio prodottodagli strut e quindi con il quale si vuole ingrandire lrsquointera tabella Per esempiosi puograve dichiarare

begintablerenewcommandarraystretch11begintabularendtabularendtable

In questo modo il valore unitario di default del parametro arraystretch vieneaumentato del 10 e tutte le righe della tabella risultano del 10 piugrave alte epiugrave profonde Il fatto di cambiare il valore di arraystretch allrsquointerno di unambiente table in questo caso confina la modifica allrsquointerno dellrsquoambiente

Attenzione cosigrave facendo si ingrandiscono verticalmente tutte le righe dellatabella anche quelle che non sono precedute o seguite da filetti orizzontali

Puograve darsi che questo sia quello che si desidera specialmente se si sta usandoun fattore di scala non tanto superiore a uno Tuttavia potrebbe essere unascelta non conveniente Quando si vogliono ingrandire solo le celle precedute eoseguite da filetti orizzontali non resta che inserire direttamente un altro strutnelle righe che interessano Il pilastrino che il compositore puograve usare si ottienecon il comando rule e la sua sintassi egrave la seguente

rule[〈innalzamento〉]〈base〉〈altezza〉

Questo rule definisce un riga verticale larga 〈base〉 e alta 〈altezza〉 innalzatarispetto alla linea di base del testo di 〈innalzamento〉 Per rendere questa riga

98 CAPITOLO 6 LATEX TABELLE

invisibile basta specificarne la base nulla per lrsquoaltezza si specifica quello chesi vuole e si puograve innalzare o abbassare (innalzamento negativo) questa riga diquanto si vuole

Personalmente io uso queste definizioni

begintabledefUrule0pt3exdefDrule[-05ex]0pt0ptdefVUDbegintabularendtabularcaptionlabelendtable

e inserisco U nella prima cella di una riga preceduta da un filetto inserisco Dnella prima cella di una riga seguita da un filetto inserisco V nella prima celladi una riga preceduta e seguita da un filetto

Il comando def appartiene al linguaggio base di TEX e sarebbe meglio nonusarlo mai quando si scrive con LATEX Infatti questo comando definisce unanuova istruzione e per sbaglio si potrebbe ridefinire una istruzione interna diLATEX percheacute non viene eseguita nessuna verifica della liceitagrave di questa defini-zione Tuttavia in questo caso le tre istruzioni U D e V non corrispondono anessunrsquoaltra definizione interna a LATEX ma quello che piugrave conta la definizionemediante def rimane valida solo allrsquointerno dellrsquoambiente table per cui allrsquouscitadallrsquoambiente dopo endtable quei comandi riprendono il significato cheavevano prima di entrare nellrsquoambiente table

Cosigrave egrave stato fatto in tutte le tabelle esposte finora e cosigrave saragrave fatto in tutte leprossime tabelle

Esiste la possibilitagrave di usare il pacchetto booktabs questo contiene le defini-zioni per i tre filetti toprule midrule e bottomrule da mettere rispettiva-mente sopra la riga di intestazione sotto la riga di intestazione e sotto lrsquoultimariga della tabella Il primo e lrsquoultimo sono giagrave leggermente piugrave spessi del filettointermedio Ovviamente tutti i parametri stilistici sono configurabili Questifiletti assicurano uno spazio adeguato in modo che risultino sufficientementedistanziati dal contenuto delle celle adiacenti Sono incompatibili con i filettiverticali quindi lsquoobbliganorsquo a comporre le tabelle in modo professionale perciogravequesto pacchetto viene sempre fortemente consigliato Perograve bisogna ricordareche questi filetti danno dei piccoli problemi se si decide di mettere uno sfondocolorato alla tabella a singole celle o a unrsquointera colonna o unrsquointera riga

Per evitare questi piccoli problemi bisogna ricorrere ai pilastrini esposti sopraanche se questo richiede una maggiore attenzione da parte del compositoretastierista per non dimenticare nessun elemento compositivo da introdurre amano

65 Le tabelle di larghezza specificataLa tabella generata con lrsquoambiente asteriscato prevede che sia di larghezzaspecificata proprio mediante lrsquoargomento 〈larghezza〉

65 LE TABELLE DI LARGHEZZA SPECIFICATA 99

Per ottenere quella larghezza egrave necessario che le singole celle possano allargarsiquanto basta percheacute la tabella complessiva raggiunga il valore desiderato

A questo scopo LATEX dispone di una specificazione di una lunghezza lsquoelasticarsquodetta anche lsquogommarsquo che internamente egrave caratterizzata da tre valori la lunghezzanaturale lrsquoallungamento e lrsquoaccorciamento se lrsquoallungamento e lrsquoaccorciamentocorrispondono a valori nulli essa non si distingue da una lunghezza rigida che egraveun altro tipo di lunghezza usato internamente da LATEX

Se invece lrsquoallungamento e o lrsquoaccorciamento corrispondono a valori lsquoinfinitirsquosi egrave in presenza di una lsquogomma infinitamente allungabile o accorciabilersquo

Nel caso delle tabelle si predispone allora una -espressione che al suo internooltre agli altri eventuali elementi contenga anche la seguente espressione

extracolsepfill

Questa espressione inserisce una lunghezza infinitamente allungabile in tutti isuccessivi separatori di colonna e questa gomma appare a destra degli altriseparatori giagrave presenti ad esempio

begintabulartextwidthextracolsepfillvlinehspacetabcolsepl|3c|

permette di definire una tabella con quattro colonne delle quali la prima abbiatutte le celle con il loro contenuto allineato a sinistra e le altre tre abbiano lecelle con il loro contenuto centrato le quattro celle di ogni riga quindi le quattrocolonne sono contornate da filetti verticali la prima cella inclusi i separatori hale sue dimensioni naturali mentre le celle successive hanno lo spazio a sinistra diogni contenuto allargato di quanto basta per far sigrave che lrsquointera tabella sia largaquanto specificato

Purtroppo questo modo di procedere va abbastanza bene per tabelle chequasi raggiungono naturalmente la larghezza desiderata cosiccheacute lo spazio cheegrave necessario aggiungere sia otticamente trascurabile rispetto alla spaziaturanormale Invece se le celle hanno un contenuto abbastanza corto e la tabelladeve essere allargata molto il risultato egrave tuttrsquoaltro che ottimale Si vedano letabelle 63 e 64 per rendersi conto di quanto affermato

Famiglia

Rossi Mario Maria Elisabetta FilippoMastrodomenico Giovanni Battista Marta Elena BeatricePapadopoulos Filolaos Penelopi Irini

Tabella 63 Tabella di larghezza pari alla giustezza del testo ottenuta allargandopoco le singole celle

Ci sono diverse soluzioni a questo problema una consiste nel richiamare ilpacchetto di estensione tabularx alla cui documentazione si rinvia il lettore

Unrsquoaltra soluzione consiste nel definire un nuovo ambiente che calcoli lalarghezza naturale delle singole celle e distribuisca omogeneamente lo spaziomancante a sinistra e a destra di ogni separatore di colonna in modo che lospazio bianco necessario per ottenere il risultato desiderato sia distribuito piugraveuniformemente Nella tabella 64 si osserverebbe allora che le colonne 2 3 e 4

100 CAPITOLO 6 LATEX TABELLE

Cognome Etagrave Peso Altezza

Rossi 50 85 182Mastrodomenico 65 72 175Papadopoulos 47 75 160

Tabella 64 Tabella di larghezza pari alla giustezza del testo ottenuta allargandotroppo le singole celle

avrebbero davvero il loro materiale centrato ma anche la colonna 1 avrebbemargini un poco piugrave ampi cosigrave da ridurre lo spazio bianco nelle colonne di destrasi osservi il risultato nella tabella 65

Cognome Etagrave Peso Altezza

Rossi 50 85 182Mastrodomenico 65 72 175Papadopoulos 47 75 160

Tabella 65 Tabella di larghezza pari alla giustezza del testo ottenuta allargandolo spazio fra le singole celle

In ogni caso ci si ricordi che la presenza dei filetti verticali peggiora solamentelrsquoeffetto visivo se bisogna davvero forzare un poco la composizione per cuiegrave quanto mai opportuno cercare di evitare lrsquoinserimento dei filetti in primisquelli verticali possibilmente anche quelli orizzontali accettando solo quelli chedelimitano la tabella e il filetto sotto alla prima riga che contiene le intestazionidelle colonne Questa egrave la raccomandazione stilistica contenuta in moltissimimanuali di tipografia egrave giusto che LATEX consenta di inserire tutti i filetti chesi vogliono ma sta al compositore scegliere se metterli quali mettere e dovemetterli

Confesso ho barato un pochino dicendo che basta usare un ambiente checalcoli la larghezza naturale delle singole celle e distribuisca omogeneamente lospazio mancante a sinistra e a destra di ogni separatore di colonna Egrave vero altroveho generato e usato un simile ambiente (pacchetto widetable) ma nellrsquoesempiodella tabella 65 ho provato alcune volte modificando ad occhio il valore dellospazio di separazione intercolonna mi sono bastati quattro o cinque tentativi perarrivare a definire che detto spazio tabcolsep deve valere 89mm in questomodo senza ricorrere a nessuna acrobazia di programmazione in linguaggio TEXla tabella 65 egrave stata composta con i comandi

begintable[ht]defVrule[-1ex]0pt35exdefSrule0pt35exsetlengthtabcolsep89mm lt---- spazio intercolonnabegintabular|l|3c|hlineCognomeV amp Etagrave ampPeso amp Altezza hlineRossiS amp 50 amp 85 amp 182

66 PROBLEMI COMPOSITIVI DELLE TABELLE 101

endtabularendtable

Si noti che non si egrave usato lrsquoambiente tabular ma il semplice ambiente tabular la larghezza egrave stata ottenuta modificando lo spazio intercolonna fincheacute lrsquoocchioha confermato che la tabella era larga quanto la giustezza

66 Problemi compositivi delle tabelleLe tabelle sono difficili da comporre non tanto percheacute i comandi necessari sianocomplessi quanto percheacute esse devono venire progettate con anticipo non devonoessere composte sperando che vada tutto bene

Ma anche con una buona impostazione il contenuto delle celle richiedeaggiustamenti che non possono essere previsti in automatico dal programma madevono essere valutati con attenzione dal compositore

Ecco quindi che nei prossimi paragrafi si daranno indicazioni per rimediaread alcuni problemi che talvolta si presentano questi suggerimenti perograve servanoanche come stimolo per trovare autonomamente le soluzioni piugrave consone ad altriproblemi specifici che potrebbero manifestarsi

661 Tabelle troppo larghePuograve darsi che una tabella sia cosigrave larga da fuoriuscire dalla giustezza ma in questocaso si puograve rimediare in diversi modi a seconda che lrsquoeccesso di larghezza rispettoalla giustezza sia di pochi punti di pochi millimetri o invece sia abbastanzaconsistente

Nei primi due casi si possono mettere due -espressioni lsquovuotersquo come deli-mitatori a sinistra della prima cella e a destra dellrsquoultima cella cosigrave facendo sieliminano le sporgenze dei filetti (se ci sono) fuori della giustezza della tabella

Se ciograve non bastasse si potrebbe ancora ridurre lo spazio fra le colonne questospazio egrave dato da tabcolsep che di default vale 6 pt Si noti questo spazio egravequello che viene messo a sinistra e rispettivamente a destra di ogni separatoreverticale quindi i contenuti delle celle sono separati dal doppio vale a dire da12 pt Non si perde molto nella composizione della tabella se si imposta il valoredi tabcolsep ad un valore di 3 o 4 pt a seconda del numero delle colonne sipossono recuperare diversi millimetri di larghezza

Unrsquoaltra soluzione puograve consistere nel ridurre il corpo dei font con cui egravecomposta la tabella passando a small o a footnotesize spesso si risolvonoproblemi importanti Basta procedere cosigrave

begintablesmall oppure footnotesizebegintabularendtabularcaptionlabeltabendtable

102 CAPITOLO 6 LATEX TABELLE

Se il problema non egrave molto grave sarebbe meglio evitare di scendere al corpocorrispondente a footnotesize

Simile a questa soluzione esiste la possibilitagrave di ricorrere al pacchetto graphi-cx che fornisce il comando resizebox questa soluzione egrave piugrave flessibile percheacuteconsente di scegliere il fattore di scala praticamente con continuitagrave Il suo unicodifetto egrave che si puograve usare questa soluzione solo quando il file finale deve esserein formato PostScript oppure PDF percheacute solo questi formati sono capaci discalare con fattori di scala qualunque gli oggetti che contengono Il file DVIinvece non egrave in grado di scalare gli oggetti che contiene

Resta il terzo caso dove la larghezza della tabella nonostante le cure descrittenei capoversi precedenti continua ad eccedere la giustezza del testo se si tratta diuna decina di millimetri al massimo secondo il giudizio estetico del compositorela si puograve collocare centrata lasciandola sporgere metagrave a sinistra e metagrave a destraLrsquooperazione egrave molto semplice percheacute basta racchiudere tutta la tabella dentrouna scatola di larghezza specificata il comando makebox che esegue questaoperazione agisce secondo la seguente sintassi

makebox[〈larghezza〉][〈collocazione〉]〈testo〉

dove 〈larghezza〉 rappresenta la larghezza vera o apparente della scatola cosigravecreata la 〈collocazione〉 specifica se il 〈testo〉 va collocato al centro oppureaccostato a sinistra o a destra dentro la scatola Il 〈testo〉 puograve essere effettivamentedel testo comune ma puograve anche essere una tabella o qualunque altro oggetto giagravecomposto e trattato come un solo oggetto anche una figura o un diagramma puograveessere usato come 〈testo〉 La 〈larghezza〉 egrave una larghezza vera se il 〈testo〉 ha unalarghezza nominale inferiore a quella specificata mentre essa egrave una larghezzaapparente nel caso opposto in altre parole se il 〈testo〉 egrave piugrave largo di quantospecificato lo si fa apparire largo esattamente come 〈larghezza〉

Per centrare una tabella un pochino piugrave larga della giustezza corrente bastadunque inserirla dentro una scatola larga quanto linewidth specificandone laposizione al centro della scatola (cioegrave non specificando nessuna 〈collocazione〉visto che la posizione centrata egrave quella di default) Un costrutto del tipo

begintablemakebox[linewidth] Inizio scatola

begintabularendtabular

Fine scatolacaptionlabeltabendtable

risolve il problemaTuttavia puograve ancora succedere che la tabella non possa essere lsquoaggiustatarsquo con

nessuno dei trucchi sopra esposti Allora puograve succedere che lrsquoeccesso di larghezzarispetto alla giustezza sia ancora dominabile con una rotazione di 90deg in sensoantiorario Attenzione la rotazione deve sempre avvenire in senso antiorarioindipendentemente dal fatto che la tabella venga poi fatta flottare in un rectoinvece che in un verso Questo implica che per leggere la tabella il documentodebba venire ruotato sempre in verso orario di 90deg

67 TABELLE TROPPO LUNGHE 103

Per eseguire questa rotazione tenendo conto che la rotazione coinvolge anchela didascalia egrave opportuno usare il pacchetto di estensione rotating e al suoambiente sidewaystable alla cui documentazione si rinvia per reperire le necessarieinformazioni drsquouso

67 Tabelle troppo lungheCon lsquotabella lungarsquo si intende una tabella che non stia in una pagina In questocaso ci sono diverse soluzioni la prima delle quali egrave domandarsi se la tabellasia stata concepita bene potrebbe darsi che scambiando le righe con le colonnela tabella diventi piugrave larga e meno lunga vale quindi la pena di ripensare allapossibilitagrave di sistemare la tabella con questo semplice artificio

Se la tabella dovesse risultare troppo larga ma tale da poter stare in unasola pagina si possono adottare i rimedi esposti nel paragrafo precedente

Ma se la tabella egrave veramente lunga bisogna ricorrere a pacchetti di estensionei piugrave noti dei quali sono longtable e supertabular alla cui documentazione sirinvia visto che questo tipo di composizione richiede un approccio abbastanzadelicato

Concettualmente il problema egrave semplice si tratta di spezzare una lungatabella in monconi tali da poter essere sistemati ciascuno in una pagina solaper ovvie ragioni estetiche le colonne devono mantenersi della stessa larghezzain tutti i monconi ma bisogna anche ripetere le intestazioni delle colonne pernon dover sfogliare pagine indietro per sapere se nella terza colonna compare ladensitagrave relativa oppure la massa volumica delle sostanze elencate nella tabella

Egrave opportuno anche che in ogni moncone della tabella che prosegue nellapagina successiva sia inserita una specie di intestazione di piegrave di pagina chespecifica che la tabella continua analogamente in ogni moncone della tabellaeccetto il primo conviene mettere una intestazione dalla quale si capisca che siegrave nel cuore della tabella non allrsquoinizio neacute alla fine questo puograve ottenersi ancheripetendo la didascalia alla fine della quale sia scritto lsquocontinuarsquo possibilmentefra parentesi e in corsivo cosigrave da separare bene questa informazione dal restodella didascalia Ovviamente il contatore della tabella non deve aumentare diuna unitagrave ad ogni moncone

Quando si sono ben afferrati questi concetti per altro abbastanza sempliciallora diventa abbastanza facile comprendere la documentazione dei due pacchettisopra indicati per potersi regolare al meglio e comporre una tabella professionale

Un suggerimento non guasta Conviene inserire il codice della lunga tabellain un file TEX a parte solo il codice senza documentclass e senza lrsquoambientedocument Conviene fare uso del pacchetto afterpage e servirsi del comandoafterpage Infatti bencheacute una lunga tabella non sia flottabile egrave opportuno cheil primo moncone della tabella cominci allrsquoinizio di una nuova pagina medianteafterpage pertanto diventa quasi spontaneo scegliere una posizione adeguataper dare il comando di leggere e di assorbire usando il comando input il fileche contiene il codice per la compilazione della tabella questa automaticamentecomincia allrsquoinizio della prima pagina disponibile finisce qualche pagina dopo eil testo ricomincia subito dopo Come si capisce bene egrave estremamente importantescegliere il punto giusto per lrsquoinserimento della lunga tabella non necessariamentequesto punto corrisponde alla fine di un capitolo dipende dal genere di testoche si sta componendo Se il codice per la lunga tabella egrave contenuto nel file

104 CAPITOLO 6 LATEX TABELLE

tabellalungatex memorizzato nella cartella file-inclusi allora quantodetto sopra corrisponde semplicemente a dare il comando

afterpageinputfile-inclusitabellalunga

Nellrsquoappendice B si egrave fatto appunto cosigraveSi noti ancora che con le tabelle che si sviluppano su piugrave pagine egrave necessario

mettere la didascalia prima della tabella per questo a differenza dellrsquouso ameri-cano rispecchiato in questo libro composto con la classe book alla quale nonsi sono apportate modifiche sarebbe opportuno mettere sempre la didascaliaprima di qualsiasi tabella non solo prima di quelle lunghe Per questo scopo alfine di non dover aggiustare le cose a mano per ogni tabella che si compone egravepossibile avvalersi del pacchetto topcapt che mette a disposizione del composi-tore il comando topcaption da usare esattamente come caption esso usa lespaziature giuste per mettere la didascalia sopra invece che sotto un qualunqueoggetto flottante si useragrave quindi topcaption per le didascalie delle tabelle ecaption per le didascalie delle figure

Nel prossimo paragrafo saragrave mostrato un esempio drsquouso delle potenzialitagrave deipacchetti di estensione per le tabelle descrivendo quanto si egrave fatto per comporrele lunghe tabelle dellrsquoappendice B

68 Pacchetti di estensione per le tabelleOltre ai giagrave citati pacchetti tabularx longtable e supertabular conviene ri-prendere il discorso del pacchetto array appena menzionato in relazione allrsquoinco-lonnamento basato sul separatore decimale Per dirla tutta questo lavoro vieneeseguito da una piccola estensione del pacchetto array che ne sfrutta appienole potenzialitagrave si tratta del pacchetto dcolumn che egrave in dotazione standard diogni distribuzione del sistema TEX

Questo pacchetto definisce una colonna di nuovo tipo e con il codice D maaccetta diverse personalizzazioni che egrave meglio esaminare nella documentazione

Qui si vuole richiamare lrsquoattenzione del lettore sul fatto che il pacchetto arraymette a disposizione del compositore due nuovi descrittori di colonna simili ap si tratta di m e b Agiscono nello stesso modo nel senso chetutti e tre i descrittori richiedono una larghezza di colonna al posto dei puntinila differenza egrave che il contenuto della scatola di testo prodotto con p ha lasua prima riga allineata con la prima o unica riga delle celle adiacenti b hainvece la sua ultima riga allineata con le celle adiacenti infine m egrave centratocon la sua riga mediana rispetto alle celle adiacenti

Esercizio 63 Che cosa succederebbe alla tabella 62 se si usasse il descrittorem80mm oppure il descrittore b80mm al posto del descrittore p80mm

Questi tre descrittori sono utilissimi in particolare lo scrivente ha notatoche secondo i suoi gusti e il tipo di tabelle che compone le celle con il blocco ditesto centrato verticalmente sono piugrave gradevoli rispetto a quando sono allineatesulla base della prima o dellrsquoultima riga Ripeto si tratta di una questione digusti e principalmente del tipo di tabelle che si desidera comporre in ogni casoegrave opportuno poter disporre di una scelta

Egrave molto utile che il pacchetto array definisca il comando arraybackslash selrsquoultima colonna ha il descrittore che esplicitamente o implicitamente contiene una

68 PACCHETTI DI ESTENSIONE PER LE TABELLE 105

delle dichiarazioni centering raggedright oppure raggedleft lrsquoambientedi tabulazione non sa se un comando serva per andare a capo dentro la cella o seserva per terminare la composizione di una riga di celle questo egrave particolarmenteimportante se si fa uso delle dichiarazioni di colonna introdotte con la sintassidescritta qui di seguito Ecco allora che la dichiarazione arraybackslashintrodotta per esempio dopo centering permette di stabilire che il prossimocomando indica la terminazione della composizione della riga di celle

Il pacchetto array consente anche di comporre tabelle miste in cui alcunecolonne sono testuali ed altre puramente numeriche anzi la caratteristica diarray egrave quella di inserire una dichiarazione allrsquoinizio di tutte le celle della stessacolonna e di porre una corrispondente dichiarazione alla fine di ciascuna di questecelle

I descrittori delle colonne possono diventare particolarmente complessi mase si fa attenzione a descrivere con ordine ciascuna colonna la cosa non egrave affattocomplicata

I nuovi lsquocomandirsquo per inserire queste dichiarazioni iniziali e finali in tutte lecelle di una stessa colonna sono gt e lt Essi seguono la sintassi seguente

gt〈dichiarazioni iniziali〉〈descrittore di colonna〉lt〈dichiarazioni finali〉

Val piugrave un esempio per descriverne lrsquoazione che non tante parole1 predispo-niamo una piccola tabella con le colonne allineate a sinistra al centro e a destrama dove la prima colonna deve avere tutti gli elementi in grassetto la secondadeve contenere una descrizione in corsivo la terza deve contenere un numeroche rappresenta un prezzo e quindi deve essere presente lrsquounitagrave monetaria latabella 66 egrave stata composta con i seguenti comandi

begintablecenteringbegintabulargtbfserieslgtitshapecrltenspacetexteuromulticolumn3ctextsfbfseries PrezziariohlinePantaloni amp alla zuava amp 3500 Pantaloni amp corti amp 1250 Camicie amp a scacchi amp 2275 Camicie amp botton down amp 3120 Calze amp di lana amp 833 Calze amp di cotone amp 500 Calze amp collant amp 1570endtabularcaptionlabeltabarraypackendtable

e si vede quanto sia conveniente lrsquouso dei descrittori iniziali e di quelli finali perla composizione di colonne omogenee

Ma una delle cose piugrave utili del pacchetto array egrave costituito dalla possibilitagravedi definire nuovi descrittori di colonna che possono ulteriormente semplificare lacomposizione delle tabelle

Infatti il pacchetto array mette a disposizione il comando newcolumntypecon la seguente sintassi

1In questo stesso paragrafo si vedragrave piugrave avanti come egrave stata composta la tabella B8 facendouso di questi descrittori speciali

106 CAPITOLO 6 LATEX TABELLE

PrezziarioPantaloni alla zuava 3500 euroPantaloni corti 1250 euroCamicie a scacchi 2275 euroCamicie botton down 3120 euroCalze di lana 833 euroCalze di cotone 500 euroCalze collant 1570 euro

Tabella 66 Tabella composta con le estensioni del pacchetto array

newcolumntype〈descrittore〉〈specifiche〉

Il 〈descrittore〉 egrave formato da una sola lettera minuscola o maiuscola che nonsia giagrave stata usata per i descrittori esistenti e le 〈specifiche〉 sono costituiteda un descrittore completo delle sue specificazioni particolari descritte median-te i comandi gt eo lt estendendo il concetto il 〈descrittore〉 puogravecorrispondere a delle 〈specifiche〉 che fanno uso di piugrave descrittori

Per esempio nella tabella 66 sono stati usati per le tre colonne i descrittori

gtbfserieslgtitshapecrltenspacetexteuro

Facendo uso del comando appena descritto si sarebbero potuti definire tre nuovidescrittori

newcolumntypeLgtbfserieslnewcolumntypeCgtitshapecnewcolumntypeErltenspacetexteuro

e poi si sarebbe potuto descrivere il comando di apertura della tabella con

begintabularLCE

Egrave chiaro che se questi tipi di colonne vengono usati spesso egrave conveniente eseguirele definizioni dei nuovi tipi di colonne una volta per tutte nel preambolo e poiusarli regolarmente nelle varie tabelle che si intendono comporre

Al limite se diverse tabelle usano la stessa sequenza di descrittori di colonnaquesta puograve essere inclusa in un unico descrittore per esempio

newcolumntypeTLCEbegintabularT

Anche nelle lunghe tabelle dellrsquoappendice B si egrave fatto nello stesso modoPer comoditagrave del lettore si riporta qui lrsquoinsieme delle dichiarazioni usate

per comporre la tabella B8 compreso lrsquoinizio e la fine della tabella ma senza ilcontenuto per ovvi motivi di brevitagrave

newcommandhstrutrule0pt3exhskip 0spnewcolumntypeBgtbfseriescnewcolumntypeMgt$displaystyleclt$newcolumntypeRgtraggedrightp35textwidthnewcolumntypeSgthstrutp45textwidthltvspace1ex

68 PACCHETTI DI ESTENSIONE PER LE TABELLE 107

newlengthstretchandshrinksetlengthstretchandshrink0pt plus 1fil minus 1filbegingroupsetlengthLTleft0ptsetlengthLTright0ptbeginlongtableextracolsepstretchandshrinkMRS

captionSimboli matematicilabeltmatnoalignsmallskiphrulemedskipmulticolumn1BSimboloampmulticolumn1BSignificatoampmulticolumn1BNotenoalignsmallskiphrulemedskip

endfirstheadmulticolumn3lemphContinua tabella thetablenoalignsmallskiphrulemedskipmulticolumn1BSimboloampmulticolumn1BSignificatoampmulticolumn1BNotenoalignsmallskiphrulemedskip

endheadnoalignsmallskiphrulesmallskipmulticolumn3remphcontinua

endfootnoalignsmallskiphrule

endlastfoot amp amp qui comincia la tabella vera e propriaendlongtable

Come si vede caption permette di comporre la didascalia della lunga tabellaal punto giusto prima della tabella endfirsthead termina la descrizione ne-cessaria per comporre le intestazioni delle colonne nel primo moncone endheadtermina la descrizione necessaria per comporre lrsquointestazione delle colonne neimonconi successivi al primo nello stesso tempo esso contiene anche lrsquoinformazio-ne che la tabella che compare nella pagina corrente egrave una continuazione di unatabella iniziata in pagine precedenti e il riferimento thetable serve appuntoper ripetere il numero della tabella senza incrementarne il contatore endfoottermina la descrizione necessaria per comporre la fine di ogni moncone trannelrsquoultimo endlastfoot termina la descrizione necessaria per comporre la finedellrsquoultimo moncone I comandi per queste composizioni vengono memorizzati edeseguiti ogni volta che ce ne sia la necessitagrave percheacute lrsquoambiente longtable provvededa solo a spezzare la tabella dove egrave necessario

Fra i comandi usati si notano alcuni comandi primitivi come noalignche serve per inserire qualcosa dentro ad una tabella senza tenere conto deidescrittori delle colonne hrule indica un filetto orizzontale che attraversa tuttala tabella medskip indica di inserire uno spazio verticale medio (circa mezzariga) smallskip indica di inserire uno spazio verticale piccolo (circa di unterzo di riga) emph serve per evidenziare una parola o una breve locuzione nelsenso che se essa va evidenziata allrsquointerno di un brano composto in tondo essoevidenzia il suo argomento componendolo in corsivo al contrario esso evidenzia

108 CAPITOLO 6 LATEX TABELLE

in tondo allrsquointerno di un brano in corsivo La prima colonna egrave composta inmodo matematico e in stile displaystyle la seconda colonna egrave compostain bandiera allineata a sinistra con una giustezza di 035 volte la giustezzadella pagina la terza colonna egrave composta con una giustezza pari a 045 volte lagiustezza della pagina ma solo dopo aver inserito un pilastrino definito comeuno strut alto 3 ex seguito da uno spazio nullo2 questo spazio nullo rappresentaun trucchetto per assicurare che quanto segue sia eventualmente divisibile insillabe (vedi appendice C) Il comando thetable serve per scrivere il contenutodel contatore table

Va ancora commentata lrsquoimpostazione delle due lunghezze LTleft a sinistradella tabella e LTright alla sua destra esse sono collocate allrsquoesterno dellatabella e aggiustandone i valori egrave possibile o lasciare alla tabella la sua lar-ghezza naturale (basta che lrsquouna eo lrsquoaltra rappresentino lunghezze elastiche diallungabilitagrave ldquoinfinitardquo) sia impostandone valori rigidi allargare o restringereun pochino la tabella purcheacute almeno una colonna sia allargabile o accorciabile apiacere egrave quello che si egrave fatto nelle due lunghe tabelle dellrsquoappendice B ed egrave perquesto che il primo separatore delle colonne egrave indicato con una -espressioneche contiene come argomento del comando extracolsep una larghezza elasticastretchandshrink di valore nominale nullo ma di allungabilitagrave e di accorciabi-litagrave infinite (di primo ordine) percheacute questo Percheacute in questo modo la tabellapuograve allargarsi o restringersi a piacere

Lrsquoambiente longtable scrive nel file ausiliario le larghezze delle colonne diogni moncone e richiede di comporre la tabella almeno tre volte per essere sicuriche tutti i monconi abbiano le colonne con le stesse larghezze siccome ognidocumento viene composto sempre diverse volte se non altro per controllarele versioni in bozza prima di comporre la versione finale questa necessitagrave dicomporre la tabella diverse volte in realtagrave egrave un prezzo piccolissimo da pagareper ottenere il risultato voluto Inoltre egrave bene sapere che longtable non iniziamai una pagina nuova se non alla fine di una riga della tabella quindi non puogravesuccedere che il testo di una cella risulti diviso fra due pagine consecutive

Nel paragrafo 1793 sono esposti alcuni altri argomenti particolari relativi alletabelle e alle figure inserite in alcune celle Vi si definiscono dei nuovi comandied egrave per questo che lrsquoargomento egrave rinviato a quel paragrafo

Nonostante il LATEX3 Team abbia giagrave predisposto i diversi pacchetti diestensione descritti sopra che consentono di migliorare la composizione delletabelle e delle matrici egrave opportuno segnalare una piccola lista che non esauriscetutte le possibilitagrave disponibili negli archivi internazionali ma che vale la pena ditenere presente in ogni caso

Innanzi tutto i pacchetti amsmath e soci prodotti dalla American Mathe-matical Society estendono complessivamente le varie maniere di incolonnareoggetti con riferimento specifico alle equazioni o a espressioni matematiche divario genere per questo pacchetto si rinvia la descrizione al capitolo 10

LrsquoInstitution of Electrical and Electronics Engineers ha prodotto le sue classiper comporre gli articoli da pubblicare nelle sue riviste ma ha messo a disposi-zione dei suoi autori anche un pacchetto separato IEEEtrantools che contienediversi comandi e ambienti speciali fra i quali gli ambienti per costruire tabelle ematrici in modo molto avanzato e non vincolato in modo cosigrave stretto alla sintassi

2Lrsquounitagrave di misura sp indica la frazione 1216 di un punto tipografico la notazione inbase 2 egrave chiarissima per un calcolatore mentre la notazione decimale 165536 non egrave altrettantosignificativa

68 PACCHETTI DI ESTENSIONE PER LE TABELLE 109

tradizionale di LATEX questa infatti serve per lsquomascherarersquo la complicazione dellacreazione della riga modello necessaria al comando primitivo halign che egrave quelloche effettivamente esegue poi la composizione delle tabelle e delle matrici La do-cumentazione si trova in doclatexIEEEtranIEEEtrantools_doctxtma egrave preferibile leggerne le specifiche e gli esempi drsquouso nel documento doclatexIEEEtranIEEEtran_HOWTOpdf

Un altro pacchetto molto interessante egrave quello scritto (insieme ad altri utilipacchetti) da Mark D Wooding mdwtab con il suo corollario mathenv chepermettono di fare piugrave o meno le stesse cose che si possono avere usando assiemei pacchetti amsmath e array Alcune cose possono portare a risultati miglioriche non con quei pacchetti conservando perograve una grande versatilitagrave e omogeneitagravedi comportamento in modo che con un unico ambiente per le tabelle si possonocomporre sia tabelle vere e proprie sia matrici matematiche sia incolonnamentidi colonne miste per le matrici vere e proprie sono disponibili ambienti appositiin un certo senso piugrave versatili di quelli ottimi messi a disposizione dal pacchettoamsmath

Allo stesso tempo si possono garantire spaziature migliori sopra e sottoi filetti in modo che diventa veramente facile produrre tabelle o matrici confiletti attorno a tutte o a molte caselle con le spaziature giuste e senza che ifiletti si interrompano o che i lsquopilastrinirsquo siano inefficaci Egrave vero che i filetti nondovrebbero essere usati per niente eccettuati quelli che delimitano superiormentee inferiormente una tabella e il filetto che stacca le celle di intestazione dallealtre tuttavia talvolta egrave necessario produrre tali tabelle magari per replicaretabelle altrui anche nello stile compositivo e i pacchetti di Wooding sono moltoversatili

Va notato comunque che per tabelle matrici e sistemi di equazioni Woodingridefinisce i comandi ordinari di LATEX cosigrave che in effetti non crsquoegrave da documentarsitroppo se non per imparare le infinite varianti e possibilitagrave offerte dai suoipacchetti

Capitolo 7

LATEX figure

71 Le figure e le immaginiCon LATEX egrave opportuno distinguere bene fra lsquofigurarsquo e lsquoimmaginersquo o lsquodisegnorsquo olsquograficorsquo la figura egrave un oggetto non verbale (fotografia disegno grafico schemadiagramma eccetera) dotato di un numero e di una didascalia che LATEX devesistemare in qualche posto dove ci sia abbastanza spazio visto che generalmentelrsquooggetto egrave di dimensioni relativamente grandi

Invece lrsquooggetto grafico che viene trattato da LATEX come una figura puograveavere le forme piugrave disparate e puograve avere anche le origini piugrave diverse Potrebbeessere prodotto con una macchina fotografica con un software da disegno con icomandi stessi di LATEX e dei suoi pacchetti di estensione potrebbe anche esserecostituito da codice di programmazione che verragrave tradotto in grafico dal driverche rende leggibile agli umani il documento

In questo capitolo si parleragrave solo dellrsquoambiente figure e dei modi di produrremateriale grafico con LATEX stesso accennando appena ai disegni eseguibili con ipacchetti di estensione

72 Lrsquoambiente figure

Lrsquoambiente figure egrave del tutto analogo allrsquoambiente table serve per rendereflottante un oggetto e per dargli una didascalia il cui primo termine egrave il nomelsquoFigurarsquo o lsquoFigurersquo o lsquoAbbildungrsquo o a seconda della lingua in uso seguitodal suo numero progressivo e dalla didascalia vera e propria composta comesempre da un titolo e da una spiegazione (facoltativa)

La sintassi egrave simile a quella dellrsquoambiente table

beginfigure[〈posizione〉] endfigure

e i parametri di 〈posizione〉 h t b p e sono gli stessi dellrsquoambiente tableFin qui la differenza rispetto allrsquoambiente table consiste solo nel fatto che

viene scritto nel titolino la parola lsquoFigurarsquo invece della parola lsquoTabellarsquo In realtagraveil contatore delle figure egrave diverso da quello delle tabelle cosigrave come la coda delle

111

112 CAPITOLO 7 LATEX FIGURE

figure o meglio la gestione della coda delle figure egrave diversa e distinta da quelladelle tabelle

Le figure possono venire separati dal testo che precedono o che seguonoda appositi filetti topfigrule botfigrule o dblfigrule descritti meglionellrsquoappendice G Normalmente questi filetti sono assenti ma possono essereresi visibili e contribuiscono non poco alla separazione del testo dalla didascaliaspecialmente per le figure collocate in testa alla pagina

721 Controllo dei grandi oggetti flottantiCi si ricordi solo che oggetti troppo grandi siano essi figure o tabelle possonobloccare il deflusso degli oggetti della stessa specie dalla rispettiva coda e questopotrebbe portare non solo allo lsquoscaricorsquo di tutti questi oggetti alla fine del capitoloo del documento ma potrebbe portare anche alla saturazione delle code e quindiad una situazione di stallo nella esecuzione della compilazione del documento

Un modo di evitare questo stallo egrave quello di usare il pacchetto esternoafterpage al quale si egrave giagrave fatto cenno nel capitolo precedente esso mette adisposizione del compositore il comando afterpage con la seguente sintassi

afterpage〈azione〉

dove 〈azione〉 rappresenta il comando da eseguire alla fine della pagina correntequando cioegrave la pagina corrente viene accodata al file di uscita In quel momen-to subito dopo lrsquoaccodamento LATEX puograve eseguire lrsquo〈azione〉 nella fattispecielrsquo〈azione〉 prescritta potrebbe essere clearpage che oltre a terminare la paginacorrente (giagrave terminata) serve anche per scaricare le code Se si specifica spesso

afterpageclearpage

si ottiene il risultato di non accumulare troppo materiale nelle code delle figuree delle tabelle magari durante la revisione delle bozze si puograve decidere se e comemodificare figure o tabelle per rendere il deflusso dalle code un poco piugrave ordinatoin modo che non sia necessario ricorrere ad afterpage

722 Modifica degli ambienti flottantiLa rete e gli archivi ctan contengono una moltitudine di pacchetti di estensioneche consentono di gestire o di creare nuovi oggetti flottanti

Il pacchetto principale per questo scopo egrave float la cui documentazione sitrova in doclatexfloatfloatpdf Esso tra le altre cose consente diusare un nuovo codice di posizionamento H che impone a LATEX di collocare lsquoquirsquolrsquooggetto lsquosenza fare tante storiersquo Sembra che la possibilitagrave di poter controllarela posizione precisa degli oggetti flottanti sia un desiderio fortissimo degli utentidi LATEX in realtagrave salvo pochi rari casi egrave meglio lasciare fare a LATEX il suolavoro anche se puograve sembrare un porsquo rigido nelle scelte che esso compie nelcollocare gli oggetti flottanti per capirne meglio il meccanismo conviene riferirsiallrsquoappendice G10 dove egrave descritto in dettaglio il meccanismo seguito da LATEXper trovare la posizione corretta degli oggetti flottanti Agendo sui parametriche controllano queste posizioni si puograve fare molto meglio che non specificando ilparametro H

73 LrsquoAMBIENTE PICTURE 113

Ma quel che piugrave conta egrave che il pacchetto float consente di modificare lecaratteristiche stilistiche degli ambienti flottanti e di definirne di nuovi peresempio per esporre brani di programmazione per descrivere degli algoritmiinsomma per collocare fuori testo qualunque cosa che possa essere reperita conun nome un numero e una didascalia Ognuno di questi ambienti flottanti puogravedare luogo a nuove listeindici di oggetti flottanti alla stessa maniera con laquale si stampano gli elenchi delle figure e delle tabelle rispettivamente con icomandi listoffigures e listoftables

Una ulteriore utile estensione egrave costituita dal pacchetto floatrow la cuidocumentazione si trova in doclatexfloatrowfloatrowpdf questopacchetto consente di fare tutte le cose che si possono fare con il pacchetto floate molte altre ancora al punto che se si usa floatrow non si deve caricare neacute floatneacute rotfloat (questrsquoultimo dedicato alla composizione di oggetti flottanti rotatidi 90deg) percheacute il codice di questi pacchetti egrave stato giagrave incorporato in floatrowQuestrsquoultimo consente anche di collocare diversi (piccoli) oggetti flottanti ognunocon la sua didascalia in fila uno accanto allrsquoaltro (da cui il nome del pacchetto)e consente persino di inserire un (piccolo) oggetto flottante insieme al testo chelo affianca o che lo circonda

Va detto che egrave giusto poter disporre delle possibilitagrave descritte sopra ma questistrumenti devono essere usati con molta cautela percheacute il risultato tecnicamenteperfetto potrebbe avere una estetica molto discutibile Per esempio se si voglionoinserire due figure ognuna con la sua didascalia in un unico ambiente flottanteegrave bene che esse abbiano le stesse dimensioni e che le didascalie abbiano lo stessonumero di righe se cosigrave non fosse lrsquoaspetto complessivo delle due figure affiancatesarebbe esteticamente assai dubbio

73 Lrsquoambiente picture

LATEX dispone di un meccanismo per produrre disegni al tratto semplici schemia blocchi semplici diagrammi e simili disegnini mediante lrsquoambiente picture

Lrsquoambiente picture sta a figure come tabular sta a table forse questo paragoneserve a comprendere meglio la differenza fra figura e immagine

Lrsquoambiente originale nato insieme al vecchio LATEX209 era molto limitatonella scelta delle linee che potevano essere tracciate percheacute venivano usati deisegmentini tratti da una polizza di font specialmente predisposti per questoscopo per quanto potessero essere ben disegnati questi segmentini erano pursempre in numero limitato

Dal 2003 esiste lrsquoestensione standard pict2e di LATEX che non egrave ancoradirettamente incorporata nel nucleo di LATEX ma che dovrebbe diventarlo in nonmolto tempo questa estensione egrave progettata per eliminare tutte le limitazionidel vecchio ambiente e per aggiungere prestazioni nuove ed egrave per questo che nelseguito ci riferiremo solo a quanto si puograve fare con questo pacchetto Si invocheragravequesta estensione mettendo nel preambolo il codice seguente

usepackage[〈opzioni〉]pict2e[20090601]

dove 〈opzioni〉 puograve essere una o piugrave fra le opzioni disponibili la maggior partedelle quali serve per definire il tipo di driver che verragrave usato per tradurre ilrisultato in una forma comprensibile agli umani Per lo piugrave servono solo in casiparticolarissimi e rari ma ci sono altre tre opzioni interessanti

114 CAPITOLO 7 LATEX FIGURE

original serve a impostare pict2e in modo che sia perfettamente equivalente alvecchio LATEX evidentemente serve solo per compatibilitagrave con il passato

ltxarrows serve per specificare a pict2e che le punte delle frecce devono esseredisegnate come vengono disegnate da LATEX in modo di compatibilitagrave conil passato siccome quelle frecce con punta triangolare leggermente concavesono molto gradevoli il compositore puograve decidere di usare tali punte difreccia anche se non introducono nessun elemento di novitagrave nello stile deldisegno

pstarrows serve invece a disegnare le punte delle frecce come un aereo stealthcioegrave come un aereo con le ali a V questa egrave la maniera di disegnare le frecceusata anche dal pacchetto PSTricks eccellente pacchetto di estensioneche si affida completamente al driver dvips per produrre un file di tipoPostScript

Se non si specificano opzioni il pacchetto cerca se esiste il file di configurazionepict2ecfg e sceglie le opzioni che quel file riesce a definire in base al programmaeseguito inoltre sceglie di default le frecce tradizionali di LATEX

A parte questi preliminari lrsquoambiente picture definisce uno spazio grafico incui lrsquounitagrave di misura egrave definita dal parametro unitlength che di default vale1 pt Specificando un valore diverso egrave facilissimo scalare il disegno in modo daingrandirlo o da rimpicciolirlo Come trucco personale io preferisco definire perogni ambiente figure prima di aprire lrsquoambiente picture una unitagrave di misuradipendente dal font in uso per esempio 1 ex cosigrave che cambiando il corpo delfont anche il disegno viene scalato proporzionalmente In altre circostanze scelgocome unitagrave di misura un centesimo della giustezza in questo modo sono sicuroche se non supero il valore di 100 unitagrave in orizzontale il disegno certamente nonesce fuori dei margini La sintassi da usare per impostare lrsquounitagrave di misura egrave

setlengthunitlength〈lunghezza〉

Dopo questa prima operazione lrsquoambiente picture con le sue dimensioni appa-renti e il suo offset noncheacute ogni distanza o lunghezza a cui si faccia riferimentoallrsquointerno di questo ambiente egrave indicata mediante un numero senza specificarele unitagrave di misura percheacute queste egrave sottinteso sono identificate da unitlength

La sintassi di apertura dellrsquoambiente picture egrave la seguente

beginpicture(〈base〉〈altezza〉)(〈x-offset〉〈y-offset〉) endpicture

Si notino le parentesi tonde per specificare i multipli dellrsquounitagrave di misura chesi intendono usare la prima coppia di parentesi tonde contiene le dimensionidella base e dellrsquoaltezza lsquoapparentirsquo del disegno apparenti significa che il disegnoverragrave inserito dentro un rettangolo di quelle dimensioni ma alcune parti deldisegno potrebbero fuoriuscire da quel rettangolo al punto che sarebbe possibile(e di fatto lo egrave) dichiarare entrambe le dimensioni pari a zero La seconda coppiadi parentesi egrave facoltativa se crsquoegrave essa indica la posizione dello spigolo inferioresinistro del suddetto rettangolo rispetto allrsquoorigine degli assi x e y questi sono gliassi rispetto ai quali vengono specificate le coordinate degli oggetti da collocarenel disegno

73 LrsquoAMBIENTE PICTURE 115

Ogni oggetto da collocare nel disegno viene collocato mediante il comandoput se lrsquooggetto deve essere collocato un certo numero di volte in posizioniregolarmente spaziate si puograve usare il comando multiput le sintassi sono leseguenti

put(〈x〉〈y〉)〈oggetto〉multiput(〈x-ini〉〈y-ini〉)(〈x-step〉〈y-step〉)〈numero〉〈oggetto〉

Le coordinate 〈x-ini〉 e 〈y-ini〉 sono le coordinate del primo punto le coor-dinate 〈x-step〉 e 〈y-step〉 sono gli incrementi da dare ad x e ad y ogni voltache si deve inserire una nuova istanza dellrsquooggetto il 〈numero〉 indica il numerototale di istanze dellrsquooggetto infine 〈oggetto〉 egrave lrsquooggetto grafico da collocare neldisegno

Gli oggetti collocabili sono linee vettori (frecce) cerchi dischi testi semplicio riquadrati con linee continue o tratteggiate i testi possono essere collocatiintelligentemente rispetto al rettangolo ideale che li contiene Possono poi esserecollocati degli lsquoovalirsquo cioegrave dei rettangoli con gli spigoli arrotondati dentro ai qualipuograve essere collocato del testo possono essere fatti semplici disegni tracciandodelle curve mediante lrsquouso di curve di Beacutezier di secondo o di terzo grado Lasintassi che descrive ognuno di questi oggetti egrave la seguente

line(〈x-pend〉〈y-pend〉)〈lunghezza〉vector(〈x-pend〉〈y-pend〉)〈lunghezza〉circle〈diametro〉circle〈diametro〉makebox(〈base〉〈altezza〉)[〈posizione〉]〈testo〉framebox(〈base〉〈altezza〉)[〈posizione〉]〈testo〉dashbox〈lung-trattino〉(〈base〉〈altezza〉)[〈posizione〉]〈testo〉oval[〈raggio〉](〈base〉〈altezza〉)[〈parte〉]

I nomi dei parametri dovrebbero essere abbastanza chiari ma vanno specificatealcune cose particolari

La lunghezza dei segmenti e dei vettori egrave la componente orizzontale cioegravela proiezione sullrsquoasse x del segmento o del vettore se questo egrave completamenteverticale allora e solo allora la lunghezza coincide con quella del segmento o delvettore

I coefficienti di pendenza dei segmenti e dei vettori rappresentano le proiezionilungo lrsquoasse x e y rispettivamente di un tratto di segmento o di vettore siccomequeste proiezioni non possono essere numeri arbitrariamente grandi e siccomedevono essere numeri interi il cui valore assoluto non superi 999 egrave evidente checonviene scegliere i valori piugrave piccoli conformi con queste limitazioni arrotondandoai valori interi piugrave vicini Per un vettore verticale che ha la punta della frecciain alto questi coefficienti formeranno la coppia (01) ma si potrebbe indicareanche (0999) con il medesimo risultato per ovvi motivi sarebbe meglio usarela prima scrittura Per i segmenti che non hanno una punta di freccia che neindichi la direzione questa va intesa come la direzione del segmento dal suoestremo collocato con put allrsquoaltro estremo in altre parole il comando putcolloca alla sua coordinata il primo punto del segmento da cui parte il segmentocon la pendenza specificata

Il comando circle specifica una circonferenza completa di cui si specificail 〈diametro〉 il suo punto di riferimento messo in posizione con put egrave il suo

116 CAPITOLO 7 LATEX FIGURE

centro Il comando circle specifica invece un disco completo non solo ilcontorno quindi disegna un cerchio lsquonerorsquo con il 〈diametro〉 specificato

I comandi makebox framebox e dashbox definiscono tre scatole la primasenza che ne venga disegnato il contorno la seconda con il contorno disegnato laterza con il contorno tratteggiato con trattini lunghi 〈lung-trattino〉 Il comandoput mette in posizione il loro punto di riferimento cioegrave lo spigolo inferioresinistro Allrsquointerno di questi rettangoli o scatole puograve essere posto del testo cheviene collocato rispetto ai bordi ideali disegnati o tratteggiati conformementeai parametri di 〈posizione〉 questi sono le solite lettere t b l r e c con ilrispettivo significato di lsquotoprsquo lsquobottomrsquo lsquoleftrsquo lsquorightrsquo e lsquocenterrsquo per ogni oggettosi possono specificare al massimo due parametri di posizione1 ricordando chelsquocenterrsquo egrave sempre il valore di default

Egrave particolarmente comodo il comando makebox con dimensioni di 〈base〉 e〈altezza〉 nulle percheacute il 〈testo〉 che vi viene inserito risulta collocato con precisio-ne rispetto allo spigolo inferiore sinistro ma senza spazio alcuno interposto nonha importanza che le dimensioni apparenti della scatola siano nulle egrave importanteche il testo sia collocato con un riferimento preciso indipendentemente dallapresenza di ascendenti o discendenti

Per il comando oval egrave possibile specificare il raggio minimo del quarto dicerchio che costituisce lo spigolo per altro le dimensioni di 〈base〉 e 〈altezza〉di questo speciale rettangolo a spigoli arrotondati si riferiscono al rettangolocompleto ma la specifica facoltativa di 〈parte〉 permette di scegliere quali angolimostrare o quale coppia di angoli adiacenti mostrare cosigrave che specificando raggiometagrave della base e metagrave dellrsquoaltezza uguali egrave possibile disegnare solo un quarto dicirconferenza oppure metagrave circonferenza al solito la 〈parte〉 egrave specificata con lelettere l t b e r (c non avrebbe senso) cosiccheacute t permette di disegnare solola metagrave di sopra tl solo il quarto in alto a sinistra

Nellrsquoambito dellrsquoambiente picture egrave possibile specificare due spessori predefinitiper le linee da tracciare thinlines e thicklines si puograve specificare un valoreassoluto di spessore (espresso con le unitagrave di misura) mediante

linethickness〈spessore assoluto〉

e questo comando modifica lo spessore sia delle linee rette e comunque inclinatesia delle linee curve siano esse archi di circonferenza oppure curve di Beacutezierquadratiche o cubiche

Infine i comandi qbezier e cbezier consentono di mettere in posizionedelle curve di secondo o di terzo grado rispettivamente dette spline di Beacuteziersenza bisogno di ricorrere ai comandi put o multiput La loro sintassi egrave laseguente

qbezier(〈x1〉〈y1〉)(〈x2〉〈y2〉)(〈x3〉〈y3〉)cbezier(〈x1〉〈y1〉)(〈x2〉〈y2〉)(〈x3〉〈y3〉)(〈x4〉〈y4〉)

Per la curva di secondo grado descritta da qbezier (x1 y1) rappresentanole coordinate del punto da cui la curva parte in direzione del punto aventele coordinate (x2 y2) invece (x3 y3) rappresentano le coordinate del punto diarrivo con la direzione che proviene da (x2 y2)

1Ovviamente non contrastanti Egrave ovvio che non si possono specificare simultaneamente t eb percheacute lo stesso oggetto non puograve essere collocato allo stesso tempo in testa e al piede dentrola scatola specificata

73 LrsquoAMBIENTE PICTURE 117

Per la curva di terzo grado descritta da cbezier questa parte da (x1 y1)in direzione (x2 y2) e arriva al punto (x4 y4) con la direzione proveniente da(x3 y3)

Scegliendo accuratamente i punti iniziali e finali noncheacute le direzioni delletangenti si possono facilmente disegnare semplici diagrammi come mostrato nellefigure 71 e 72 I punti guida delle curve di Beacutezier non compaiono percheacute cadonofuori dal rettangolo della figura

Va notato che nel 2009 il pacchetto pict2e egrave stato fortemente arricchito dinuove funzionalitagrave che non sono delle semplici aggiustatine agli stessi coman-di della versione tradizionale di LATEX ma sono delle estensioni decisamenteimportanti

Innanzi tutto egrave stata definita una nuova routine di divisione fra numeri frattiche permette di dividere numeri di qualsiasi grandezza (purcheacute inferiori in moduloa 16 384 sia dividendo sia divisore sia quoziente) per cui la restrizione sul fattoche inizialmente (nella versione di pict2e del 2004) i coefficienti di pendenza disegmenti e vettori dovessero essere rappresentati da numeri interi inferiori inmodulo a 1000 egrave stata rimossa ora si possono usare tranquillamente numerifratti e se per esempio si vuole una pendenza di 37 il cui coseno vale 079864 eil cui seno vale 060182 si possono usare direttamente questi due numeri senzadover ricorrere allrsquoartificio di moltiplicarli per 1000 e poi usare la sola parteintera arrotondata non cambia molto da un punto di vista pratico ma evita didover fare calcoli e arrotondamenti

Inoltre sono stati aggiunti altri comandi alcuni dei quali tracciano il lorodisegno quando siano messi come argomento di put e altri che sono assolutie cioegrave come per le curve di Beacutezier non hanno bisogno dellrsquointermediario delcomando put

Comandi da usare con putarc[〈〈angolo1〉〈angolo2〉〉]〈raggio〉arc[〈〈angolo1〉〈angolo2〉〉]〈raggio〉Comandi che non necessitano di putLine(〈x1〉〈y1〉)(〈x2〉〈y2〉)polyline(〈x1〉〈y1〉) (〈xn〉〈yn〉)polygon(〈x1〉〈y1〉) (〈xn〉〈yn〉)polygon(〈x1〉〈y1〉) (〈xn〉〈yn〉)

I comandi arc con o senza asterisco generano un arco con il centro nellacoordinata specificata dalle coordinate del comando put di raggio pari a〈raggio〉 che inizia nellrsquoangolo 〈angolo1 〉 e termina nellrsquoangolo 〈angolo2 〉 gliangoli sono specificati in gradi e con il segno positivo si indica la rotazione insenso antiorario La versione asteriscata riempie di colore (di default nero) ilsettore sotteso dallrsquoangolo

Il comando polyline genera una spezzata che collega in successione gli npunti (x1 y1) (x2 y2) (xn yn) il numero di punti egrave arbitrario percheacute ilcomando itera il proprio funzionamento fino ad esaurire la lista delle coordinate

Il comando polygon genera una spezzata chiusa nel senso che arrivato alpunto n-esimo aggiunge ancora un segmento fino il primo punto della lista Ilcomando polygon si comporta nello stesso modo ma riempie di colore (didefault nero) lrsquointerno del poligono

118 CAPITOLO 7 LATEX FIGURE

cm 1 2 3 4 5

carLLam

portndash

pict

ure

Figura 71 Il semplice disegno usatoda Leslie Lamport per descrivere lepotenzialitagrave dellrsquoambiente picture

CBeccari

ndashpi

ctur

e-20

090

601

Figura 72 Alcune curve di Beacutezierdi secondo e di terzo grado tracciatenellrsquoambiente picture

Inoltre sono stati definiti nuovi comandi per specificare come devono essereformati gli estremi dei segmenti (tagliati dritti o arrotondati) e come debbanoessere raccordati fra di loro i segmenti che formano le spezzate (se si prolunganofino ad incontrarsi i lati che delimitano i due segmenti da unire oppure se questoprolungamento viene troncato ad una certa distanza dal punto di intersezione deiloro assi) per i dettagli si veda la documentazione Si noti che con linee sottiliquesti dettagli sono virtualmente impercettibili ma con linee relativamente spesela differenza crsquoegrave e si vede Ricordiamoci che con pict2e si possono variare apiacere gli spessori di tutte le linee quindi non egrave difficile ottenere segmenti diun certo spessore semplicemente si cerchi di non dimenticare che una linea diuno spessore di circa mezzo millimetro (asymp 15 pt) egrave una linea nerissima si vedala figura 73

Usando i colori e i nuovi comandi di pict2e non egrave difficile disegnare ildiagramma della figura 73

Il codice per disegnare la figura 73 egrave il seguente

beginfigureunitlength=085cmcenteringbeginpicture(1111)(-1-1)linethickness035ptmultiput(00)(050)21line(01)10multiput(00)(005)21line(10)10linethickness05ptmultiput(00)(10)11line(01)10multiput(00)(01)11line(10)10linethickness07ptput(00)framebox(1010)put(0-05)makebox(00)[b]0put(1-05)makebox(00)[b]1put(2-05)makebox(00)[b]2put(3-05)makebox(00)[b]3put(4-05)makebox(00)[b]4put(5-05)makebox(00)[b]5put(6-05)makebox(00)[b]6put(7-05)makebox(00)[b]7put(8-05)makebox(00)[b]8

73 LrsquoAMBIENTE PICTURE 119

0 1 2 3 4 5 6 7 8 9 10

CBeccari

ndashpi

ctur

e-20

090

601

Tempo in secondi

0

10

20

30

40

50

60

70

80

90

100Sp

azio

inmetri

Figura 73 Moto uniformemente accelerato

put(9-05)makebox(00)[b]9put(10-05)makebox(00)[b]10put(5-1)makebox(00)[b]Tempo in secondiput(-0250)makebox(00)[r]0put(-0251)makebox(00)[r]10put(-0252)makebox(00)[r]20put(-0253)makebox(00)[r]30put(-0254)makebox(00)[r]40put(-0255)makebox(00)[r]50put(-0256)makebox(00)[r]60put(-0257)makebox(00)[r]70put(-0258)makebox(00)[r]80put(-0259)makebox(00)[r]90put(-02510)makebox(00)[r]100put(-095)rotatebox90makebox(00)[b]Spazio in metrilinethickness14ptcbezier(00)(450)(86)(1010)colorredput(00)circle02put(101)circle02put(204)circle02put(309)circle02put(416)circle02put(525)circle02

120 CAPITOLO 7 LATEX FIGURE

put(636)circle02put(749)circle02put(864)circle02put(981)circle02put(1010)circle02endpicturecaptionMoto uniformemente acceleratolabelfigmotoacceleratoendfigure

Vi sono molti aspetti un porsquo particolari come per esempio lrsquouso delle scatolemakebox con le dimensioni dichiarare nulle questo egrave un espediente che si usaspesso e serve per poter collocare il contenuto della scatola in una posizioneprecisa rispetto ai suoi bordi (invisibili) mantenendo nello stesso tempo uncompleto controllo sul punto di riferimento dellrsquooggetto da mettere in posizioneo anche da ruotare come la legenda della scala delle ordinate

Insomma lrsquoambiente picture egrave semplice ma con le estensioni introdotte nelpacchetto pict2e non egrave inferiore a molti altri software di disegno ma ha ilvantaggio che ogni informazione letterale o matematica che compare nel disegnoegrave eseguita con gli stessi caratteri del resto del testo Naturalmente non egrave lrsquounicomezzo per ottenere questo risultato come drsquoaltra parte si ricava da quantoesposto nel prossimo paragrafo

74 Il pacchetto pgfIl pacchetto di estensione pgf egrave ancora in evoluzione ma certamente le potenzialitagraveche ha oggi verranno sicuramente mantenute ad ampliate in futuro Lrsquoautore cercadi costruire una interfaccia utente che prescinda completamente dal particolarestrumento informatico che trasforma il codice in qualcosa comprensibile dagliumani Oggi si possono ottenere risultati ottimi con il pacchetto di estensionePSTricks ma il suo codice egrave interpretabile solo dal driver dvips per terminarecon un file in formato PDF egrave necessario procedere ad una ulteriore conversionedi formato2

Lrsquoacronimo PGF indica lsquoPortable Graphics Formatrsquo e vorrebbe poter un giornoessere altrettanto potente di PSTricks ma svincolato da questo o quel drivernel momento in cui il sorgente tex viene compilato il motore di compilazionedetermina con quale programma questa compilazione viene eseguita e sceglielrsquointerfaccia giusta in relazione a quella situazione se il file sorgente come succedespesso viene spedito per posta elettronica ad un conoscente che lavora con unapiattaforma diversa e una distribuzione del sistema TEX diversa o egrave abituato adusare un compilatore diverso ebbene la grafica deve risultare del tutto identicaa come riusciva allrsquoautore originale

Qui sarebbe fuori luogo scendere nei dettagli e si rinvia il lettore alla docu-mentazione del pacchetto pgf sappia comunque il lettore che questo pacchetto

2Questa limitazione che provoca una apparente incompatibilitagrave fra il compilatore LATEX eil compilatore pdfLATEX puograve essere aggirata attraverso il pacchetto pst-pdf alla cui documen-tazione si rinvia il lettore un altro pacchetto auto-pst-pdf offre una comoda interfaccia perlrsquouso di pst-pdf cosigrave che di fatto sia pure con un lieve rallentamento della compilazione ancheil compilatore pdfLATEX riesce a gestire file sorgente che fanno uso di PSTricks Il lettore inte-ressato puograve esplorare ctanmacroslatexcontribpst-pdf e ctanmacroslatexcontribauto-pst-pdf

74 IL PACCHETTO PGF 121

TTan

taundash

tikz

pict

ure

tikz[shading=ball]

foreach x cola in 0red1green2blue3yellow

foreach y colb in 0red1green2blue3yellow

shade[ball color=cola50colb] (xy) circle (04cm)

breakforeach

If this command is given inside a foreach command no further executions of the 〈commands〉 willoccur However the current execution of the 〈commands〉 is continued normally so it is probably bestto use this command only at the end of a foreach command

begintikzpicture

foreach x in 14

foreach y in 14

fill[red50] (xy) ellipse (3pt and 6pt)

ifnum xlty

breakforeach

fi

endtikzpicture

205

Figura 74 Un disegno a colori ottenuto con lrsquouso del pacchetto pgf e lrsquoambientetikzpicture

mette a disposizione un ambiente di disegno che si chiama tikzpicture allrsquointernodel quale la sintassi dei comandi egrave molto diversa dalla sintassi da usare nellrsquoam-biente picture ma sotto certi aspetti essa egrave piugrave intuitiva in ogni caso piugrave adattaalla moltitudine di oggetti linee colori nodi alberi strutture schemi di flussoeccetera che possono essere gestiti con quel pacchetto e quellrsquoambiente

Qui giusto per far venire lrsquoacquolina in bocca con un blando aperitivo simostra solo la figura 74 che mostra una figura a colori dove i colori delle sfere chegiacciono sulla diagonale secondaria (quella che va da SW a NE) sono mescolatifra di loro nelle posizioni fuori da quella diagonale mostrando sempre delle mezzesfere con gradienti di luce obliqua a simmetria circolare

Lrsquoambiente tikzpicture egrave estensibile con diversi altri ulteriori pacchetti peresempio circuitikz che permette di disegnare circuiti elettronici scegliendo lostile americano oppure quello europeo la figura 75 mostra un esempio tratto dalmanuale del pacchetto che si trova in doclatexcircuitikz Il manualeespone anche lrsquointera lista di componenti veramente immane con cui si possonodisegnare circuiti elettronici essendo ogni componente disegnato mediante unamacro non egrave difficile casomai ce ne fosse bisogno arricchire questa enormecollezione di ulteriori segni particolari

Lrsquoambiente tikzpicture e i comandi del pacchetto tikz possono venire usati perla definizione di diverse macro in questo testo esso egrave stato usato per definire lemacro che disegnano le icone che compaiono sui tasti di controllo della tastiera delportatile Mac Book Pro esse possono venire esaminate nel file MacroGuidasty

Un altro semplice esempio suggerito da Antonio Cervone egrave il disegno perdefinire una paginetta con lrsquoangolo superiore ripiegato ldquomorbidamenterdquo questodisegno appare nellrsquoArte di scrivere con LATEX [39] e che tanto attrae anche

122 CAPITOLO 7 LATEX FIGURE

MA

Redaellindash

tikz

pict

uree

circ

uiti

kz

micro

Ω

i1

Ω

Ωi1

minusminusminusminus

minusminusminus

minus

minus

e(t) Ω

Ω

a(t)

minusminus

minusminus minusminus

minusminusminusminus minusminus

Figura 75 Circuito elettronico disegnato usando lrsquoambiente tikzpicture avendocaricato lrsquoestensione circuitikz

i frequentatori del Forum del gruppo guIt Si egrave rielaborato il codice propostoda Antonio Cervone in modo da creare una macro che funziona solo con unaversione moderna di pdflatex percheacute vi vengono usate delle funzionalitagrave estese Ilcodice rielaborato egrave il seguente

newlengthpaginettaunit

newcommandpaginetta[2][5textwidth]countdefY=1000countdefYY=1001relaxsetbox0vboxhsize=1relax2relaxdimen0=1relaxdimen0=12dimen0relaxpaginettaunit=dimexprdimen0100relaxdimen0=ht0Y=numexprdimen0paginettaunitrelaxYY=-numexprY+40relaxY=-numexprY2+27relaxbegintikzpicture[thickx=paginettaunity=paginettaunit]draw[fill=blue10]

(00) [rounded corners=75] --(800) --(100-20) [rounded corners=0] --(100YY) --(0YY) --cycle

draw(750) controls (800) and (80-5) (80-20) controls (95-20) and (100-20) (100-25)

node at (50Y) box0endtikzpicture

e il risultato dellrsquouso del comando

paginetta[55textwidth]raggedright

75 VANTAGGI DEI PROGRAMMI NATIVI DEL SISTEMA TEX 123

CBeccari

eACervonendash

tikz

pict

ure

Questo egrave un testo composto da duecapoversiInfatti questo egrave il secondo capoverso

Figura 76 Una paginetta con lrsquoangolo ripiegato

Questo egrave un testo composto da due capoversi

Infatti questo egrave il secondo capoverso

appare nella figura 76

75 I vantaggi di usare programmi nativi del si-stema TEX

I vantaggi di usare i programmi nativi del sistema TEX (pgf funziona anche conPlain TEX e con ConTEXt) consistono nel fatto che questi sistemi consentono diusare direttamente gli stessi font che vengono usati per il testo Non si trascuriquesta possibilitagrave percheacute lrsquouso di font diversi talvolta incompatibili o non adattia quello che si sta scrivendo egrave un difetto cosigrave grave che salta allrsquoocchio anchedella persona piugrave inesperta

I disegni per esempio prodotti con famosi programmi interattivi di mate-matica possono essere salvati in formato PostScript tuttavia egrave poi necessariocorreggere questi file per poter cambiare i font specialmente quando alcunescritte che compaiono nei disegni sono costituite da formule e chiunque vedesubito che non sono composte con la stessa maestria di quelle composte conLATEX Esistono dei pacchetti per esempio psfrag che riescono ad eseguirealcune di queste trasformazioni ma resta sempre un lavoro maggiore da fare cherichiede una attenzione maggiore come succede sempre quando si eseguono dellecorrezioni

Non si trascuri quindi la possibilitagrave di disegnare semplici diagrammi ricorren-do anche al piugrave elementare ambiente da disegno costituito da picture Il vantaggiodellrsquouso dei font giusti supera qualunque fatica si debba fare per ottenere unrisultato grafico accettabile Se poi ci si prende il disturbo di imparare ad usarelrsquoambiente tikzpicture allora non si deve rinunciare proprio a niente

76 METAPOST

Qui si vuol dare un ulteriore suggerimento al lettore interessato egli puograve ricorrereal programma METAPOST per eseguire disegni al tratto sia bidimensionali siatridimensionali

124 CAPITOLO 7 LATEX FIGURE

CB

eccari

ndashM

ETA

PO

ST

O r

Figura 77 Un semplice esempio di figura geometrica composta con METAPOST

Il programma METAPOST egrave descritto abbastanza dettagliatamente nel do-cumento docmetapostbasempmanpdf egrave utile consultare anche il docu-mento docmetapostbasempintropdf in ogni caso METAPOST prevedela conoscenza di METAFONT quindi tutta lrsquooperazione di documentazione edapprendimento puograve sembrare piuttosto complessa A questo proposito vale lapena di rompere il ghiaccio con docenglishmetafpmetafppdf che egraveun testo introduttivo di Peter Wilson per iniziare ad usare sia METAFONT siaMETAPOST

Lrsquoutilitagrave di usare METAPOST per eseguire i disegni consiste nel fatto che sipossono usare i costrutti piugrave complessi che vengono elaborati da quel programmain modo che il file di uscita sia compatibile sia per il driver dvips sia per lrsquointerpretepdftex (in pratica pdfLATEX) cosiccheacute il disegno prodotto puograve essere utilizzatosia per comporre un documento in formato PostScript sia in formato PDF senzabisogno delle successive trasformazioni da un formato allrsquoaltro Si veda anche ilparagrafo 83

Un altro vantaggio dellrsquouso di METAPOST consiste nel fatto che tutte leindicazioni testuali e matematiche da inserire nel disegno vengono composte daLATEX o pdfLATEX stessi grazie ai comandi contenuti nel file sorgente METAPOSTlrsquouso dei font compatibili con quelli del testo composto egrave quindi assolutamentegarantito

A titolo di esempio si riporta il listato METAPOST del disegno che comparenella figura 77 I punti indicati con zi sono alcune coordinate del piano cherappresentano i punti di appoggio per circonferenze e segmenti le grandezze poute pin sono dei path cioegrave dei percorsi definiti tramite le precedenti coordinatee i comandi che li raccordano con curve di Beacutezier di terzo grado con concavitagravemodeste (sequenze di tre puntini) i comandi fill e draw fanno esattamentequello che dice il loro nome Interessanti sono i comandi per etichettare i puntidotlabeltop disegna un punto nero nel punto z0 e lo etichetta con quantoscritto fra parentesi Invece labeltop non disegna niente ma mette lrsquoetichettacontenuta fra parentesi a metagrave strada fra il punti z0 e z3 Entrambi questicomandi per etichettare scrivono in linguaggio TEX quanto egrave contenuto fra btexed etex vi si leggono infatti le specificazioni per due oggetti matematici (dacomporre con lo stile textstyle) uno egrave il nome del centro del cerchio esternoO e lrsquoaltro egrave lrsquoindicazione del raggio r

beginfig(1)u=1mm

77 USI INSOLITI DELLrsquoAMBIENTE PICTURE 125

path poutpinz1=(020u)z2=(20u40u)z3=(40u20u)z4=(20u20sqrt(2)u)z0=5[z1z3]pout= z1upz2rightdownz3pin= z3z2-z3z4leftz1-z2z1fill poutamppinampcycle withcolor 8whitez5=(20u0)draw poutz5leftcycledraw pindraw z1--z3draw z0--z5draw z5--z1draw z5--z3dotlabeltop(btex$O$etexz0)labeltop(btex$r$etex5[z0z3])endfigend

Se il breve listato precedente egrave contenuto nel file cerchimp e da linea dicomando si dagrave il comando3

mp cerchi

si ottiene il file cerchi001 a cui si puograve cambiare nome in cerchimps per poiimportarlo nel documento da comporre con il comando includegraphics dicui si parleragrave nel prossimo capitolo4

77 Usi insoliti dellrsquoambiente pictureLe tabelle come si egrave detto alla fine del capitolo 6 possono presentare deiproblemi e si egrave indicato come risolverli almeno in certi casi la tabella 71contiene sicuramente del materiale ordinato in celle giustapposte ma le grandiparentesi graffe certamente disturbano gli allineamenti percheacute si protraggonooltre i limiti delle celle che intendono raggruppare nelle varie colonne

Se si compone la tabella nellrsquoambiente picture invece che nellrsquoambiente tabularbisogna rinunciare agli automatismi che questrsquoultimo ambiente mette a disposizio-ne ma lrsquoambiente picture consente di collocare con precisione qualunque oggettofornendo le coordinate del suo punto di riferimento ma anche nascondendone ledimensioni reali

Perciograve con lrsquoambiente picture si possono parzialmente sovrapporre oggettipur di avere la pazienza di determinare le posizioni dei punti di collocamento conalcune prove La tabella 715 egrave stata composta con il codice seguente dove le

3Il comando per lanciare METAPOST puograve essere mp oppure mpost a seconda dellrsquoinstallazionedel sistema TEX

4Alternativamente si puograve usare il comando METAPOST outputtemplate descritto nellapagina 145

5Lrsquoesempio egrave stato suggerito da Enrico Bellino Universitagrave Cattolica del Sacro Cuore

126 CAPITOLO 7 LATEX FIGURE

1

Table 1 Classification of technical progress

Gravemente insufficiente(saltare un appello)

v lt 15

Insufficiente(puo ripetere lrsquoesame)

15 le v lt 18

Sufficiente

v ge 18

esame non superato

Sufficiente

18 le v le 20

Discreto

21 le v le 25

Buonoottimo

26 le v le 30

non si puo fare la tesi

Si puo chiederela tesi compilativa

26 le v le 27

Si puo chiederela tesi di ricerca

28 le v le 30

Tabella 71 Tabella insolita

coordinate da dare come argomento ai vari comandi put sono state determinatesperimentalmente

newcommandrBrace[1]makebox(00)[r]$leftrule0pt1right$

setlengthunitlength1exbeginpicture(8560)put(040)$leftparbox25unitlengthnull

Gravemente insufficientenewline (saltare un appello) [vlt15]Insufficientenewline (puograve ripetere lrsquoesame)[ 15 leq vlt18]Sufficiente [ vgeq 18]right$

put(3246)rBrace45baselineskipesame non superatoput(3225)$leftparbox25unitlengthnull

Sufficiente [18leq vleq 20 ]Discreto [ 21leq vleq 25]Buonoottimo [26leq vleq 30]right$

put(6040)rBrace7baselineskipnon si puograve fare la tesiput(60145)$leftparbox20unitlengthnull

Si puograve chiederenewline la tesi compilativa [26leq vleq 27]Si puograve chiederenewline la tesi di ricerca [28leq vleq 30]

right$

78 LINEE GUIDA PER LA GRAFICA 127

endpicture

La definizione che precede i tre puntini egrave nel preambolo essa definisce ilcomando rBrace che serve per comporre una parentesi graffa di semialtezzaspecificata con il punto di riferimento al suo centro ma racchiusa dentro unascatola di dimensioni nulle in questo modo la parentesi graffa puograve essere collocataovunque senza che causi nessun intralcio al posizionamento degli altri oggetti egravecome se non ci fosse

Successivamente prima di aprire lrsquoambiente picture (ma dentro allrsquoambientetable per rendere il tutto flottante e con il titolino della didascalia corretto)si assegna allrsquounitagrave di misura unitlength un valore dipendente dal font inuso 1 ex

Aperto lrsquoambiente picture si collocano i vari oggetti si notino le scatoledefinite mediante parbox che consentono di comporvi dentro del testo comese si trovasse dentro una colonna con la giustezza pari a quanto specificato nelprimo argomento Per altro il primo elemento che vi si compone egrave la scatola nullanull la quale impegna una riga del tutto bianca serve per bilanciare lo spazioche si trova in fondo alla scatola dopo lrsquoequazione centrata Il resto di quanto sitrova a formare il secondo argomento di parbox egrave codice senza sorprese

Si nota invece che le grandi parentesi graffe chiuse costruite mediante ilcomando rBrace e la semialtezza specificata non occupando nessuno spazionon alterano il collocamento del testo dellrsquounica riga che le accompagna

La tabella 71 non egrave il massimo dellrsquoeleganza ma talvolta egrave necessario costruiretabelle di questo genere usate abitualmente in certe discipline scientifiche Inqueste circostanze ricorrere allrsquoambiente picture sembra essere la soluzione piugravesemplice

78 Linee guida per la graficaPer creare della grafica ben fatta bisogna avere talento e seguire alcunelinee guida con il permesso dellrsquoautore Till Tantau qui si riproduceil capitolo 4 della prima parte del suo manuale [45] corredato di alcunicommenti messi in evidenza con il font di questo capoverso in modo chesi stacchino bene dal testo originale sia pure tradotto con un certa libertagrave

Si noti che nel seguito con la parola grafica si intende sia lrsquoattivitagraveconnessa con la produzione di disegni sia il prodotto di questa attivitagravecioegrave uno o piugrave disegni Con grafici si intendono i disegni in senso strettogeneralmente disegni al tratto quasi sempre privi di sfumature di coloree che possono avere caratteristiche molto diverse

I diagrammi sono disegni dellrsquoandamento di una o piugrave curve riferite adassi cartesiani nel piano meno frequentemente sono la proiezione sullacarta di diagrammi tridimensionali Gli schemi a blocchi o i diagrammi diflusso sono disegni di scatole rettangolari o altre forme geometriche chiusespesso con sfondi colorati collegati fra di loro da frecce che descrivono ilfluire delle informazioni da una scatola allrsquoaltra Gli istogrammi descrivonoin due dimensioni spesso con effetti tridimensionali distribuzioni statisti-che assai spesso non collegate ad una variabile indipendente misurabile Idiagrammi a torta analogamente descrivono delle distribuzioni statistiche

128 CAPITOLO 7 LATEX FIGURE

mediante la lunghezza di archi di una circonferenza o lrsquoarea di settori diun cerchio I cartogrammi rappresentano distribuzioni proiettate sul pianodi terreni o di aree geografiche distinte in modo che sia agevole risalire siaal loro perimetro sia alla loro superficie e includono le carte geografichein senso stretto le mappe e le planimetrie I pittogrammi possono averediversi aspetti e rappresentare le cose piugrave diverse mediante aggregazioni didisegnini che rappresentano cose animali o persone I disegni al tratto piugravegenerali non classificabili come descritto sopra possono essere delle rap-presentazioni schematiche o prospettiche della realtagrave dove il disegno privodi molta dellrsquoinformazione che potrebbe essere presente in una fotografiapermette di mettere in evidenza dei particolari anche in trasparenza chenon sarebbero altrimenti evidenziabili

In Italia la produzione di questi vari tipi di disegni egrave regolata dalle normeUNI [48] Ciograve non toglie che la scelta di un dato tipo di rappresentazionenon possa essere sottoposta ad ulteriori regole di carattere estetico o diqualitagrave della comunicazione

781 PreliminariQuesto paragrafo non riguarda in senso stretto neacute pgf neacute TikZ ma riguarda lelinee guida generali e i principi che presiedono alla grafica per le presentazioniscientifiche per gli articoli e per i libri

Le linee guida in questo paragrafo arrivano da diverse fonti Molte io le chia-merei semplicemente ldquobuon sensordquo alcune riflettono la mia esperienza personale(sebbene spero non le mie preferenze personali) alcune arrivano da libri ditipografia e di disegno grafico di cui purtroppo non ho composto la bibliografiaLa fonte piugrave importante egrave costituita dai libri di Edward Tufte Sebbene io nonsia drsquoaccordo con ogni cosa scritta in questi libri molte delle spiegazioni di Tuftesono cosigrave convincenti che ho deciso di riportarle fra queste linee guida [47]

La prima cosa che bisognerebbe domandarsi quando qualcuno propone unaserie di linee guida egrave ldquoDovrei davvero seguire queste linee guidardquo Questa egraveuna domanda importante percheacute esistono dei buoni motivi per non seguire lineeguida di carattere generale

bull La persona che ha scritto quelle linee guida potrebbe aver avuto degliobbiettivi diversi dai vostri Per esempio una linea guida potrebbe affermareldquousa il colore rosso per dare enfasirdquo Mentre questa linea guida potrebbeavere senso per esempio quando si predispone una presentazione daproiettare il ldquocolorerdquo rosso ha un effetto opposto allrsquo ldquoenfasirdquo quando vienestampato con una stampante in bianco e neroLe linee guida sono state quasi sempre scritte per affrontare una situazionespecifica Se non siete in quella situazione seguire una linea guida puograve farepiugrave male che bene

bull La regola base della tipografia dice che ldquoOgni regola puograve essere infrantase siete consapevoli di ciograve che state facendordquo Questa regola vale anche perla grafica Detto in modo equivalente la regola base dice che ldquoI soli erroriche si possono fare in tipografia sono le cose fatte per ignoranzardquoQuando conoscete una regola e quando ritenete che infrangere la regolaproduca lrsquoeffetto desiderato allora infrangete la regola

78 LINEE GUIDA PER LA GRAFICA 129

Perciograve prima di seguire una linea guida o di decidere di non seguirla fatevile seguenti domande

1 Questa linea guida riguarda davvero la mia situazione

2 Se faccio lrsquoopposto di quello che dice la linea guida i vantaggi sarannosuperiori agli inconvenienti che la linea guida si propone di evitare

782 Programmazione del tempo necessario per la crea-zione della grafica

Quando create un documento che contiene molta grafica il tempo necessario percreare questa grafica diventa un fattore importante Quanto tempo bisognerebbestimare per la creazione della grafica

Come regola generale supponete che la grafica vi richieda altrettanto tempodi quello necessario per produrre un testo della stessa lunghezza Per esempioquando io compongo un documento impiego circa unrsquoora per ogni pagina dellaprima bozza Poi per le revisioni impiego da due a quattro ore per ogni paginaPerciograve mi aspetto di avere bisogno di circa mezzrsquoora per creare la prima bozzadi un grafico che occupi mezza pagina Successivamente penso di avere bisognoancora di una o due ore prima che il grafico sia a posto

In molte pubblicazioni anche in ottime riviste gli autori e i revisori editorialihanno evidentemente investito molto tempo sul testo ma sembra che abbianospeso cinque minuti per creare tutta la grafica I disegni sembra che siano statiaggiunti in un secondo tempo senza un motivo particolare oppure sembranouna copia della schermata di qualunque cosa il software di statistica dellrsquoautoregli mostrasse Come verragrave spiegato piugrave avanti la grafica prodotta da programmicome gnuplot con le impostazioni di default sono di qualitagrave assai modesta

Creare grafici che convogliano in modo corretto la loro informazione al lettoree che nello stesso tempo sono coerenti con il testo egrave un processo lento e difficile

bull Trattate i disegni come elementi di prima categoria Essi meritano lo stessotempo e la stessa energia che richiede il testo

bull Presumibilmente la creazione di grafici richiede anche maggior tempo diquello richiesto dalla composizione del testo percheacute alla grafica si daragrave piugraveimportanza in quanto i disegni verranno osservati per primi

bull Pianificate di usare lo stesso tempo per la creazione e la revisione dei vostrigrafici quanto ne dedichereste ad un testo della stessa estensione

bull Grafici difficili con unrsquoalta densitagrave di informazione vi possono richiedereanche piugrave tempo

bull Grafici molto semplici vi possono richiedere meno tempo ma verosimil-mente voi non volete scrivere un documento con ldquografici molto semplicirdquoper lo meno non lo volete come non vorreste scrivere ldquotesti molto semplicirdquodella stessa estensione

130 CAPITOLO 7 LATEX FIGURE

783 Piano di lavoro per creare un graficoQuando scrivete un articolo (scientifico) probabilmente seguite questo schemaavete dei dati o dei risultati da comunicare La creazione dellrsquoarticolo tipicamentecomincia con la predisposizione di una scaletta Poi le varie sezioni vengonoriempite con il testo per creare la prima bozza Questa bozza subisce diverserevisioni e spesso dopo revisioni sostanziali finalmente diventa lrsquoarticolo finaleTipicamente in un buon articolo per una rivista non crsquoegrave una sola frase che arrivialla fine senza aver subito qualche modifica

Creare la grafica segue lo stesso percorso

bull Decidete dapprima che cosa il grafico deve comunicare al lettore prendeteconsapevolmente questa decisione cioegrave domandatevi ldquoQuesto grafico checosa deve dire al lettorerdquo

bull Preparate uno schema grossolano del grafico con la sua forma e i suoipunti essenziali spesso va bene farlo con carta e matita Spesso egrave utileabbozzare il disegno su carta millimetrata o almeno quadrettata

bull Inserite i successivi dettagli per produrre la prima bozza

bull Revisionate il grafico via via che rivedete il testo

784 Collegamento fra testo e graficoI grafici possono essere collocati in diverse posizioni rispetto al testo nel senso cheessi possono venire collocati in linea col testo ovvero ldquoin mezzo al testordquo oppureessi possono essere usati come ldquofigurerdquo autonome Siccome agli stampatori piaceavere le pagine ldquopienerdquo (per motivi che sono allo stesso tempo economici edestetici) le figure autonome tradizionalmente possono venire collocate in posizionirelativamente distanti dal testo che vi fa riferimento LATEX sembra eseguire questoldquoallontanamentordquo per motivi tecnici cioegrave per dividere automaticamente il testoin pagine evitando pagine mozze eo pagine con i capoversi malamenteed eccessivamente spaziati

Quando un grafico egrave inserito in linea col testo esso viene automaticamentecollegato ad esso nel senso che le ldquoetichetterdquo del grafico vengono spiegate edescritte dal testo circostante E il testo spiega chiaramente ciograve a cui il grafico siriferisce e che cosa vi egrave mostrato

Allrsquoopposto una figura autonoma spesso viene esaminata quando il testo chevi si riferisce o non egrave ancora stato letto oppure egrave stato letto diverse pagine primaPer questo motivo egrave bene seguire le seguenti linee guida quando si creano figureautonome o flottanti

bull Le figure flottanti devono avere una didascalia che permetta di renderleldquoautocomprensibilirdquoPer esempio supponete che un diagramma rappresenti gli stadi successividellrsquoalgoritmo quicksort Allora la didascalia come minimo dovrebbe in-formare il lettore che ldquoLa figura mostra gli stadi successivi dellrsquoalgoritmoquicksort spiegato nella pagina xyzrdquo e non semplicemente ldquoAlgoritmoquicksortrdquo

78 LINEE GUIDA PER LA GRAFICA 131

bull Una buona didascalia aggiunge tanta informazione contestuale quantoegrave possibile Per esempio essa potrebbe specificare ldquoLa figura mostra idiversi stadi dellrsquoalgoritmo quicksort spiegato nella pagina xyz Nella primalinea lrsquoelemento 5 egrave scelto come cerniera Questo produce rdquo Anche sequesta informazione puograve venire inserita nel testo collocarla nella didascaliaassicura che venga mantenuta la contestualitagrave Non abbiate paura di unadidascalia di cinque righe (Il vostro revisore editoriale vi odieragrave Prendetein considerazione la possibilitagrave di ricambiarlo) Per altro ricordatevi chela didascalia egrave composta di tre parti il titolino corrente il titolo eopzionalmente il testo sfruttate la possibilitagrave di usare questo testonello stesso tempo siate succinti per evitare che LATEX incontri troppedifficoltagrave per far flottare la vostra figura in una posizione conveniente

bull Fate riferimento al grafico nel testo con una frase del tipo ldquoPer un esempiodi quicksort ldquoal lavorordquo vedete la figura mn nella pagina xyzrdquo

bull La maggior parte dei libri di tipografia raccomanda di non usare abbrevia-zioni del tipo ldquofig mnrdquo ma di scrivere ldquofigura mnrdquoLrsquoargomentazione principale contro le abbreviazioni egrave che ldquoun punto valetroppo per sprecarlo per una abbreviazionersquo Lrsquoidea egrave che un punto puograveindurre il lettore a credere che la frase finisca subito dopo ldquofigrdquo e che quindigli sia necessario ritornare indietro coscientemente per rendersi conto chela frase non egrave affatto finitaLrsquoargomentazione a favore delle abbreviazioni egrave che si risparmia spazioPersonalmente nessuna delle due argomentazioni mi convince Da un latonon ho nessuna prova convincente che le abbreviazioni rallentino la let-tura Dallrsquoaltro anche se si abbreviano tutte le parole ldquofigurardquo in ldquofigrdquo egraveveramente difficile che si risparmi anche una sola riga di testoIn alcuni libri di tipografia italiana si trova la raccomandazione dinon usare abbreviazioni nel testo principale ma se ne consente lrsquousosolo negli incisi per esempio in quelli fra parentesiIo evito le abbreviazioni

785 Coerenza fra testo e graficaProbabilmente ldquolrsquoerrorerdquo che la maggior parte della gente fa quando crea deigrafici (ricordate che un ldquoerrorerdquo nel disegno egrave sempre semplicemente ldquoignoranzardquo)egrave quello di avere un disadattamento fra lrsquoaspetto del grafico e quello del testo

Egrave abbastanza comune che gli autori usino diversi differenti programmi percreare i loro grafici per un articolo Un autore potrebbe produrre alcuni diagrammiusando gnuplot alcuni altri usando xfig e potrebbe includere alcuni grafici informato eps ottenuti da qualche collaboratore che ha usato programmi chegli sono ignoti Tutti questi grafici verosimilmente useranno diversi spessoridelle linee font differenti e avranno dimensioni diverse Inoltre gli autori spessousano opzioni come height=5cm quando includono dei grafici al fine di scalarliin modo accettabile

Se si usasse il medesimo approccio per comporre il testo ogni paragrafoverrebbe composto con un font diverso e di corpo diverso In un paragrafo i

132 CAPITOLO 7 LATEX FIGURE

teoremi verrebbero sottolineati in un altro verrebbero composti in maiuscolettoin un altro evidenziati in rosso Inoltre i margini sarebbero diversi in ogni pagina6

Neacute i lettori neacute i revisori editoriali tollererebbero un testo scritto in questomodo ma con la grafica spesso sono costretti a farlo

Per mantenere una consistenza fra testo e grafica seguite le linee guidaseguenti

bull Non cambiate scala ai grafici in altri termini non riproduceteli a dimensionidiverse da quelle con cui i diagrammi sono stati disegnatiQuesto significa che quando usate programmi esterni per creare grafici lidovete creare fin dallrsquoinizio ldquodelle dimensioni giusterdquo

bull Usate gli stessi font per i grafici e per il testo

bull Usate lo stesso spessore delle linee per i grafici e per il testoLo ldquospessore delle lineerdquo per il testo normale egrave in buona sostanza lospessore delle aste di lettere come la T Per i font del sistema TEX questosignifica 04 pt Tuttavia ci sono alcune riviste che non accettano graficiche contengano linee di spessore inferiore a 05 pt

bull Se usate i colori usateli coerentemente seguendo un ldquocodice dei colorirdquo Peresempio se usate il rosso nel testo per richiamare lrsquoattenzione del lettoreusate lo stesso colore rosso per richiamare lrsquoattenzione su parti importantidel disegno Se il colore blu egrave usato per evidenziare le parti strutturali deltesto come per esempio i titoli dei paragrafi usate lo stesso colore blu perevidenziare le parti strutturali dei vostri graficiTuttavia nella grafica si possono usare colori corrispondenti ad una codificalogica e ldquointrinsecardquo Per esempio indipendentemente dal codice dei coloriche voi possiate usare i lettori generalmente associano il colore verde aconcetti del tipo ldquopositivo va bene OKrdquo mentre associano il colore rossoa concetti come ldquoattenzione pericolo azionerdquo

Mantenere la coerenza quando si usano diversi programmi di disegno egrave quasiimpossibile Per questo motivo dovreste prendere in considerazione di usaresempre lo stesso programma

786 Legende nei graficiPraticamente tutti i disegni contengono delle etichette per individuare parti delgrafico o legende testuali che spiegano parti del grafico Quando usate questelegende rimanete aderenti alle linee guida seguenti

bull Siate coerenti nel predisporre queste legende Lo potete fare in due modiprimo siate coerenti con il testo principale usando gli stessi font Secondomantenete la coerenza fra una legenda e lrsquoaltra cioegrave se componete alcunelegende in un certo modo componente tutte le legende nello stesso modo

6Bisogna convenire che non egrave raro vedere testi composti in modo cosigrave sciatto quandosono stati usati i soliti word processor Con LATEX egrave difficile che ciograve accada non impossibilema bisogna mettercela tutta

78 LINEE GUIDA PER LA GRAFICA 133

bull Oltre ad usare gli stessi font nel testo principale e nel grafico dovresteanche usare le stesse notazioni Per esempio se scrivete 12 nel testoprincipale usate la stessa scrittura nelle legende non scrivete 05 Un πegrave un π e non 3141 Ancora eminus iπ egrave e resta eminus iπ non ldquominus1rdquo e meno chemai ldquo-1rdquo

bull Le legende devono essere leggibili7 Esse pertanto devono essere abbastanzagrandi e non devono essere disturbate dalla presenza di linee o di altrotesto a loro in parte sovrapposto Questo ovviamente vale anche per lelinee e per il testo ldquodietrordquo alle legende

bull Le legende devono stare ldquonel posto giustordquo Quando crsquoegrave abbastanza spaziole legende dovrebbero essere collocate vicino allrsquooggetto a cui si riferisconoSolo se egrave veramente necessario si puograve usare una leggera linea che connettala legenda con lrsquooggetto Evitate di usare legende che si riferiscono a spie-gazioni contenute in legende esterne altrimenti il lettore sarebbe costrettoa saltare avanti e indietro fra la spiegazione e lrsquooggetto che viene descritto

bull Prendete in considerazione la possibilitagrave di ridurre lrsquoevidenza di alcuneetichette meno importanti affincheacute il lettore possa focalizzare meglio la suaattenzione sul grafico

787 Diagrammi di vario genereSpecialmente negli articoli scientifici i grafici piugrave frequenti sono i diagrammiPossono essere composti in molte differenti maniere che vanno dai semplicidiagrammi con una sola curva ai diagrammi parametrici a quelli tridimensionaliai diagrammi a torta e molti altri

Egrave purtroppo ben noto che egrave difficile fare dei bei diagrammi In parte bisognaincolpare le impostazioni di default di programmi come gnuplot o Excel checonsentono di disegnare facilmente brutti diagrammi

La prima cosa che dovreste domandarvi quando volete creare un diagrammaegrave la seguente

bull Ci sono abbastanza dati da riportare sul diagramma

Se la risposta egrave ldquoPer la veritagrave nordquo componente una tabella invece di undiagramma

Una tipica situazione nella quale un diagramma non egrave necessario egrave quando siriportano pochi dati su un istogramma a barre Ecco un esempio reale Alla finedi un seminario lrsquooratore chiese ai presenti una valutazione Dei 50 partecipanti30 restituirono il questionario di valutazione La valutazione risultograve essere laseguente tre partecipanti dissero che il seminario era stato ottimo nove loconsiderarono buono dieci lo considerarono passabile otto scadente mentrenessuno lo considerograve pessimo

Un modo semplice per raccogliere questa informazione egrave rappresentato dallatabella 72

Quello che invece lrsquooratore fece fu di presentare il risultato sotto forma diun istogramma a barre come mostrato nella figura 78

7Legenda egrave una parola latina neutra plurale e significa ldquole cose che devono essere letterdquo

134 CAPITOLO 7 LATEX FIGURE

Valutazione Partecipanti (su 50) chediedero questa valutazione Percentuale

ottimo 3 6buono 9 18passabile 10 20scadente 8 16pessimo 0 0

nessuna 20 40

Tabella 72 Esempio di valutazione di un seminario

TTan

taundash

tikz

pict

ure

020406080

100

ottim

o

buon

o

passab

ile

scad

ente

pessim

o

Figura 78 Esempio di istogramma per presentare il risultato della valutazionedi un seminario

78 LINEE GUIDA PER LA GRAFICA 135

Si osservi che la tabella 72 e la figura 78 occupano pressappoco lo stessospazio Se il vostro primo pensiero egrave che ldquoil grafico egrave piugrave gradevole della tabellardquoprovate a rispondere alle seguenti domande basandovi sullrsquoinformazione contenutanel grafico o nella tabella

1 Quanti partecipanti crsquoerano

2 Quanti partecipanti restituirono il questionario

3 In che percentuale i partecipanti restituirono il questionario

4 Quanti partecipanti risposero ldquoottimordquo

5 Fra tutti i partecipanti quale percentuale rispose ldquoottimordquo

6 Furono piugrave di un quarto coloro che risposero ldquoscadenterdquo o ldquopessimordquo

7 Fra coloro che restituirono il questionario quale fu la percentuale di coloroche valutarono il seminario ldquoottimordquo

Purtroppo lrsquoistogramma non permette di rispondere a nemmeno una di questedomande La tabella risponde direttamente a tutte le domande tranne lrsquoultimaper la quale per altro dagrave gli elementi per eseguire il calcolo In sostanza ladensitagrave di informazione dellrsquoistogramma egrave quasi nulla la tabella ha una densitagravedi informazione molto maggiore anche se contiene una grossa parte di spaziobianco e pochi numeri

Ecco che cosa egrave andato storto con lrsquoistogramma

bull Lrsquointero grafico egrave dominato dalla presenza fastidiosa delle linee di sfondo

bull Non egrave chiaro il significato dei numeri a sinistra probabilmente si tratta dipercentuali ma potrebbe anche essere il numero assoluto dei partecipanti

bull Le legende in basso sono ruotate cosigrave che diventano piugrave difficili da leggere(Nella presentazione reale che io ho visto il testo era composto con caratteria matrici di punti campionati su una griglia di non piugrave di 10 pixel per6 pixel per ogni lettera con accostamenti errati al punto da risultare quasiilleggibile)

bull La terza dimensione aggiunge al diagramma una certa complessitagrave ma nonaggiunge nessuna informazione

bull Lrsquoimpostazione tridimensionale rende molto piugrave difficile da leggere lrsquoaltezzadelle barre Esaminate la barra ldquoscadenterdquo La sua altezza egrave maggiore ominore di 20 Mentre la parte frontale della barra egrave sotto al livello 20 ilretro della barra che egrave quello che conta egrave sopra a tale livello

bull Egrave impossibile dire quali numeri siano rappresentati dalle barre Perciograve lebarre nascondono senza necessitagrave proprio lrsquoinformazione che dovrebberodare

bull La somma delle altezze delle barre egrave 100 o 60

bull Lrsquoaltezza della barra ldquopessimordquo egrave zero o uno

bull Percheacute le barre sono blu

136 CAPITOLO 7 LATEX FIGURE

TTan

taundash

tikz

pict

ure

Valutazioni dateda 50 partecipanti

ldquopassabilerdquo 10 (20)

nessuna 20 (40)

ldquoottimordquo 3 (6)

ldquobuonordquo 9 (18) ldquoscadenterdquo 8 (16)

ldquopessimordquo 0 (0)

Figura 79 Altro esempio di diagramma per presentare il risultato dellavalutazione di un seminario

Potreste argomentare che in questo esempio i valori precisi non sono impor-tanti per il grafico La cosa importante egrave il ldquomessaggiordquo cioegrave che ci sono piugravevalutazioni ldquoottimordquo e ldquobuonordquo che valutazioni ldquoscadenterdquo o ldquopessimordquo Ma pertrasmettere questo messaggio o si usa una frase oppure si disegna un diagrammache convogli questo messaggio in modo piugrave chiaro come nella figura 79

Il grafico della figura 79 ha pressappoco la stessa densitagrave di informazionedella tabella (ha le stesse dimensioni e vi sono riportati gli stessi numeri) In piugraveuno puograve direttamente ldquovedererdquo che ci sono piugrave valutazioni ldquobuonerdquo e ldquoottimerdquoche non ldquoscadentirdquo Uno puograve anche ldquovedererdquo che il numero delle persone che nonhanno formulato valutazioni di nessun tipo non restituendo il questionario nonegrave trascurabile e questo egrave un fatto abbastanza comune quando si distribuisconoquestionari di valutazione

Anche i diagrammi spaziali spesso non sono efficaci Esaminiamo un altroesempio nella figura 710 che io ho ridisegnato traendolo dalla rivista Die Zeit 4giugno 2005 Questo diagramma della figura 710 egrave stato ridisegnato con TikZma egrave praticamente identico allrsquooriginale

A prima vista esso sembra ben fatto completo e pieno di informazioni ma cisono diverse cose che non sono a posto

bull Il grafico egrave tridimensionale Tuttavia le sfumature di colore non aggiungononulla dal punto di vista informativo al piugrave distraggono

bull In un grafico 3-D le dimensioni relative sono molto distorte Per esempiolrsquoarea occupata dalla zona grigia ldquoBraunkholerdquo egrave maggiore dellrsquoarea occupa-ta dalla zona verde della ldquoKernenergierdquo malgrado il fatto che la percentualedellrsquoenergia prodotta con il Braunkhole sia inferiore alla percentuale diquella nucleare

bull La distorsione della grafica 3-D diventa ancora peggiore per le piccole areeLrsquoarea dellrsquoenergia ldquoRegenerativerdquo risulta piugrave grande di quella occupatadallrsquoarea destinata allrsquo ldquoErdgasrdquo Lrsquoarea del ldquoWindrdquo egrave appena minore diquella ldquoMineraloumllprodukterdquo anche se la percentuale del Wind egrave quasi trevolte maggiore di quella del Mineraloumllprodukte

78 LINEE GUIDA PER LA GRAFICA 137TTan

taundash

tikz

pict

ure

Kohle ist am wichtigstenEnergiemix bei der deutschen Stromerzeugung 2004

Gesamte Netto-Stromerzeugung in Prozent in Milliarden Kilowattstunden (Mrd kWh)

94

278

256223

104

Regenerative (537 kWh)davon Wind 44 (250 kWh)

Kernenergie(1584 kWh)

Braunkohle (1460 kWh)Steinkohle (1271 kWh)

Erdgas (592 kWh)

Mineraloumllprodukte (92 kWh) 16

Sonstige (165 kWh) 29

Figura 710 Esempio di diagramma a torta per confrontare le fonti di produzionedellrsquoenergia elettrica in Germania nel 2004 Regenerative rinnovabile Wind eolicaKernenergie nucleare Braunkhole lignite Steinkhole litantrace Erdgas metanonaturale Mineraloumllprodukte petrolio e derivati Sonstige altre fonti

In questrsquoultimo caso le dimensioni diverse sono solo in parte dovute alladistorsione 3-D I disegnatori del grafico originale hanno anche fatto la fettaldquoWindrdquo troppo piccola anche tenendo conto della distorsione (Si confrontinoin generale le dimensioni del ldquoWindrdquo con quelle del ldquoRegenerativerdquo)

bull Stando alla didascalia di questo grafico esso dovrebbe darci lrsquoinformazioneche in Germania il carbone egrave stata la sorgente di energia piugrave importantenel 2004 Tralasciando le forti distorsioni prodotte dallrsquoimpostazione 3-Dci vuole della buona volontagrave per percepire il messaggioIl carbone come fonte di energia egrave diviso in due fette una per il ldquoBraunkholerdquoe lrsquoaltra per il ldquoSteinkholerdquo (due diversi tipi di carbone) Quando si uniscanole due fette solo allora si vede che la metagrave inferiore della torta egrave presa dalcarboneInoltre le due aree per i due differenti tipi di carbone non sono per nientecollegate visualmente Invece sono usati due colori differenti e le rispettivelegende sono ai lati opposti del disegno A confronto ldquoRegenerativerdquo eldquoWindrdquo sono collegate molto strettamente

bull Il codice dei colori del grafico non segue nessuna regola logica Percheacutelrsquoenergia nucleare egrave segnata in verde Percheacute lrsquoenergia rinnovabile egrave azzurrae quella derivata da altre fonti egrave blu Sembra addirittura una barzellettache lrsquoarea del Braunkhole (letteralmente del carbone marrone) sia grigiopietra mentre lrsquoarea dello Steinkhole (letteralmente carbone di pietra) siamarrone

bull Lrsquoarea con il colore piugrave chiaro egrave destinata allrsquo ldquoErdgasrdquo Questrsquoarea emergedal diagramma con piugrave forza sebbene secondo questo diagramma lrsquo ldquoErdgasrdquonon sia veramente importante

Edward Tufte chiama i grafici come quello della figura 710 ldquografici spazzaturardquo

138 CAPITOLO 7 LATEX FIGURE

Ecco allora alcune raccomandazioni per aiutarvi a non produrre graficispazzatura

bull Non fate diagrammi a torta tridimensionali questi sono spazzatura

bull Esaminate se non sia meglio preferire una tabella a un diagramma a torta

bull Non usate i colori a caso usateli invece per dirigere lrsquoattenzione del lettoree per raggruppare gli oggetti

bull Non usate tessiture di sfondo come le tessiture a graticcio o di lineediagonali usate piuttosto i colori Le tessiture distraggono Le tessiture disfondo nei diagrammi informativi sono spazzatura8

788 Attenzione e distrazionePrendete il vostro romanzo preferito ed esaminate una pagina tipica Notereteche la pagina egrave molto uniforme Non crsquoegrave nulla che possa distrarre il lettore mentrelegge Non ci sono grandi titoli non crsquoegrave testo composto in neretto non ci sonospazi bianchi di grandi dimensioni Invece se lrsquoautore vuole evidenziare qualcosalo fa componendolo in corsivo Il corsivo si adatta benissimo al font usato per iltesto principale verosimilmente il tondo e a una certa distanza non riuscirestea dire se la pagina contiene lettere in corsivo mentre notereste subito se ci fosseanche una sola una parola composta in nero Il motivo per il quale i romanzisono scritti cosigrave segue il paradigma seguente ldquoEvita le distrazionirdquo

La buona tipografia (come anche la buona organizzazione) egrave qualcosa che nonsi nota Il compito della tipografia egrave quello di rendere il piugrave possibile comoda lalettura del testo e quindi del recepimento dellrsquoinformazione che esso contiene Perun romanzo i lettori recepiscono lrsquoinformazione leggendo il testo una riga dopolrsquoaltra come se stessero ascoltando qualcuno che racconta una storia In questasituazione qualunque cosa ci sia sulla pagina che distrae lrsquoocchio dallrsquoandarerapidamente e uniformemente da una riga alla successiva rende la lettura deltesto meno agevole

Ora prendete la vostra rivista preferita o il vostro quotidiano ed esaminateuna pagina tipica Noterete che la pagina contiene un gran ldquomovimentordquo I fontsono usati con corpi differenti e con strutture compositive diverse il testo egraveorganizzato in colonne strette spessissimo interrotte da immagini I motivi peri quali le riviste e i quotidiani sono composti in questo modo segue un altroparadigma ldquoGuida lrsquoattenzionerdquo

I lettori non leggono una rivista come un romanzo Invece di leggere unarivista una riga dopo lrsquoaltra essi leggono i titoli o dei brevi riassunti (sottotitoli)per verificare se sono interessati a leggere lrsquointero articolo Nel momento perogravein cui il lettore ha deciso che vuole leggere lrsquoarticolo egli non vuole piugrave esseredistratto ed egrave per questo che gli articoli sono scritti proprio come i romanzi

I due principi ldquoevita le distrazionirdquo e ldquoguida lrsquoattenzionerdquo si applicano anchealla grafica Quando disegnate un grafico dovete eliminare ogni cosa che ldquodistraggalrsquoocchiordquo Nello stesso tempo dovete cercare attivamente di guidare il lettore

8Dovendo stampare in bianco e nero e tonalitagrave di grigio usate preferibilmente sfondidi diverse tonalitagrave di grigio piuttosto che tessiture di vario genere Fate attenzione a nonscegliere grigi troppo chiari o troppo scuri percheacute in stampa potrebbero apparire decisamentebianchi o neri Nello stesso tempo fra grigi adiacenti state attenti ad usare grigi contrastantio grigi concordanti a seconda della contestualizzazione delle aree da rappresentare

78 LINEE GUIDA PER LA GRAFICA 139

ldquoattraverso il graficordquo usando i font i colori e gli spessori delle linee per evidenziarele varie parti

Qui crsquoegrave una lista assolutamente non completa di cose che possono distrarreil lettore

bull I forti contrasti attraggono sempre lrsquoocchio Per esempio si considerino leseguenti due griglie

C Beccari ndash tikzpicture

Sebbene la griglia di sinistra appaia per prima quando noi leggiamo lapagina nella direzione solita da sinistra a destra egrave verosimile che la grigliadi destra sia percepita per prima il contrasto bianco-nero egrave maggiore diquello che si trova nel contrasto grigio-bianco9 Inoltre nella griglia didestra ci sono piugrave punti di cambiamento di contrasto che ne aumentanolrsquoeffettoOggetti come le griglie e in generale le linee delle coordinate non dovreb-bero di solito attrarre lrsquoattenzione del lettore e quindi dovrebbero esseredisegnate con un debole contrasto rispetto allo sfondo Inoltre una grigliaa maglie larghe distrae di meno di una griglia a maglie strette

bull Le linee tratteggiate creano molti punti in cui crsquoegrave un contrasto bianco-neroLe linee tratteggiate o punteggiate in generale distraggono moltoNon usate linee con differenti tratteggi per differenziare curve diverse Siperdono dei dati in questo modo (a meno che lo stacco fra i trattini eo ipuntini non sia molto piccolo) e lrsquoocchio non riesce bene a raggruppare glioggetti sulla base del tratteggio Lrsquoocchio riesce molto meglio a raggrupparegli oggetti sulla base dei coloriStampando in bianco e nero talvolta egrave necessario violare questa racco-mandazione progettando bene i diagrammi egrave possibile usare i tratteggicome egrave possibile usare tonalitagrave di grigio Tuttavia se le dimensioni ele distanze delle linee da tracciare (mai piugrave di quattro sullo stessodiagramma) lo consentono si possono tracciare le varie curve conlinee continue differenziandole mediante lrsquoapposizione di triangoli-ni quadratini cerchietti eccetera su ciascuna curva specialmentese collocati in corrispondenza dei punti (nodi) da tracciare lungociascuna curva

bull Inserire degli sfondi con linee diagonali verticali o orizzontali o anchesemplicemente con dei puntini risulta quasi sempre una distrazione etipicamente non serve a niente

bull Piccole immagini (clip arts) possono essere simpatiche ma di solito distrag-gono

9Se state esaminando queste due griglie sullo schermo tenete conto che le linee dellagriglia di sinistra sono tracciate in colore grigio il grigio di default con 75 di bianco e 25di nero la griglia di destra egrave disegnata in nero La qualitagrave dello schermo e la sua tecnologianoncheacute la sua densitagrave di pixel potrebbe rendere difficile la percezione di queste differenze

140 CAPITOLO 7 LATEX FIGURE

789 CommentiTill Tantau con molta modestia afferma che ha preso queste raccoman-dazioni e queste linee guida da libri famosi e autorevoli in particolareda quelli di Edward Tufte Egli spera che queste raccomandazioni nonrappresentino le sue personali preferenze ma siano il meglio che egrave riuscitoa distillare da quei libri

In alcuni casi le linee guida indicate sembrano un porsquo troppo cogenti obencheacute perfettamente comprensibili lasciano il dubbio di essere difficili daapplicare

Certo quello che si deduce da queste righe egrave che come la composizionetipografica egrave unrsquoarte che va appresa e coltivata cosigrave la grafica richiede nonpoca dedizione e studio oltre alla abilitagrave personale del disegnatore

Oggi dovrebbe essere piugrave facile di ieri trovare un buon grafico che possafare i nostri disegni ma anche il miglior grafico di questo mondo non faragravedei bei disegni se noi stessi non siamo capaci di informarlo di che cosa ildisegno deve trasmettere al lettore egrave molto piugrave facile farlo con lo scrittoche con il disegno

Tuttavia quelli di noi che devono produrre documenti scientifici conun certa dose di grafici diagrammi e pittogrammi egrave bene che imparinoqueste linee guida (compreso il fatto che le linee guida possono anche nonessere rispettate se lo si fa con cognizione di causa) Esistono delle normeUNI [48] che danno altre linee guida (non necessariamente in contrastocon quelle qui esposte forse solo esposte con parole diverse) che chi deveprodurre disegni tecnici dovrebbe sempre osservare Debbo dire che gliesempi riportati nella versione cartacea di queste norme sono bellissimie per quello che si puograve dire dal risultato visivo sembrano perfettamentecoerenti con le linee guida qui esposte

Egrave bene sottolineare che le norme di disegno statunitensi sono moltodiverse da quelle europee un disegno fatto seguendo quelle norme sidistingue a colpo drsquoocchio per altro si distingue a colpo drsquoocchio anche undisegno costruito senza seguire nessuna norma di solito il risultato non egraveaffatto bello

Capitolo 8

LATEX lrsquoimportazionedi figure esterne

81 IntroduzioneCome accennato nel capitolo precedente capita di dover importare disegni oimmagini prodotte con strumenti esterni Per quel che riguarda i disegni al trattosi egrave giagrave spiegato quali vantaggi ci siano ad usare i programmi di disegno natividel sistema TEX Tuttavia puograve succedere di dover importare disegni o immaginiprodotti allrsquoesterno

Qui ci concentreremo sulle immagini sostanzialmente le fotografie o altridisegni a mezze tinte non ottenibili da un semplice programma specializzato peresempio nel tracciare diagrammi a due o a tre dimensioni

Il pacchetto pgf gestisce anche lrsquoimportazione delle immagini esterne malo strumento principe per operare in questa direzione egrave senzrsquoaltro il pacchettographicx che da anni costituisce lrsquointerfaccia di riferimento

Prima perograve di addentrarci nellrsquouso di quel pacchetto bisogna fermarsi unattimo per meditare sulla moltitudine di formati grafici che rendono le cose menosemplici di quanto potrebbero essere

82 I formati graficiI formati grafici si distinguono sostanzialmente in formati vettoriali e in formatia matrici di pixel Essi hanno caratteristiche diverse e per certe applicazionivanno meglio i primi mentre per certe altre vanno meglio i secondi

821 I formati vettorialiI formati vettoriali sono descritti sostanzialmente mediante una specie di pro-gramma che contiene le istruzioni per tracciare i contorni delle aree dove il coloreegrave sostanzialmente costante questi contorni sono costituiti dalla conoscenza delleserie di punti per i quali devono passare le curve di Beacutezier che li descrivono Questiformati sono usatissimi per tracciare anche quei particolari disegni costituiti daicaratteri dei vari font questi infatti devono potersi disegnare rapidamente maspecialmente se devono essere presentati sullo schermo devono essere scalabili a

141

142 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

piacere senza che lrsquoingrandimento o il rimpicciolimento producano difetti degnidi nota

Egrave chiaro che se il disegno egrave costituito dai contorni delle aree dello stessocolore il problema del cambiamento di scala ha una soluzione banale in quantobasta moltiplicare le coordinate dei punti che descrivono il contorno per ilfattore di scala per il resto non cambia praticamente nulla In realtagrave quando sirimpicciolisce un disegno che contiene delle linee sottili queste diventano ancorapiugrave sottili e per esempio sullo schermo che ha una densitagrave di puntini luminosiabbastanza bassa da 70 a 100 puntini al pollice queste linee diventerebberotroppo sottili per essere rappresentate lrsquoalgoritmo di rappresentazione devecontenere quindi dei suggerimenti (hints) per produrre un effetto finale che nonlasci sparire le linee troppo sottili

In questo testo lrsquoargomento diventerebbe troppo tecnico e non si insisteoltre tuttavia vale la pena di ricordare che i formati grafici vettoriali piugrave notie frequenti sono il formato PostScript (estensione del file ps) e il suo parentestretto Encapsulated PostScript (estensione eps) oggi sta diventando semprepiugrave frequente il formato Scalable Vector Graphics (estensione svg) usatospecialmente per le applicazioni Web

Crsquoegrave anche il formato di uscita del programma METAPOST che partendoda un file sorgente simile a quanto si potrebbe scrivere con il programma dicreazione dei font creato da Donald E Knuth produce unrsquouscita in una speciedi linguaggio PostScript ridotto e semplificato Il programma egrave molto utile perprodurre disegni al tratto che vanno dai disegni ai diagrammi ma lrsquounico difettoegrave che il linguaggio non egrave dei piugrave semplici e quindi il programma egrave poco usatocomunque meno di quanto meriterebbe

A stretto rigore il formato Portable Document Format (estensione pdf)sarebbe un formato vettoriale e sotto molti aspetti lo egrave Tuttavia il file egrave unfile con il codice compresso (zippato secondo una diffusa terminologia) mail file decompresso egrave sostanzialmente un sotto insieme del formato PostScriptquindi sostanzialmente vettoriale Il suo tipo di compressione richiede programmispeciali per la visualizzazione e stampa destinati specialmente a rendere lapagina sotto forma grafica

822 I formati diversi da quelli vettorialiLe fotografie sono oggi piugrave spesso di ieri in formato JPEG (estensione jpg)Tuttavia i formati di matrici di pixel sono diffusissimi e le estensioni vannoda bmp a wmf da tiff a gif e a Portable Network Graphics (estensionepng) questa egrave solo una piccola elencazione di formati grafici percheacute esistonodei formati specifici per certi particolari apparecchi fotografici digitali o per certicodici di colore

Il vantaggio dei formati a matrici di pixel egrave che i programmi per la loropresentazione sono particolarmente rapidi a produrli in forma visibile per gliumani Tuttavia hanno un paio di difetti tuttrsquoaltro che trascurabili

Il primo difetto egrave che unrsquoimmagine di pochi pixel non puograve essere ingrandita suunrsquoarea che contenga piugrave pixel percheacute essa non contiene abbastanza informazioneper colorare correttamente i pixel della riproduzione Unrsquoimmagine quadrata di100 pixel per 100 pixel puograve essere rappresentata abbastanza bene sullo schermodi un PC ed appariragrave unrsquoimmagine di circa 30mm per 30mm Se si vuol vederea pieno schermo la stessa immagine cioegrave su unrsquoarea di 800 pixel per 640 pixel si

82 I FORMATI GRAFICI 143

capisce bene che il meglio che si possa fare egrave di rappresentare i pixel dellrsquoimmaginecome quadrati di circa 8 pixel per 8 pixel cioegrave sgranando lrsquoimmagine cosiccheacuteappare come un mosaico di quadrati tuttrsquoaltro che piccoli con la conseguenzache i contorni non sono piugrave nitidi La situazione peggiora notevolmente sullacarta dove il quadrato di 100 pixel per 100 pixel copre un quadratino di circa8mm per 8mm stampando con una stampante con una densitagrave di 300 puntini alpollice e di circa 4mm per 4mm stampando a 600 puntini al pollice se si volesseingrandire lrsquoimmagine come la si vede sullo schermo lrsquoeffetto mosaico sarebbetalmente importante che difficilmente si riuscirebbe a riconoscere lrsquoimmagine

Egrave vero esistono programmi che consentono di eseguire un filtraggio bidi-mensionale in modo da ridurre lrsquoeffetto mosaico ma questo si paga con unaminore definizione dei contorni cosa che spesso rappresenta il male minoretenuto conto della poca informazione contenuta nel file di partenza non si pensidi ottenere quei meravigliosi effetti che vengono mostrati in televisione dove lapolizia scientifica ingrandisce le immagini delle videocamere di videosorveglianza(che notoriamente riprendono le immagini con una definizione piuttosto bassa)fino a leggere numeri di targa o a riconoscere i lineamenti del colpevole

La situazione egrave un poco migliore se si vuole ridurre lrsquoimmagine su unrsquoareache contenga un porsquo meno pixel ma il tutto egrave affidato alla qualitagrave del tipo dirappresentazione o di stampa Conclusione si preferiscano sempre i formativettoriali che possono essere ingranditi e rimpiccioliti a piacere Tuttavia talvoltaldquobisogna fare di necessitagrave virtugraverdquo

Se a questo si aggiunge il secondo inconveniente dovuto al fatto che alcuniformati sono compressi in una maniera che sfrutta la ridondanza delle immaginici si rende conto che un simile metodo perde parte dellrsquoinformazione e quando ilfile viene decompresso per la resa dellrsquoimmagine su schermo o su carta appaionodegli artefatti che derivano dallrsquoimpossibilitagrave di comprimere il file in mododecisivo senza perdere parte dellrsquoinformazione che lrsquoimmagine contiene Se sitratta di una fotografia con colori sfumati e senza contorni netti questo disturbosi nota poco ma se si trattasse di un disegno al tratto la resa potrebbe essereinaccettabile

Per le fotografie il formato jpg va abbastanza bene ma puograve variare notevol-mente da una fotografia allrsquoaltra Per i disegni al tratto se non fosse possibileavere dei disegni in formato vettoriale allora il formato piugrave adeguato sarebbequello con estensione png

In ogni caso fra i formati di questo paragrafo quello di gran lunga preferibilesarebbe il formato pdf almeno nelle circostanze in cui il file PDF egrave statocomposto senza perdere la natura vettoriale del disegno di partenza

Tanto per rendere piugrave visibile il fenomeno appena descritto la figura 81mostra due diagrammi ottenuti con Excel e salvati uno in formato PNG e lrsquoaltroin formato PDF Per entrambi si egrave ingrandito di circa 10 volte il quadratinoevidenziato sulla parte di sinistra Come si vede lrsquoeffetto di quantizzazionenella figura in formato PNG rende lrsquoingrandimento assolutamente irriconoscibilementre lrsquoingrandimento della figura vettoriale in formato PDF egrave perfetto e sidistinguono persino i puntini sui quali Excel ha interpolato la curva

144 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

Figura 1 Una immagine png (bitmapped) e un suo dettaglio ingrandito di 10 volte conil formato jpg la situazione sarebbe ancora peggiore

Figura 1 Una immagine png (bitmapped) e un dettaglio ingrandito di 10 volte

Figura 2 Una immagine pdf (vettoriale) e un dettaglio ingrandito di 10 volte

Raccomandazioni analoghe si applicano agli spessori delle linee che formano ildisegno al tratto se in partenza queste linee sono sottili ma appaiono gradevoli sulloschermo quando si compone il disegno esse possono apparire invisibili quando sonorimpicciolite insieme al disegno per stamparle su carta

Anche le tonalita di grigio vanno dosate con cura se si usano delle tonalita digrigio per evidenziare alcune parti del disegno e importante che questo grigio non siatroppo chiaro perche altrimenti a stampa potrebbe risultare praticamente bianco netroppo scuro altrimenti apparirebbe praticamente nero Se possibile sarebbe meglioservirsi di retinature (tratteggio puntini trattini eccetera) piuttosto che tonalita digrigio Nelle fotografie il discorso e diverso perche le mezze tinte cioe le sfumaturedi grigio consentono di stampare le fotografie abbastanza bene se presso la tipografiaviene regolato bene il livello di contrasto

Inoltre se le risposte sono da scegliere fra 5 figurine al fine di consentire la permuta-zione delle risposte e indispensabile che queste figurine non siano identificate da letterema dalle cifre 1 2 3 4 e 5 Se per esempio il file grafico paperinopdf contiene siala figura principale sia le cinque figurine delle risposte come nella figura 3 allora ilquesito puo essere formulato in questo modo

7

Figura 2 Una immagine pdf (vettoriale) e un suo dettaglio ingrandito di 10 volte

in verticale bisogna quindi stare molto attenti quando si usa il programma di disegnoperche questo potrebbe indurre a valutare male le dimensioni del disegno effettivo percui lrsquoeventuale eccessivo scalamento porterebbe molto spesso a rimpicciolire i caratterifino a renderli illeggibili

Raccomandazioni analoghe si applicano agli spessori delle linee che formano ildisegno al tratto se in partenza queste linee sono sottili ma appaiono gradevoli sulloschermo quando si compone il disegno esse possono apparire invisibili quando sonorimpicciolite insieme al disegno per stamparle su carta

Anche le tonalita di grigio vanno dosate con cura se si usano delle tonalita digrigio per evidenziare alcune parti del disegno e importante che questo grigio non siatroppo chiaro perche altrimenti a stampa potrebbe risultare praticamente bianco netroppo scuro altrimenti apparirebbe praticamente nero Se possibile sarebbe meglioservirsi di retinature (tratteggio puntini trattini eccetera) piuttosto che tonalita digrigio Nelle fotografie il discorso e diverso perche le mezze tinte cioe le sfumaturedi grigio consentono di stampare le fotografie abbastanza bene se presso la tipografia

9

(a)

Figura 1 Una immagine png (bitmapped) e un suo dettaglio ingrandito di 10 volte conil formato jpg la situazione sarebbe ancora peggiore

Figura 1 Una immagine png (bitmapped) e un dettaglio ingrandito di 10 volte

Figura 2 Una immagine pdf (vettoriale) e un dettaglio ingrandito di 10 volte

Raccomandazioni analoghe si applicano agli spessori delle linee che formano ildisegno al tratto se in partenza queste linee sono sottili ma appaiono gradevoli sulloschermo quando si compone il disegno esse possono apparire invisibili quando sonorimpicciolite insieme al disegno per stamparle su carta

Anche le tonalita di grigio vanno dosate con cura se si usano delle tonalita digrigio per evidenziare alcune parti del disegno e importante che questo grigio non siatroppo chiaro perche altrimenti a stampa potrebbe risultare praticamente bianco netroppo scuro altrimenti apparirebbe praticamente nero Se possibile sarebbe meglioservirsi di retinature (tratteggio puntini trattini eccetera) piuttosto che tonalita digrigio Nelle fotografie il discorso e diverso perche le mezze tinte cioe le sfumaturedi grigio consentono di stampare le fotografie abbastanza bene se presso la tipografiaviene regolato bene il livello di contrasto

Inoltre se le risposte sono da scegliere fra 5 figurine al fine di consentire la permuta-zione delle risposte e indispensabile che queste figurine non siano identificate da letterema dalle cifre 1 2 3 4 e 5 Se per esempio il file grafico paperinopdf contiene siala figura principale sia le cinque figurine delle risposte come nella figura 3 allora ilquesito puo essere formulato in questo modo

7

Figura 2 Una immagine pdf (vettoriale) e un suo dettaglio ingrandito di 10 volte

in verticale bisogna quindi stare molto attenti quando si usa il programma di disegnoperche questo potrebbe indurre a valutare male le dimensioni del disegno effettivo percui lrsquoeventuale eccessivo scalamento porterebbe molto spesso a rimpicciolire i caratterifino a renderli illeggibili

Raccomandazioni analoghe si applicano agli spessori delle linee che formano ildisegno al tratto se in partenza queste linee sono sottili ma appaiono gradevoli sulloschermo quando si compone il disegno esse possono apparire invisibili quando sonorimpicciolite insieme al disegno per stamparle su carta

Anche le tonalita di grigio vanno dosate con cura se si usano delle tonalita digrigio per evidenziare alcune parti del disegno e importante che questo grigio non siatroppo chiaro perche altrimenti a stampa potrebbe risultare praticamente bianco netroppo scuro altrimenti apparirebbe praticamente nero Se possibile sarebbe meglioservirsi di retinature (tratteggio puntini trattini eccetera) piuttosto che tonalita digrigio Nelle fotografie il discorso e diverso perche le mezze tinte cioe le sfumaturedi grigio consentono di stampare le fotografie abbastanza bene se presso la tipografia

9

(b)

CBeccari ndash picture Microsoft Excel Mac OS X Preview

Figura 81 Confronto sugli effetti dellrsquoingrandimento su due figure simili (a)Immagine in formato bitmapped PNG (b) in formato vettoriale PDF la parteingrandita a destra corrisponde al riquadro evidenziato nella parte di sinistra

83 I formati accettabili a seconda del program-ma di composizione

A seconda che si usi LATEX o pdfLATEX alcuni formati sono accettabili e altrino Peccato Il solo formato accettabile da tutti sarebbe il formato di uscita diMETAPOST Ma anche per questo ci vuole un poco di maquillage Lrsquoestensionedel nome di questi file egrave costituita da un numero progressivo per esempio 008percheacute si trattava dellrsquoottavo disegno in uscita dallrsquoelaborazione dello stessofile sorgente Questa estensione egrave accettabile da LATEX ma non egrave accettabile dapdfLATEX Perciograve egrave necessario cambiare lrsquoestensione di tutti i file di uscita daMETAPOST aggiungendo lrsquoestensione mps o meglio cambiandone il nome peresempio da mypicture008 a mypicture-008mps Ciograve fatto la cosa va bene sia

83 I FORMATI ACCETTABILI 145

per LATEX sia per pdfLATEX ma oltre al modo manuale esiste dalla versione1000 di METAPOST un modo che sfrutta un meccanismo di denominazione deifile per modelli

Un modello di nome egrave una stringa racchiusa tra doppi apici che include codicisegnaposto tra cui j per il nome del file sorgente e 3c per il numero di figuracon formato fisso a tre caratteri Otteniamo quindi lo stesso effetto descrittodellrsquoesempio precedente scrivendo lrsquoistruzione di preambolo del file sorgente mp1

outputtemplate = j-3cmps

Una alternativa legata allrsquouso del pacchetto graphicx potrebbe essere quelladi definire una nuova regola di elaborazione dei file grafici se si usa pdfLATEX sipuograve usare il comando DeclareGraphicsRule e specificare nel preambolo

DeclareGraphicsRulemps

Con questo si dichiara che qualunque altro formato (asterisco) diverso da quelliper i quali esiste una apposita regola debba venire trattato come un file ottenutoda METAPOST Questo egrave un escamotage che presenta qualche inconveniente mase si egrave sicuri di usare solo file ottenuti da METAPOST non dovrebbe presentarsinessun problema

Tuttavia bisogna stare attenti a tutti gli altri formati secondo quanto dettoqui di seguito

831 I formati accettabili da latexlatex di per seacute non accetta nessun formato grafico sono i driver DVI che accettanoquesto o quel formato Il driver dvips accetta solo i formati vettoriali quindioltre allrsquouscita di METAPOST esso accetta solo i formati eps e ps il formatoEncapsulated egrave preferibile rispetto al formato PostScript percheacute sicuramentenon contiene comandi PostScript che risultano incompatibili con lrsquoinserimentodelle figure allrsquointerno di unrsquoaltra pagina PostScript Bencheacute il formato possaessere vettoriale dvips non accetta assolutamente il formato pdf

Invece il driver dvipdfm accetta sia il formato drsquouscita del programma ME

TAPOST sia i formati vettoriali PostScript eps (preferibilmente) e ps sia iformati pdf jpg e png Per questi ultimi necessita di file ausiliari che contenga-no le dimensioni del rettangolo tangente (bounding box) ma la distribuzione delpacchetto contiene anche un programmino ebb che estrae queste informazioni e letrascrive in file adeguati per lrsquouso che dvipdfm ne deve fare Per i file PostScriptin formato eps e ps esso ricorre automaticamente al processo di conversioneattraverso lrsquoinvocazione del programma gs per ottenerne la versione pdf Questoricorso al programma esterno egrave necessario percheacute dvipdfm egrave capace di interpretarecodice PostScript sufficientemente semplice (per esempio quello contenuto nel filedi uscita di METAPOST) ma non egrave in grado di interpretare codice PostScriptarbitrariamente complesso Questo egrave il motivo per il quale dvipdfm non egrave ingrado di trattare file DVI che contengano le istruzioni PostScript generate dalpacchetto PSTricks

1Il comando METAPOST outputtemplate ha sostituito dalla versione 1200 il comandofilenametemplate che quindi oggi egrave classificata come deprecata Notizie complete sui codicisegnaposto si trovano nel manuale a cui si rimanda

146 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

Metodo di compilazione Ingombro in bytepdftex 2 283 510tex + dvipdfm 2 269 821tex + dvipdfmx 2 007 012tex + dvips + ps2pdf 3 485 081

Tabella 81 Dimensioni in byte dei file PDF ottenuti compilando il TEXbookcon diversi metodi

Si segnala lrsquoesistenza del programma dvipdfmx unrsquoestensione di dvipdfmche dovrebbe presentare una maggiore funzionalitagrave Unito ad altri pacchetti diestensione come per esempio pdfcomment consente di creare le annotazioni unacaratteristica del formato PDF che non sarebbe nativamente realizzabile con ilsemplice latex Tuttavia salvo alcune limitazioni importanti come lrsquoimpossibilitagravedi convertire direttamente file che contengano codice PostScript avanzato comequando si usa PSTricks sembra che questo programma esteso sia il piugrave efficacenel trasformare un file DVI nel corrispondente file PDF in termini di ingombroid memoria

A questo proposito merita di segnalare una tabellina qui riprodotta in modosemplificato generata da Peacuteter Szaboacute e pubblicata negli atti della EuroTEXConference del 2009 dove sono riportati gli ingombri in byte dei file PDF ottenuticon diversi procedimenti tabella 81

832 I formati accettabili da pdflatexpdfLATEX oltre al formato di uscita di METAPOST e al formato pdf per ovvimotivi di compatibilitagrave accetta in entrata anche i formati jpg e png Laversione distribuita con TEX Live a partire dal 2009 egrave stata estesa per convertireautomaticamente il formato eps in formato pdf O meglio quella distribuzionedi TEX Live contiene un comodo pacchetto di conversione epspdfconversion2

che agisce dietro le quinte e sfrutta la capacitagrave dellrsquointerprete pdftex di eseguiredei comandi di sistema3 La figura 82 contiene infatti lrsquoinclusione del file graficotigereps che fa parte dei file di esempio della distribuzione di GhostScriptconvertito al volo durante lrsquoesecuzione del programma pdflatex con cui egrave statocomposto questo documento Durante lrsquoesecuzione si osserva una breve pausauna tantum durante la quale lrsquointerprete pdftex si ferma un istante per lanciareun programma di sistema per convertire il formato eps dellrsquoimmagine nelformato pdf Questa operazione egrave eseguita una tantum nel senso che se il fileconvertito esiste giagrave lrsquointerprete incorpora lrsquoimmagine convertita direttamentese perograve lrsquoimmagine eps egrave stata aggiornata con una versione piugrave recente laconversione viene eseguita di nuovo I comandi per generare la figura 824 sono iseguenti

2Vedi anche il pacchetto epstopdf da non confondere con il programma epstopdf che fa piugraveo meno le stesse cose anzi epspdfconversion si appoggia direttamente al pacchetto epstopdf

3Questo egrave possibile se lrsquointerprete egrave abilitato allrsquoesecuzione dei programmi attraverso ilcomando write18 nel file log nelle prime righe egrave evidenziato se lrsquointerprete egrave in grado dieseguire questa operazione Se non lo fosse basta aggiungere lrsquoopportuna opzione alla linea dicomando Si veda la pagina 302 per i dettagli

4La figura tigereps viene distribuita insieme al programma gs

83 I FORMATI ACCETTABILI 147

Figura 82 Inclusione del file tigereps da parte di pdflatex tramite il pacchettoepspdfconversion

beginfigurecenteringincludegraphics[width=7textwidth]tigerepscaptionInclusione del file texttttigereps da parte di

progpdflatex tramite il pacchetto packepspdfconversionlabelfigtigerendfigure

Ovviamente nel preambolo egrave stato invocato il pacchetto epspdfconversionmediante il solito comando

usepackageepspdfconversion

Se perograve si sta usando la distribuzione del 2010 di TEX Live non crsquoegrave bisogno dicaricare nessun pacchetto il programma si comporta nello stesso modo descrittosopra per la versione del 2009 ma lo fa automaticamente grazie al fatto che lacapacitagrave di eseguire comandi esterni mediante egrave sempre attivata una versioneprotetta del comando write18 questa versione protetta consente di usareldquoindiscriminatamenterdquo alcuni comandi del sistema TEX non qualunque comandodel sistema operativo A partire dalla distribuzione del 2010 quindi si puograveconsiderare che anche il formato eps possa essere considerato standard

Si noti perograve che il formato eps non egrave nativo per il programma pdflatex perciogravese si usa il pacchetto epspdfconversion contrariamente a quanto si egrave consigliatoaltrove in questo caso egrave molto opportuno specificare lrsquoestensione eps il motivoegrave spiegato diffusamente nella documentazione sia del pacchetto epspdfconversionsia di epstopdf Ma se si usa la versione 2010 della distribuzione di TEX Livenon egrave necessario specificare lrsquoestensione

148 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

I formati PostScript grazie al loro indubbio vantaggio di essere vettoriali sonoora accettabili da pdfLATEX ma non lo erano con le precedenti versioni di questoprogramma Conviene ripetere che dalla versione 2010 il sistema TEX egrave in gradodi convertire automaticamente i file eps nei corrispondenti file pdf mediantelrsquouso protetto del comando write18 che ricorre al comando di sistema epstopdf

84 Conversione dei formatiCi troviamo forse in un vicolo cieco Per fortuna no Basta poter convertire da unformato allrsquoaltro Esistono diversi programmi per farlo e qui se ne elencano alcunila maggior parte sono disponibili per tutte le piattaforme Per altro servendosidella distribuzione 2010 di TEX Live molte delle conversioni elencate qui sottodiventano superflue quando si usi pdflatex esse restano necessarie quando sidebbano includere figure per esempio in formato bmp o in altri formati derivantida macchine fotografiche particolari o da sistemi operativi diversi da quello colquale si sta lavorando

ghostscript e meglio ancora la sua interfaccia grafica ghostview (conosciuta anchecol nome gview) permettono di trasformare una immagine ps oppure epsin immagine pdf e viceversa Allrsquooccorrenza il programma egrave capace ditrasformare un file ps in un file eps assicurando che il file finale noncontenga istruzioni PostScript incompatibili con la possibilitagrave di inclusionein un altro file

epstopdf epspdf e ps2pdf o altri simili applicativi da linea di comando eseguonole analoghe trasformazioni senza interfaccia grafica spesso hanno il van-taggio di corredare il file di uscita dellrsquoinformazione corretta in merito allsquobounding boxrsquo cioegrave alle dimensioni del rettangolo circoscritto allrsquoimmagineeffettiva Con la distribuzione 2010 di TEX Live non egrave necessario ricorrere aprogrammi esterni nel senso che ci pensa direttamente pdflatex a eseguirela conversione senza che lrsquoutente debba preoccuparsene Facendo uso delpacchetto epspdfconversion egrave possibile lanciare lrsquoapplicativo di conversioneepspdf direttamente durante lrsquoesecuzione del programma di compilazioneaffincheacute ciograve sia possibile egrave necessario che il programma di compilazione siaabilitato con lrsquoopzione della linea di comando ndashshell-escape che consentedi eseguire programmi esterni Come giagrave detto altrove questa egrave una praticapossibile ma che apre una lsquoportarsquo a possibili attacchi lsquoviralirsquo per cui sene egrave sconsigliato lrsquouso ovviamente in un contesto adeguatamente protettoquesto pericolo non si pone o il rischio che si corre egrave estremamente modestoBisogna ricordare che la conversione dal formato eps al formato pdfspesso non comporta lrsquoinclusione dei font eventualmente usati nel file dipartenza questo fatto puograve portare a certi inconvenienti quando il filepdf viene incorporato in un file principale che verragrave letto su unrsquoaltramacchina che non dispone degli stessi font oppure rende il file principaleincompatibile con il formato archiviabile (vedi il capitolo 21

eps2pdf egrave una interfaccia grafica disponibile solo per macchine Windows cheesegue sostanzialmente lo stesso tipo di trasformazione di epstopdf ma conil vantaggio dellrsquointerfaccia grafica

84 CONVERSIONE DEI FORMATI 149

eps2png e eps2jpg sono programmi da linea di comando per macchine LinuxUNIX trasformano le immagini vettoriali in formato eps in immaginia matrici di punti diversamente compresse nei formati png oppure jpgIn generale sarebbe desiderabile evitare questi tipi di conversione ma egraveopportuno limitarsi alle conversioni eseguibili con programmi descritti neipunti precedenti che conservano la qualitagrave vettoriale dellrsquoimmagine Tutta-via in vista di produrre file archiviabili talvolta questa potrebbe essereuna soluzione per trasformare file pdf incompatibili con lrsquoarchiviabilitagravein file compatibili in quanto i ldquodisegnirdquo dei font vengono trasformati inldquodisegnirdquo a matrici di pixel certo se sulla macchina dove si esegue la tra-sformazione mancano i font scalabili anche questo tipo di trasformazionediventa inutile

pdftops esegue da linea di comando la conversione dal formato pdf al for-mato ps Anche se il formato pdf egrave sempre da preferire talvolta puograverendersi necessario ricorrere a questo tipo di trasformazione

jpegtops trasforma un file jpg in formato eps Si tratta di un applicativoda linea di comando Assicura che il bounding box sia specificato corret-tamente In realtagrave questo programma si limita ad avviluppare il codicecompresso dellrsquoimmagine a matrice di pixel dentro un involucro PostScriptche contiene lrsquoinformazione corretta del lsquobounding boxrsquo ma per il resto silimita a definire dove inizia e dove finisce il codice dellrsquoimmagine compressa

mptopdf esegue la trasformazione di un file prodotto con METAPOST in unfile pdf Questa trasformazione in effetti non sarebbe necessaria se sidispone di un sistema TEX moderno e completo tuttavia se si dovessemandare la figura a qualcun altro di cui non si conoscono le dotazioniinformatiche egrave meglio mandargliela in formato PDF piuttosto che nelformato di uscita di METAPOST percheacute il destinatario potrebbe non averefamiliaritagrave con questo formato oppure potrebbe mancare del softwarenecessario per visualizzarla o per includerla nei suoi documentiVale la pena di segnalare che lo shell editor dei sistemi Mac OS X TEXShopconsente anche di eseguire la compilazione di un file METAPOST manon si limita ad ottenere il file in codice PostScript bensigrave provvede adeseguire direttamente il programma mptopdf cosiccheacute il risultato finale egravedirettamente il file PDF contenente il disegno perfettamente ritagliato alrettangolo tangente Anche alcuni altri shell editor certamente lo sharewareWinEdt per macchine Windows consentono di eseguire la compilazionedei disegni METAPOST forse qualcuno consente anche la trasformazioneautomatica nel formato PDF

Paint e i programmi simili aprono i file bitmapped e li trasformano in qualun-que altro file a matrici di pixel sia png sia jpg quindi per gli altriformati bitmapped non dovrebbero esserci problemi per ottenere formaticompatibili con i programmi di nostro interesse

gimp si trova per tutte le piattaforme egrave un formidabile programma di editinggrafico che permette di eseguire tutte le trasformazioni dellrsquoimmagine ela loro conversione in un qualunque formato a matrici di pixel riesce afarlo anche con input vettoriali ma salva solo in formati a matrici di pixel

150 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

Egrave un programma fortemente consigliabile per chiunque e su qualunquepiattaforma Sarebbe perograve consigliabile non usarlo per convertire formativettoriali in formati a matrici di pixel limitandosi alle altre trasformazionie allrsquoediting degli altri formati

ImageMagik egrave un altro noto programma di editing grafico esso mette a disposi-zione dellrsquoutente il comando convert che permette di eseguire rapidamentela conversione da un formato grafico allrsquoaltro viene consigliato (ed effettiva-mente viene installato automaticamente insieme alla distribuzione MacTEXdel sistema TEX sulle macchine Macintosh) e per esempio viene suggeritodi definire la regola grafica

DeclareGraphicsRuletifpngpnglsquoconvert 1 lsquobasename 1 tiflsquopng

per convertire le immagini tif in immagini png Questo metodo inrealtagrave puograve venire usato su qualunque piattaforma e richiede lrsquoabilitazio-ne allrsquoesecuzione di programmi esterni mediante lrsquoopzione della linea dicomando ndashshell-escape della cui lsquopericolositagraversquo si egrave giagrave parlato

GraphicConverter egrave un programma shareware per il sistema operativo Mac OSX svolge piugrave o meno le stesse funzioni di ImageMagik se si paga il prezzodel prodotto le prestazioni aumentano considerevolmente Il numero diformati in ingresso e in uscita sembra essere molto piugrave grande di quello delprogramma concorrente e per gli utenti di Mac OS X coinvolti in lavori chefanno uso di immagini dai formati molto eterogenei puograve essere la soluzionegiusta

85 Scontornare le immaginiUn aspetto che si dimentica troppo spesso egrave quello di scontornare le immaginiLATEX lascia da solo gli spazi bianchi necessari attorno alle immagini se questea loro volta contengono altri spazi bianchi nel loro contorno nel documentocomposto risulteragrave esserci alla fine troppo spazio bianco Non egrave semplice poterscontornare le immagini specialmente se ci si vuole attenere a programmifreeware

gimp consente di scontornare e di correggere qualunque formato grafico mapermette di salvare solo nei formati a matrici di pixel non egrave quindi il casodi servirsi di gimp per scontornare immagini vettoriali

gview permette di correggere il bounding box cosiccheacute di fatto si scontornalrsquoimmagine In ogni caso questo programma permette di visualizzare sulloschermo il rettangolo tangente cosiccheacute diventa facile spostare il cursorea croce sul vertice inferiore sinistro e successivamente sul vertice supe-riore destro per rilevare nellrsquoapposito spazio della cornice inferiore delprogramma le coordinate di questi due vertici queste coordinate potrannoessere usate come quelle del lsquobounding boxrsquo quando si usa il comandoincludegraphics per includere lrsquoimmagine

86 LrsquoIMPORTAZIONE DELLE IMMAGINI 151

Adobe Acrobat non egrave freeware ma permette di eseguire numerose azioni sui filee sulle immagini in formato PDF Si possono per esempio estrarre dellepagine contenenti immagini da un file PDF e poi si possono estrarre scon-tornandole solo le immagini che interessano andando a filo dellrsquoimmaginecon una comoda interfaccia grafica Egrave possibile anche estrarre immagini informato PostScript Lrsquounico difetto potrebbe essere il costo visto che ilprogramma egrave commerciale il programma gratuito Adobe Reader permettedi eseguire solamente la lettura ma non consente nessuna operazione diediting grafico

Preview egrave un applicativo del sistema operativo Mac OS X5 serve a molte funzioniin particolare per visualizzare i file PDF e JPEG fra le operazioni che riescea fare su questi file crsquoegrave anche lrsquooperazione di cropping cioegrave di scontornare leimmagini mediante una comoda interfaccia grafica Ovviamente egrave usabilesolo con quel sistema operativo

pdfcrop egrave un programma (o uno script a seconda della piattaforma) che permettedi scontornare molto bene le immagini in formato PDF esso egrave distribuitocon il sistema TEX quindi egrave giagrave disponibile sulla piattaforma di lavoro enon egrave necessario ricorrere ad installazioni particolari

Ma non tutto egrave perduto se non si riesce a scontornare con programmi adeguatisi puograve sempre operare dallrsquointerno di LATEX o pdfLATEX

86 Lrsquoimportazione delle immaginiSe il lettore non si egrave scoraggiato con queste (apparenti) difficoltagrave e ha giagrave(allrsquooccorrenza) convertito i formati delle immagini in uno dei formati consentitie le ha giagrave scontornate allora puograve procedere con lrsquoeffettiva importazione delleimmagini

Basta richiamare il pacchetto graphicx con il solito comando

usepackagegraphicx

e usarne i comandi e le opzioni in modo correttoNel momento i cui si deve importare una figura esterna (della quale si assume

di avere il file nel formato corretto in relazione al programma usato) basta usarecon la seguente sintassi il comando includegraphics (generalmente ma nonnecessariamente allrsquointerno dellrsquoambiente figure)

includegraphics[〈lista delle chiavi〉]〈file〉

Il 〈file〉 egrave il nome del file contenente lrsquoimmagine senza che ne venga specificatalrsquoestensione se il formato giusto esiste LATEX o pdfLATEX importa la figura se ilformato giusto non esiste emette un messaggio di errore e consente di proseguireevidentemente senza importare nulla Se si specifica lrsquoestensione (magari errata)LATEX o pdfLATEX cerca solo quel file e non esplora la situazione possibile conaltre estensioni e si lamenta con minacciosi messaggi di errore

Se invece egrave stata definita una regola grafica per esempio quella mostrata perconvertire le immagini dal formato tif al formato png allora la prima volta

5Nella versione italiana di Mac OS X questo programma si chiama Anteprima

152 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

che si esegue la compilazione viene ricercata anche lrsquoestensione da convertireviene eseguita la conversione e viene usato il file convertito nelle eventualicompilazioni successive il programma trova direttamente il file nel formato giustoe non ha piugrave bisogno di eseguire nessuna conversione

Vale la pena di esporre un dettaglio organizzativo per la gestione delle figurenon ci sono problemi se i file che le contengono sono nella stessa cartella delfile sorgente da comporre tuttavia questo modo di procedere egrave disordinato ealla fine la cartella contiene tante cose disparate e non si riesce piugrave a gestire Lasoluzione egrave quella di dedicarecreare una sotto cartella dove custodire le immaginie solo loro Supponendo di scrivere un libro su Paperino Topolino e Plutoprobabilmente il file sorgente si troveragrave nella cartella PTP in questa cartellasi trova la sottocartella foto (se non crsquoegrave la creiamo) in questa sottocartellasi trova la fotografia Topolinojpg Allora questa foto puograve essere inclusa peresempio specificando il percorso relativo per raggiungerla

includegraphicsfotoTopolino

Piugrave comodo e meno suscettibile di errori egrave invece il procedimento di specificareil percorso (relativo alla cartella dove si trova il file sorgente) dellrsquounica o dellevarie cartelle dove si trovano le immagini mediante il comando graphicspathcon la seguente sintassi

graphicspath〈path1〉〈path2〉 〈pathn〉

dove egrave opportuno notare le parentesi graffe esterne che racchiudono le coppie digraffe interne ognuna delle quali specifica un diverso percorso I comandi

graphicspathfotoincludegraphicsTopolino

permettono di includere la foto di Topolino senza bisogno di specificarne il per-corso Se le immagini relative a Paperino si trovassero in in unrsquoaltra sottocartellaper esempio fotoPaP allora basterebbe specificare

graphicspathfotofotoPaP

per avere accessibili entrambe le sottocartelle senza bisogno di specificarle perogni inclusione6

La 〈lista delle chiavi〉 egrave costituita da una serie di dichiarazioni separateda virgole e scritte nella forma lsquochiave = valorersquo Se la chiave rappresenta unaaffermazione booleana non egrave necessario specificarne il valore lsquotruersquo ma quandolo si vuole usare egrave necessario specificarne il valore lsquofalsersquo

Qui non si esporranno tutte le opzioni disponibili ci si limiteragrave a descriverequelle piugrave comunemente usate almeno secondo lrsquoesperienza dello scrivente sirimanda il lettore alla documentazione del pacchetto per avere maggiori dettaglie per le altre opzioni

6In veritagrave sarebbe possibile specificare anche dei percorsi assoluti invece che relativi allacartella del file principale tuttavia qui si consiglia di evitare questa possibilitagrave anche especialmente se il documento deve essere composto a piugrave mani su macchine diverse consistemi operativi diversi in queste condizioni egrave preferibile evitare qualunque specificazione chesia dipendente dalla particolare macchina e dal particolare sistema operativo La portabilitagravedei file tex egrave una delle caratteristiche del sistema TEX e sarebbe quanto mai inopportunoinficiare questa particolaritagrave

86 LrsquoIMPORTAZIONE DELLE IMMAGINI 153

bb Serve per specificare il rettangolo tangente allrsquoimmagine con la sintassi

bb= 〈l lx〉 〈l ly〉 〈urx〉 〈ury〉

In generale non egrave necessario specificare le coordinate dei vertici inferioresinistro e superiore destro del rettangolo tangente queste coordinate ingenerale sono contenute nel file grafico da importare Tuttavia questeinformazioni potrebbero mancare oppure potrebbero non corrisponderea quelle del rettangolo tangente Un caso molto frequente si ha quandocon un programma grafico esterno al sistema TEX si crea o si ottiene undisegno o una immagine a mezze tinte da scontornare percheacute magari ildisegno appare su una pagina in formato A4 non su un rettangolino grandequanto il disegno oppure lrsquoimmagine fa parte di una pagina che contieneanche altre parti grafiche che non interessa importare Le alternative sonoquelle di usare la chiave clip (o alternativamente il comando asteriscatoincludegraphics) insieme a una delle chiavi viewport o trim cheverranno descritte poco oltre La chiave bb egrave particolarmente comoda percheacutele coordinate da specificare sono facilmente rilevabili mediante il programmagview quando si sia specificata lrsquoopportuna opzione di visualizzazione7 e sisia usato il cursore a croce per individuare i vertici del rettangolo tangentegview funziona sia con i file ps e eps sia con i file pdf

width serve per specificare la larghezza dellrsquoimmagine nel documento finalegeneralmente conviene parametrizzare questa dimensione ad un valorelegato alla geometria della pagina invece di specificare un numero di puntio di millimetri o di pollici o di8 Allora egrave meglio specificare la larghezza nella forma width=05linewidthinvece di width=87mm percheacute cambiando layout della pagina la dimensionerelativa mantiene le proporzioni mentre la dimensione assoluta potrebbedare luogo a inconvenienti non lievi si pensi per esempio di voler passareda una composizione a piena pagina ad una composizione a due colonne87mm potrebbero andare bene a piena pagina ma potrebbero essere troppiper una colonnaVale la pena di ricordare che linewidth coincide con la giustezza corrente(piena pagina o colonna) salvo che allrsquointerno di certi ambienti potrebbeessere un poco inferiore egrave quindi conveniente fare sempre riferimento alinewidth invece che a textwidth o a columnwidthSecondo una tradizione conservata dalle norme UNI i fattori da preferire permoltiplicare la larghezza della linea sono 1 05 02 e le loro radici quadratePer le immagini i fattori piugrave piccoli sono da evitare ovviamente ma lasequenza di ragione (approssimativa)

radic2 o 1

radic2 egrave quella piugrave frequente9

7Alcune opzioni sono usabili solo con certi formati ma le coordinate del cursore sonoleggibili sempre indipendentemente dal formato del file

8Le unitagrave di misura dimensionali che il sistema TEX capisce sono i punti (pt) i millimetri(mm) i centimetri (cm) i pollici (in) oltre alle unitagrave legate alle dimensioni del font correntelrsquoaltezza della lsquoxrsquo (ex) la larghezza di una lsquoMrsquo (em) TEX capisce anche altre unitagrave menofrequenti dallrsquouso un porsquo particolare utili specialmente per chi scrive pacchetti di estensione ofile di classe

9Mescolando la sequenza 05 1 2 con la sequenzaradic

05radic

2 e arrotondando si ottiene lasequenza 035 05 07 1 14 2 28

154 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

height serve per specificare lrsquoaltezza dellrsquoimmagine riprodotta nel documen-to anche in questo caso egrave meglio fare riferimento allrsquoaltezza della pa-gina parametrizzando rispetto a textheight per esempio conservan-do uno dei fattori di scala della sequenza UNI si potrebbe specificareheight=035textheight

keepaspectratio Se si sono specificate sia width sia height la figura potreb-be subire cambiamenti di scala diversi in altezza rispetto alla larghezzaper evitare questo fatto la variabile booleana keepaspectratio mantieneinalterato il rapporto di forma dellrsquoimmagine da riprodurre e sceglie siaper lrsquoaltezza sia per la larghezza il maggiore fra i due rapporti di scala chenon fa eccedere nessuna delle due dimensioni specificate

viewport serve per specificare la finestra attraverso cui guardare lrsquoimmagine lafinestra in effetti fa sigrave che diventi un nuovo rettangolo tangente allrsquoimmaginee insieme a clip puograve servire per nascondere le parti dellrsquoimmagine chenon interessano quindi puograve servire per scontornare una immagine allaquale non egrave stato possibile applicare il trattamento specificato nei paragrafiprecedenti Tuttavia puograve servire anche per mostrare solo un particolaredellrsquoimmagine La sua sintassi egrave la seguente

viewport= 〈l lx〉 〈l ly〉 〈urx〉 〈ury〉

dove 〈llx〉 〈lly〉 sono le coordinate x e y dellrsquoangolo in basso a sinistradella finestra e 〈urx〉 〈ury〉 sono le coordinate x e y dellrsquoangolo in alto adestra della finestra Queste coordinate sono relative al rettangolo circo-scritto originario allrsquoimmagine e questo potrebbe non coincidere con ilsupporto virtuale sul quale lrsquoimmagine digitale egrave riportata Non egrave il casodi preoccuparsi di questo dettaglio percheacute il 99 delle volte si ha assolutacoincidenza

trim serve ad una funzione simile a quella prodotta da viewport solo chei quattro valori sono le ampiezze delle strisce di immagine da toglieresuccessivamente da sinistra dal basso da destra e dallrsquoalto dellrsquoimmaginetalvolta egrave piugrave facile specificare questi valori che non le coordinate dellafinestra attraverso cui vedere una parte dellrsquoimmagine La sintassi egrave laseguente

trim= 〈left〉 〈bottom〉 〈right〉 〈top〉

Sia con la chiave viewport sia con trim le dimensioni sono espresse in-dicando le unitagrave di misura che TEX gestisce il programma provvede atrasformarle in punti PostScript visto che lrsquooperazione viene svolta in quellinguaggio vero o semplificato se si desidera esprimere quelle lunghezzedirettamente in punti PostScript si usa lrsquounitagrave di misura bp oppure non sispecifica lrsquounitagrave di misura che per default viene quindi assunta uguale a bp

clip serve per dare lrsquoordine di tagliare effettivamente quanto sporge fuori delrettangolo tangente specificato dalla chiave bb oppure da trim oppure daviewport Se non si esprimesse clip il programma tratterebbe lrsquoimmaginecome se le sue dimensioni effettive fossero quelle del rettangolo specificato

86 LrsquoIMPORTAZIONE DELLE IMMAGINI 155

con le chiavi suddette ma quanto sporgesse fuori da quel rettangolo nonverrebbe tagliato via e quindi lrsquoimmagine sarebbe ancora tutta integra mapiugrave grande di quanto uno si aspetterebbe Se invece di includegraphicssi usasse la versione asteriscata includegraphics allora non sarebbenecessario specificare la parola chiave clip percheacute il valore true con ilcomando asteriscato egrave quello di default

angle serve per specificare lrsquoangolo di rotazione (in gradi e in senso antiorario)della figura quando si usa questa specifica (indicando generalmente plusmn90o 180) insieme a indicazioni di scala del tipo width= bisogna stareattenti a quale operazione si indica per prima e perciograve si esegue per primanormalmente egrave conveniente specificare per prima la rotazione percheacute egraveproprio quello che si vuole ottenere

Bene inteso egrave possibile specificare anche altre chiavi e i loro valori ma a quelpunto egrave meglio andare a leggere direttamente la documentazione grfguidepdfche accompagna sempre il sistema TEX e si trova nella cartella doclatexgraphics

Nella figura 83 sono rappresentati alcuni effetti che si possono ottenerecon la stessa fotografia sotto ogni foto egrave indicata la lista delle chiavi usataper ottenere il risultato Nella prima foto in alto a sinistra si ha lrsquoimmagine alarghezza piena fatta alla manifestazione Cheese patrocinata da Slow Foodche si svolge ogni due anni a Bra (CN) nelle immagini successive diverse chiavisono state applicate e in particolare quando sono state specificate sia widthsia height senza specificare keepaspectratio si egrave ottenuta una deformazionedellrsquoimmagine in senso orizzontale che egrave decisamente visibile ad occhio nudo Nelledue immagini dove si egrave specificato o trim o viewport insieme alla dichiarazioneclip lrsquoimmagine risulta correttamente ritagliata e ingrandita fino a soddisfare ilrequisito dellrsquoaltezza Nelle ultime immagini la foto del Minareto di MarrakechldquoLa Koutoubiardquo egrave stata ripresa con la fotocamera ruotata di 90deg (bersquo ecco ehmcirca ) per cui la corretta rappresentazione richiede una rotazione contrariaappare evidente che nella foto di sinistra la base egrave stata scalata fino ad essereuguale alla larghezza della riga poi lrsquoimmagine egrave stata ruotata cosigrave che la basediventi lrsquoaltezza invece nella foto di destra prima lrsquoimmagine egrave stata ruotatapoi la base egrave stata scalata alla larghezza della riga e solo in questo modo si egraveottenuto il risultato desiderato

Egrave bene notare che le operazioni eseguite con le chiavi trim e viewport nonsembrano cosigrave semplici da fare percheacute non sono generalmente note le dimensioninaturali dellrsquoimmagine tuttavia egrave bene ricordare che le dimensioni del rettangolotangente oppure del rettangolo che deve funzionare da finestra sono semprerilevabili con il cursore a croce del programma gview che si assume sia sempredisponibile al compositore

In mancanza di tale programma vale la pena di ricordare che ogni volta chesi lancia LATEX o pdfLATEX viene prodotto un file con estensione log e conil nome uguale a quello del file sorgente che si egrave appena compilato In questofile un normale file testuale contenente solo caratteri ASCII quindi leggibilesenza problemi con qualunque programma di elaborazione testi quando vieneimportato per la prima volta un dato file grafico contenente unrsquoimmagine neviene scritto il tipo e ne vengono fornite le dimensioni lsquobase per altezzarsquo dellalsquobounding boxrsquo in punti tipografici con queste dimensioni egrave possibile fare le debite

156 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

width=linewidth height=05linewidth

width=linewidthheight=05linewidth

width=linewidthheight=05linewidthkeepaspectratio

height=05linewidthtrim=100 50 150 120 clip

height=05linewidthviewport=100 50 492 362 clip

width=linewidth angle=90 angle=90 width=linewidth

Figura 83 Due foto trattate con diverse chiavi

86 LrsquoIMPORTAZIONE DELLE IMMAGINI 157

proporzioni di ciograve che si desidera ritagliare via e quindi non egrave difficile trovare ivalori numerici da usare ricordiamoci infatti che le coordinate da specificare sonoquelle del file di partenza non del file riprodotto quindi egrave necessario riferirsialle coordinate del file di partenza

Capitolo 9

LATEX la matematicasemplice

91 IntroduzioneLa forza di LATEX che ne ha determinato la grandissima diffusione inizialein ambito accademico e tecnico prima di diffondersi in ambito letterario eumanistico egrave proprio la professionalitagrave con la quale compone la matematica inquesto primo capitolo ci soffermeremo sulle strutture matematiche piugrave semplicie nel prossimo capitolo scenderemo nei dettagli per strutture matematiche piugravecomplesse avvalendoci del pacchetto di estensione amsmath

Non egrave sempre necessario ricorrere al pacchetto amsmath dipende dal tipo dimatematica che si vuole comporre In questo capitolo quindi ci familiarizziamosolamente con la composizione della matematica ma anche se LATEX cosigrave comrsquoegraveappena installato egrave giagrave in grado di comporre strutture matematiche piuttostoavanzate rimandiamo al prossimo capitolo ciograve che pur essendo componibile conLATEX senza estensioni riesce molto piugrave comodo da comporre con le estensionifornite dal pacchetto amsmath

92 I modi matematiciLATEX compone la matematica sostanzialmente in quattro modi se si andasseper il sottile si scoprirebbe che i modi sono otto ma questo il lettore interessatolo puograve studiare nel TEXbook I modi che interessano la quasi totalitagrave degli utentisono i seguenti

1 Il modo testuale LATEX compone in questo modo quando scrive unaespressione matematica in linea con il testo come quando si specifica chela sezione aurea egrave ϕ = (

radic5minus1)2 e che questo numero gode della proprietagrave

che 1ϕ = 1 + ϕ Se si vuole comporre in questo modo anche quandoLATEX di default comporrebbe in modo diverso bisogna dare lrsquoistruzionetextstyle

2 Il modo display LATEX compone la matematica in display quando componele espressioni in linee a seacute stanti staccate dal testo precedente e seguente

159

160 CAPITOLO 9 LATEX LA MATEMATICA SEMPLICE

mediante spazi bianchi di ampiezza adeguata per lsquomettere in mostrarsquolrsquoespressione per esempio1

ϕ =radic

5minus 12 e 1

ϕ= 1 + ϕ (sezione aurea)

Se si vuole comporre in questo modo anche quando LATEX di defaultcomporrebbe in modo diverso bisogna dare lrsquoistruzione displaystyle

3 Il modo degli indici primi LATEX compone gli apici e i pedici (gli esponentie i deponenti) di primo ordine in questo modo usa un carattere di corpopiugrave piccolo rispetto a quello delle variabili principali e li rialza per gliapici o li abbassa per i pedici di una quantitagrave costante e prestabilita dallecaratteristiche dei font usati per esempio in display si hanno le soluzionidi una equazione di secondo grado nella forma

x12 = minusbplusmnradicb2 minus 4ac

2a

Se si vuole comporre in questo modo anche quando LATEX di defaultcomporrebbe in modo diverso bisogna dare lrsquoistruzione scriptstyle

4 Il modo degli indici secondi LATEX compone gli apici e i pedici (gli esponentie i deponenti) di secondo ordine cioegrave quelli degli apici e dei pedici di primolivello con un carattere ancora piugrave piccolo e adeguatamente rialzato oribassato rispetto alle variabili a cui si riferiscono che sono giagrave per loroconto composte con il font degli indici di primo livello per esempio

VRe = ReIe

Se si vuole comporre in questo modo anche quando LATEX di default com-porrebbe in modo diverso bisogna dare lrsquoistruzione scriptscriptstyle

Di solito egrave piuttosto raro che si debba specificare lo stile ovvero il modo dicomposizione matematica egrave molto meglio lasciare fare a LATEX che sa quasisempre qual egrave il modo giusto da usare per la composizione

Per formule cosigrave semplici come quelle esposte nellrsquoenumerazione precedentebasta che il compositore scriva il testo sorgente in lettere nello stesso modo comese lo dettasse al telefono (in inglese) Per esempio

begindisplaymathx_12= frac-bpmsqrtb^2-4ac2a

enddisplaymath

Lrsquoambiente displaymath dice ldquometti in display lrsquoespressione matematica cheracchiudordquo Il segno _ serve per dire ldquometti in posizione di deponente quantocontenuto nel prossimo gruppordquo il gruppo egrave delimitato dalle parentesi graffe comesi egrave giagrave avuto modo di osservare frac sta per fraction egrave una abbreviazione diuna parola inglese ma egrave una parola quasi completa essa dagrave lrsquoordine di comporreuna frazione quindi bisogna specificare il numeratore e il denominatore mediante

1Spesso specialmente nella letteratura anglosassone con φ si intende il numero aureo(radic

5 + 1)2 Si riesce benissimo a distinguere dal contesto del discorso a quale dei due significatisia associato il simbolo qui si useragrave ϕ per la sezione aurea e φ per il numero aureo

92 I MODI MATEMATICI 161

le rispettive espressioni racchiuse nei rispettivi gruppi allrsquointerno del numeratorecompare il comando pm che vuol dire ldquometti un segno lsquopiugrave o menorsquo rdquo compareanche il comando sqrt sigla inglese che sta per square root radice quadrataed esso comanda di mettere sotto radice il contenuto del gruppo che lo segue ilsegno ^ vuol dire ldquometti ad esponente il contenuto del prossimo gruppordquo ma inquesto caso il gruppo non egrave evidenziato con le graffe percheacute egrave costituito da unsolo token2

Come si vede la scrittura di una breve espressione egrave semplicissima e nonrichiede una memoria particolare per ricordare i comandi da usare Quando cisono da scrivere delle lettere greche esse si scrivono con i loro nomi per disteso (ininglese) e le maiuscole si scrivono con lrsquoiniziale maiuscola per non confondere lesequenze di lettere che formano i nomi delle lettere greche come semplici variabilimatematiche scritte in lettere latine i nomi delle lettere greche sono precedutidal segno lsquorsquo alpha beta gamma Gamma Delta eccetera

Per gli operatori matematici piugrave comuni bastano i tasti della tastiera di unqualunque PC o laptop Se il PC o il laptop egrave dotato di una tastiera estesao avanzata egrave possibile comporre da tastiera anche altri segni che non sonoserigrafati sui tasti bisogna solamente premere contemporaneamente uno o piugravetasti di controllo (Alt Shift Ctrl ecc) e almeno un tasto lsquoordinariorsquo In ognicaso nelle prossime pagine appaiono un certo numero di tabelle che contengonola lista completa dei comandi matematici di LATEX che si possono introdurresenza disporre di nessuna tastiera speciale

Gli spazi che in matematica compaiono nel file sorgente non hanno nessunarilevanza LATEX mette gli spazi matematici dove sono necessari e anche seoffre dei comandi per inserire esplicitamente alcuni tipi di spazi matematici ilcompositore egrave vivamente invitato a non farne uso LATEX compone benissimoda solo senza che il compositore debba perdere tempo per rendere il 99 dellevolte il frutto della composizione meno bello e meno professionale di quello cheLATEX avrebbe fatto da solo

Esistono alcuni pochi casi ben noti in cui il compositore puograve inserire deglispazi matematici essi riguardano tutti gli operatori obliqui quando gli oggetti cheli precedono o li seguono hanno forme particolari oppure quando il compositoredeve lavorare con integrali multipli e non vuole usare il pacchetto di estensioneamsmath di cui si parleragrave nel prossimo capitolo Quindi il compositore saragraveautorizzato a correggere gli spazi usati da LATEX solo dopo aver corretto le bozzee se vuol aggiungere quei pochi e rari tocchi di qualitagrave che LATEX non egrave riuscitoa mettere da solo

Per aiutare il compositore ad avere sottomano tutti i simboli che LATEX mettea disposizione (e sono moltissimi) sono state preparate alcune tabelle di segniaccostati ai comandi che li producono si vedano allora le tabelle 91ndash98

Va detto subito che nelle tabelle 92 93 e 98 i segni con uno sfondo grigio nonsono usabili se non si usa il pacchetto di estensione amsfonts oppure il pacchettodi estensione latexsym in realtagrave questo secondo pacchetto rende accessibili alcunisegni che con il vecchio LATEX209 erano direttamente accessibili senza estensioniperciograve questo pacchetto egrave da considerare come una maniera per compilare vecchifile sorgente predisposti per il vecchio LATEX Con il nuovo LATEX2ε questi segnisono tutti accessibili tramite il pacchetto amsfonts Siccome il pacchetto fa parte

2I comandi [ e ] sostituiscono efficacemente i comandi di apertura e di chiusuradellrsquoambiente displaymath

162 CAPITOLO 9 LATEX LA MATEMATICA SEMPLICE

della collezione a cui appartiene anche amsmath e questo egrave utilissimo per lacomposizione di testi tecnici che fanno uso di molta matematica questi duepacchetti vengono solitamente caricati comunque quindi non egrave un gran problemadisporre di quei simboli Tuttavia bisogna ancora segnalare che alcuni comeper esempio f non dovrebbero mai venire usati percheacute contrari alle norme ISOquindi non egrave una gran perdita se non se ne fa uso

Minuscolealpha α iota ι rho ρbeta β kappa κ sigma σ

gamma γ lambda λ tau τdelta δ mu micro upsilon υ

epsilon ε nu ν phi φzeta ζ xi ξ chi χeta η o o psi ψ

theta θ pi π omega ω

Varianti delle minuscolevarepsilon ε varpi $ varsigma ς

vartheta ϑ varrho varphi ϕ

MaiuscoleGamma Γ Xi Ξ Phi ΦDelta ∆ Pi Π Psi ΨTheta Θ Sigma Σ Omega Ω

Lambda Λ Upsilon ΥMaiuscole corsive

mathitGamma Γ mathitXi Ξ mathitPhi ΦmathitDelta ∆ mathitPi Π mathitPsi ΨmathitTheta Θ mathitSigma Σ mathitOmega Ω

mathitLambda Λ mathitUpsilon Υ

Tabella 91 Le lettere greche

93 Alcune annotazioni sulle lettere grechePer quanto riguarda le lettere greche si puograve notare che alcune di esse hanno delleforme varianti i cui nomi cominciano con lrsquoabbreviazione var Esse sono dellevarianti per quel che riguarda gli Stati Uniti ma tolto $ che non si usa maiforse nemmeno negli Stati Uniti gli altri segni sono quelli usati normalmentein Europa e in Italia in alcuni file di classe che lo scrivente ha creato egli hascambiato i nomi varianti con quelli ordinari per rendere normali quelli chevengono usati di solito in Europa

Inoltre in tutto il mondo egrave consuetudine scrivere le lettere greche maiuscolecon caratteri diritti e non inclinati nonostante le norme ISO prescrivano lrsquousodelle lettere inclinate per qualsiasi variabile matematica o fisica

Se si desidera scrivere le lettere greche maiuscole con caratteri inclinati bisognafare esattamente come egrave suggerito nella tabella 91 Oppure se si sta facendouso del pacchetto amsmath si ottengono le lettere inclinate usando i comandivarianti (non visibili in nessuna delle tabelle citate) dove il nome delle lettere

94 ALCUNE OSSERVAZIONI SUGLI OPERATORI FUNZIONALI 163

approx asymp asymp bowtie cong sim= dashv a doteq

=downarrow darr Downarrow dArr equiv equiv

frown _ ge ge geq gegets larr gg hookleftarrow larr

hookrightarrow rarr iff lArrrArr in isinJoin on le le leadsto

leftarrow larr Leftarrow lArr leftharpoondown leftharpoonup leftrightarrow harr Leftrightarrow hArr

leq le ll longleftarrow larrminusLongleftarrow lArr= longleftrightarrow larrrarr Longleftrightarrow lArrrArr

longmapsto minusrarr longrightarrow minusrarr Longrightarrow =rArrmapsto rarr mid | models |=

ne = nearrow neq =ni 3 not= = nwarrow

parallel perp perp prec ≺preceq propto prop rightarrow rarr

Rightarrow rArr rightharpoondown rightharpoonup

rightleftharpoons searrow sim simsimeq smile ^ sqsubset

sqsubseteq v sqsupset A sqsupseteq wsubset sub subseteq sube succ succeq supset sup supseteq supe

swarrow to rarr uparrow uarrUparrow uArr vdash `

Tabella 92 Gli operatori di relazione

amalg q ast lowast bigcirc copybigtriangledown 5 bigtriangleup 4 bullet bull

cap cap cdot middot circ cup cup dagger dagger ddagger Dagger

diamond div divide lhd Cmp ∓ odot ominus

oplus oplus oslash otimes otimespm plusmn rhd B setminus

sqcap u sqcup t star

times times unlhd E unrhd Duplus ] vee or wedge and

wr o

Tabella 93 Gli operatori binari

greche con iniziale maiuscola egrave preceduto da var Scrivendo quindi varGammavarDelta varTheta eccetera si ottengono i simboli Γ ∆ Θ

94 Alcune osservazioni sugli operatori funzio-nali

Gli operatori funzionali come sin arctan eccetera sono presentati nella tabella 94essi devono essere usati esattamente con quei comandi per due importanti motivi

164 CAPITOLO 9 LATEX LA MATEMATICA SEMPLICE

Operatori senza limitiarccos arcsin arctan arg coscosh cot coth csc degdim exp hom ker lgln log sec sin sinhtan tanh

Operatori con limitidet gcd inf lim liminflimsup max min Pr sup

Tabella 94 Gli operatori funzionali

bigcap⋂ ⋂

bigveeor or

bigcup⋃ ⋃

bigwedgeand and

bigodot⊙ ⊙

coprod∐ ∐

bigoplusoplus oplus

intint int

bigotimesotimes otimes

oint∮ ∮

bigsqcup⊔ ⊔

prodprod prod

biguplus⊎ ⊎

sumsum sum

sqrtradic radic radic radic radic

Tabella 95 I grandi operatori

1 I nomi che vengono scritti nel documento durante lrsquoesecuzione di queicomandi sono quelli prescritti dalle norme internazionali ISO e siccomeessi sono ripresi dalle norme nazionali UNI e queste sono legge dello Statonon egrave consentito usare nomi diversi anche se si egrave abituati a scrivere lsquotgrsquoal posto di lsquotanrsquo oppure lsquosenrsquo al posto di lsquosinrsquo In realtagrave le norme ISOprescrivono nomi che costituiscono abbreviazioni di parole latine quindiUbi maior minor cessat

2 Gli operatori in quanto tali richiedono certi spazi alla loro destra e allaloro sinistra questi spazi dipendono dalla natura degli oggetti matematiciche precedono o seguono gli operatori solo usando quei comandi LATEX sache sta usando degli operatori e sa quali spazi usare

La tabella 94 suddivide gli operatori in due categorie (a) quelli chiamatilsquooperatori senza limitirsquo nei quali le indicazioni di esponente o di deponentevengono usate normalmente come tali e (b) quelli chiamati lsquooperatori con limitirsquoper i quali le indicazioni di esponente e di deponente vengono usati come nei

94 ALCUNE OSSERVAZIONI SUGLI OPERATORI FUNZIONALI 165

(

(

langle

langrangle

rang

)

)lfloor

lfloorrfloor

rfloorlgroup

[

[lceil

lceilrceil

rceilrgroup

]

]backslash

∖vert

∣∣∣∣∣ bracevert

|

∥∥∥∥∥ Vert

∥∥∥∥∥ updownarrow

xy Updownarrow

~www|

∣∣∣∣∣ uparrow

x Uparrow

~wwww downarrow

y

arrowvert

Arrowvert

wwwww Downarrow

wwww

lmoustache

rmoustache

Tabella 96 I grandi delimitatori

hata a acutea a bara a dota achecka a gravea a veca ~a ddota a

brevea a tildea a widehatAB AB widehatABC ABC

mathringa a widetildeAB AB widetildeABC ABC

Tabella 97 Gli accenti matematici

simboli di sommatoria si noti la differenza nellrsquoequazione 91

limxrarr0

infinsumk=0

sin2 2kx = 0 (91)

scritta facendo uso dei segni _ e ^ che normalmente indicano rispettivamentelrsquoinserzione di un deponente o di un esponente

lim_xto 0sum_k=0^infty sin^2 2kx = 0

Si noti che in modo testo LATEX compone i lsquolimitirsquo degli operatori con limitidelle sommatorie degli integrali e simili come se fossero dei deponenti o degliesponenti esso si comporta in questo modo per evitare di far diventare troppo

166 CAPITOLO 9 LATEX LA MATEMATICA SEMPLICE

aleph alefsym angle ang backslash bot perp Box clubsuit clubs

Diamond diams diamondsuit diams ell `emptyset empty exists exist flat [forall forall hbar ~ heartsuit hearts

Im = imath ı infty infinjmath mho f nabla nabla

natural neg not partial partprime prime Re lt sharp ]

spadesuit spades surdradic

top gttriangle 4 wp weierp |

Tabella 98 Altri simboli

grandi (alte e profonde) le righe con gli operatori con limiti che obbligherebberoallrsquoinserimento di una generosa interlinea in modo display invece tutto procedecome esemplificato nellrsquoequazione 91

Se si desidera definire nuovi operatori funzionali oltre a quelli che compaiononella tabella 94 il pacchetto amsmath mette a disposizione due comandi con laseguente sintassi

DeclareMathOperator〈operatore〉〈definizione〉DeclareMathOperator〈operatore〉〈definizione〉

dove 〈operatore〉 egrave il comando con il quale si vuole invocare lrsquooperatore mentre la〈definizione〉 contiene il modo di scrivere il nome dellrsquooperatore La dichiarazioneasteriscata definisce il comando per un operatore con limiti mentre quella nonasteriscata lo definisce per un operatore senza limiti

Per esempio lrsquooperatore per separare la parte reale di un numero complessoegrave Re e produce il simbolo lt volendolo ridefinire in modo che esso sia scritto incaratteri non gotici ma sia in neretto si potrebbe usare la dichiarazione3

DeclareMathOperatorRemathbfRe

In questo modo lo stesso comando Re non produce piugrave lt z = lt(x+ i y) = x maRe z = Re(x+ i y) = x e tratta il nuovo simbolo come un operatore senza limitilasciandovi attorno gli stessi spazi che lascia normalmente attorno agli operatoriSi noti che anche lrsquounitagrave immaginaria lsquoirsquo egrave un operatore (vettoriale) ed egrave statostampato facendo uso del comando uimm la cui definizione un porsquo particolareverragrave discussa nella pagina 185

95 Alcune osservazioni sui grandi operatoriI grandi operatori hanno almeno due dimensioni una lsquonormalersquo adatta al modotesto e una piugrave grande adatta al modo display la radice quadrata invece hanumerose varianti adatte alla grandezza del radicando

3Il comando Re egrave giagrave definito e i vari comandi Declare non producono messaggidrsquoerrore se si ridefiniscono comandi esistenti controllano perograve lrsquoesistenza di un comandopre-esistente e nel caso scrivono un avvertimento nel file log

96 I GRANDI DELIMITATORI 167

Cosigrave in modo testo si potragrave scrivere con lrsquooperatore piccolo (scelto au-tomaticamente da LATEX senza che il compositore se ne debba preoccupare)suminfink=0 x

k = 1(1minus x) mentre in display saragraveinfinsumk=0

xk = 11minus x (92)

Bisogna fare attenzione ad un dettaglio non trascurabile Mentre la maggiorparte delle volte LATEX usa correttamente (almeno nel senso delle nostre aspet-tative) i grandi operatori scegliendo lrsquooperatore grande oppure quello piccolotalvolta ci sembra che si sbagli si osservi lrsquoequazione 93

1suminfink=0 x

k= 1minus x (93)

Si nota che nonostante lrsquoequazione sia in display LATEX ha usato lrsquooperatore delmodo testo A noi sembra scorretto ma LATEX ha agito correttamente percheacutenonostante si trovi a comporre una formula in display se usasse la forma grandedellrsquooperatore lrsquointera formula risulterebbe squilibrata

1infinsumk=0

xk= 1minus x (94)

come si vede bene nellrsquoequazione 94LATEX si comporta in questo modo tutte le volte che cerca di mantenere

piugrave o meno costante lrsquoaltezza delle righe nelle espressioni matematiche essoinfatti passa al modo testo anche per scrivere gli elementi delle matrici bisognaricordarsene e se non ci piacesse sarebbe nostra cura modificare il modo discrivere le formule in modo da ottenere una forma grafica gradevole e nello stessotempo corretta si veda a questo proposito lrsquoequazione 96

96 I grandi delimitatoriNella tabella 96 sono rappresentati i grandi delimitatori o meglio i delimitatoriestensibili questi si possono estendere in altezza in modo virtualmente illimitatoe possono racchiudere espressioni di qualunque grandezza si pensi anche solo aidelimitatori che differenziano una matrice da un determinante Ma i delimitatoripossono essere resi estensibili solo premettendo al delimitatore di sinistra ilcomando left e al delimitatore di destra il comando right questi due comandidevono essere sempre appaiati nella stessa espressione matematica quindi se sideve mettere un solo delimitatore lrsquoaltro lo si rende invisibile scrivendovi unlsquopuntorsquo invece del segno di una parentesi si veda lrsquoequazione 95

x12 =

minusbplusmnradicb2 minus 4ac

2a se b2 minus 4ac gt 0

minus b

2a se b2 minus 4ac = 0

minusbplusmn iradic

4acminus b22a se b2 minus 4ac lt 0

(95)

composta scrivendo

168 CAPITOLO 9 LATEX LA MATEMATICA SEMPLICE

x_12 = left right

Per comporre la struttura dellrsquoequazione 95 giagrave piugrave complessa di quelle usatecome esempio fino ad ora si puograve usare lrsquoambiente cases fornito dal pacchettoamsmath con questo ambiente non egrave il caso di preoccuparsi di usare delimitatoriinvisibili percheacute ci pensa lui anzi questa osservazione ci fa capire percheacute egrave meglioservirsi di ambienti di composizione appositamente predisposti dal file di classe odai pacchetti di estensione o da definizioni create dal compositore piuttosto cheripetere ogni volta lrsquointero assemblaggio di comandi e di istruzioni col rischiodi dimenticarne qualcuno o di non essere coerenti ogni volta che si dovrebbecomporre lo stesso genere di struttura nella stessa maniera

Ma left e right sono comodi anche per scrivere correttamente in mododisplay una formula come lrsquoequazione 94 che diventa( infinsum

k=0xk

)minus1

= 1minus x (96)

Bisogna prestare una particolare attenzione quando si deve spezzare unaequazione fra piugrave righe quando si egrave in modo testo si suppone che le espressionistampate siano molto semplici e non troppo lunghe se lrsquoespressione cade in findi riga LATEX (con molta riluttanza) provvede a dividere lrsquoespressione dopo unoperatore di relazione o dopo un operatore binario Tuttavia sta al compositoreevitare che si debba andare a capo mentre si egrave allrsquointerno di una parentesiQuando invece si egrave in display le espressioni possono essere anche molto lunghe epotrebbe essere necessario andare a capo allrsquointerno di una parentesi Solo chiha scritto lrsquoequazione ne conosce il ritmo di lettura e solo lui sa dove egrave menograve andare a capo Tuttavia resta la regola principale che si puograve andare a capodopo gli operatori di relazione e subordinatamente dopo gli operatori binarimai dopo gli operatori funzionali o i grandi operatori o immediatamente dopo idelimitatori di apertura Ecco percheacute sono utili le tabelle 93ndash96 cosigrave anche chinon egrave matematico sa di che cosa si sta parlando

Nella disgraziata ipotesi che fosse necessario andare a capo allrsquointerno diuna lunga espressione fra parentesi allora potrebbero risultare utili i seguenticomandi che come left e right ingrandiscono i delimitatori ma di unaquantitagrave fissa indipendentemente da che cosa essi delimitino non egrave difficileottenere ((((

()))))

con i comandi

Biggl(biggl(Bigl(bigl(()bigr)Bigr)biggr)Biggr)

La lettera l o r alla fine di ogni comando specifica se il segno che segue egrave undelimitatore di sinistra (left) o di destra (right) esiste anche un suffisso m per iseparatori che talvolta si trovano a metagrave di certe espressioni matematiche

97 Gli accenti matematiciPer segnare con lsquodiacriticirsquo matematici i vari simboli che si usano esistono icomandi riportati nella tabella 97 sarebbe un grave errore usare quegli accenti

98 GLI AMBIENTI MATEMATICI 169

per inserire diacritici in modo testo Per questi si veda in appendice la tabella G1Per mettere accenti sulle lettere lsquoirsquo e lsquojrsquo in matematica bisogna ricorrere a dueparticolari versioni di questi segni privi del puntino imath e jmath Usandoquesti segni si puograve scrivere per esempio ~a = ax~ı+ ay~ con il codice4

( vec a = a_x vecimath + a_y vecjmath )

98 Gli ambienti matematiciPer inserire una espressione matematica in linea con il testo bisogna entrare inmodo matematico la maniera piugrave semplice ma da evitare egrave quella di racchiuderei comandi matematici allrsquointerno di un gruppo costituito da due segni di dollaro$ Cosigrave per scrivere che sin(α+ β) = sinα cosβ + cosα sin β basta inserire neltesto sorgente

$sin(alpha+beta) = sinalphacosbeta + cosalphasinbeta $

Ci si rende conto perograve che il segno di dollaro $ funziona come un interruttoreche cambia modo da testo a matematico o viceversa senza preoccuparsi dicontrollare se lrsquooperazione sia corretta LATEX offre il modo di eseguire questocontrollo se si racchiude lrsquoespressione matematica fra i comandi ( e ) cosigrave

(sin(alpha+beta) = sinalphacosbeta + cosalphasinbeta

)

Non egrave necessario andare a capo dopo ( e dopo la fine dellrsquoespressione matematicama il testo sorgente egrave piugrave facilmente leggibile

Il comando ( puograve essere dato solo mentre si egrave in modo testo e ) soloquando si egrave in modo matematico se ciograve non succedesse LATEX provvederebbead emettere gli opportuni messaggi drsquoerrore che consentirebbero di eseguire lenecessarie correzioni con facilitagrave

Analogamente in modo display sarebbe possibile usare i comandi di bassolivello costituiti da due coppie di segni di dollaro per scrivere

sin(α+ β) = sinα cosβ + cosα sin β

basterebbe scrivere nel file sorgente

$$sin(alpha+beta) = sinalphacosbeta + cosalphasinbeta

$$

ma di nuovo mancherebbe la diagnostica di LATEX Questo invece offre dueambienti per scrivere espressioni senza la numerazione e un ambiente per scrivereespressioni numerate

[sin(alpha+beta) = sinalphacosbeta + cosalphasinbeta

]4I comandi imath e jmath per lrsquointerprete sono ciascuno un solo token anche se a

noi umani sembrano sequenze di segni e di lettere e quindi ci appaiono ciascuno come unamoltitudine di token

170 CAPITOLO 9 LATEX LA MATEMATICA SEMPLICE

con la sintassi

[ 〈espressione matematica〉]

oppure con lrsquoambiente displaymath

begindisplaynmathsin(alpha+beta) = sinalphacosbeta + cosalphasinbeta

enddisplaymath

che segue la sintassi

begindisplaymath〈espressione matematica〉enddisplaymath

Mentre per le espressioni numerate si usa lrsquoambiente equation con la sintassi

beginequation〈espressione matematica〉label〈etichetta〉endequation

Usando il pacchetto amsmath diventa disponibile lrsquoambiente equation

beginequation〈espressione matematica〉endequation

del tutto equivalente allrsquoambiente displaymath solo che gestisce meglio gli spazie accetta anche espressioni matematiche piugrave complesse disponibili con quelpacchetto

La sintassi egrave auto esplicativa ma si noti che lrsquo〈etichetta〉 puograve contenereun nome simbolico con il quale richiamare lrsquoequazione per nome invece cheper numero rendendo cosigrave automatico il processo dei riferimenti incrociatimediante i comandi label ref e pageref Il pacchetto amsmath per citarele equazioni mette a disposizione anche il comando eqref che provvede da soloa racchiuderne il riferimento vero fra parentesi tonde come si fa abitualmente(e come non si egrave fatto in questo testo) Quel pacchetto mette a disposizioneanche un comando tag per identificare le equazioni esso consente di assegnareallrsquoequazione un lsquonomersquo letterale invece che un identificativo numerico ed egraveusabile anche allrsquointerno dellrsquoambiente equation bencheacute questo si riferisca adun ambiente non numerato egrave proprio quello che si egrave fatto per lrsquoequazione chedefinisce la sezione aurea nella pagina 160

99 Le unitagrave di misuraQuanto esposto nei paragrafi precedenti dovrebbe consentire di scrivere equazionidi una riga numerate o non numerate e di poterle citare in modo corretto senzascambi di identitagrave

Prima di passare al capitolo successivo vale la pena di soffermarci su unaquestione molto importante visto che la matematica non serve solo ai matematici

99 LE UNITAgrave DI MISURA 171

puri ma anche ai tecnologi ai fisici ai chimici e a tanti altri tecnici e scienziatiche scrivono equazioni di fisicandashmatematica

La fisicandashmatematica usa espressioni che coinvolgono grandezze fisiche econ queste la composizione della matematica deve soddisfare a ulteriori regolespecificate dalle norme ISOndashUNI

1 Le grandezze fisiche vanno scritte in corsivo matematico anche le costantifisiche vanno scritte in corsivo matematico a differenza delle costantimatematiche che vanno scritte in tondo

2 quando si esplicita il valore numerico delle costanti fisiche o di qualunquegrandezza fisica bisogna inserire anche le unitagrave di misura

3 Le unitagrave di misura devono seguire scrupolosamente le norme ISO sia per iloro nomi sia per i loro simboli e i loro prefissi decimali inoltre

(a) devono essere scritte in tondo anche nelle espressioni matematiche(b) devono essere separate da uno spazio fine dal valore numerico(c) questo spazio deve essere lsquonon separabilersquo nel senso che non si puograve

avere un lsquoa caporsquo fra la misura e lrsquounitagrave di misura

Tutte queste azioni si ottengono in un colpo solo se si usa il comando unitdisponibile con il pacchetto babel quando si scrive in italiano Bisogna soloscrivere il comando unit con il suo argomento lsquoattaccatorsquo alla misuraper esempio 39unitkohm che produce 39 kW5

4 I pedici e gli apici numerici vanno scritti con carattere diritto ma quelliletterali vanno scritti in corsivo matematico se rappresentano quantitagravevariabili o in tondo se rappresentano delle apposizioni della grandezzafisica quindi Vmax e non Vmax invece bisogna scrivere VT se T egrave peresempio una temperatura Vi se i rappresenta lrsquoi-esimo elemento di uninsieme numerabile ma Vi se lsquoirsquo sta per lsquoinizialersquo Per questo scopo babelin italiano offre il comando ped per scrivere pedici in tondo e ap perscrivere apici in tondo entrambi i comandi funzionano anche in modo testoper inserire pedici o apici ma in modo testo mantengono il font in usosenza preoccuparsi se sia diritto o inclinato

Una tipica equazione fisica potrebbe essere

i(t) =radic

2Ieff Re[eiωt]

dove lsquoeffrsquo sta per lsquoefficacersquo lsquoersquo egrave la costante matematica base dei logaritmi naturalida distinguere dalla lsquocarica elettrica elementare ersquo e lsquoirsquo egrave lrsquounitagrave immaginaria dadistinguere dalla grandezza fisica lsquocorrente elettrica irsquo

La figura 91 riprende due strafalcioni giornalistici pubblicati su un quotidianonazionale nella figura di sinistra crsquoegrave lrsquoerrore frequentissimo di scrivere lsquoKrsquo invecedi lsquokrsquo per il prefisso lsquokilorsquo in effetti in quella figura si parla di kelvin metri

5In modo matematico bisognerebbe scrivere Omega mentre in modo testo bisognerebbescrivere textohm Non egrave difficile definire un comando ohm che distingua che cosa si deve usarea seconda se si egrave in modo matematico o in modo testo come egrave stato fatto in questo documentovedi nella pagina 315

172 CAPITOLO 9 LATEX LA MATEMATICA SEMPLICE

Figura 91 Due esempi di strafalcioni giornalistici

allrsquoora Nella figura a destra lsquoMbit al secondorsquo doveva essere6 Mbs o forseMibs Ammesso che si tratti solo di un errore di stampa con una velocitagrave ditrasmissione di 75Mibs per trasmettere il contenuto di un DVD completo (chegeneralmente contiene piugrave di 45GiB cioegrave piugrave di 36Gib) occorrono almeno 480 scioegrave 8min tuttrsquoaltro che pochi secondi

Chi compone i suoi testi con LATEX egrave tenuto ad astenersi da una simileignoranza e sciatteria

Egli perograve puograve trarre giovamento dallrsquouso dei pacchetti units e SIunits Ilprimo pacchetto definisce una versione del comando unit (diversa da quella cheegrave definita con lrsquoopzione italian del pacchetto babel) che consente di specificarealcune opzioni di spaziatura fra la misura e lrsquounitagrave di misura e consente discrivere le frazioni mediante numeratore rialzato e denominatore ribassato utilisia in linea con il testo sia in matematica affincheacute risulti ben chiaro chi sia ilnumeratore e chi il denominatore si puograve quindi specificare una velocitagrave nellaforma 70 kmh questo modo di scrivere egrave una pratica diffusa nei paesi dellrsquoEuropadel Nord ma non egrave previsto dalle norme ISO

Il secondo pacchetto contiene una bella e aggiornata descrizione della situazio-ne relativa al Sistema Internazionale (SI) di unitagrave di misura e richiama anche lenorme tipografiche specificate dalla Conferenza Generale dei Pesi e delle Misure edalle sue commissioni noncheacute dalle norme ISO che regolano questa questione Ilpacchetto fornisce anche una diversa definizione del comando unit che richiedeperograve due argomenti e quindi egrave incompatibile con la definizione dellrsquoopzione italiandi babel allrsquointerno del secondo argomento egrave possibile specificare le unitagrave dimisura a parole (in inglese britannico e al singolare) per cui egrave possibile indicarela velocitagrave di 70 kmh con la scrittura

unit70kilometreperhour

Invece con il comando definito con lrsquoopzione italian di babel basta scrivere70unitkmh

Usando il pacchetto SIunits egrave possibile specificargli lrsquoopzione italian cosiccheacutesi evita la collisione con la definizione di unit in babel percheacute la definizione delpacchetto SIunits diventa unita (in italiano e senza accento) e i due comandicon le rispettive sintassi possono essere usati contemporaneamente Viceversa se

6I prefissi stabiliti dalle norme ISO dal kilo in poi rappresentano potenze di 1000 In infor-matica egrave piugrave conveniente fare riferimento alle potenze di 2 per indicare i multipli normalmentesi usano gli stessi prefissi ISO (con k mutato in K) seguiti da una lsquoirsquo essi rappresentano lepotenze di 210 = 1024 Il prefisso lsquoMirsquo indica quindi (210)2 e il prefisso lsquoGirsquo indica il valore(210)3 Inoltre il simbolo del bit egrave lsquobrsquo mentre quello del byte egrave lsquoBrsquo

99 LE UNITAgrave DI MISURA 173

questa soluzione non interessa basta caricare il pacchetto babel dopo il pacchettoSIunits percheacute babel egrave predisposto affincheacute non ridefinisca il comando unit diSIunits

Lo stesso autore di SIunits DNJ Els ha preparato un secondo pacchettoSIstyle per comporre correttamente le indicazioni metriche delle grandezzefisiche secondo questo pacchetto il comando per comporre la grandezza fisica egravesemplicemente

SI〈misura〉〈unitagrave di misura〉

Il pregio del pacchetto oltre alla semplicitagrave drsquouso che fa dire ad Els di preferireegli stesso questo pacchetto al suo piugrave esteso pacchetto SIunits consiste nellevaste possibilitagrave di personalizzazione e di adeguamento a specifiche norme na-zionali serve cioegrave ad impostare lo stile di scrittura delle grandezze fisiche inmodo da assicurare lrsquouniformitagrave di composizione allrsquointerno del documento

Va infine segnalato anche il recentissimo pacchetto siunitx che sostituiscetutti i precedenti e che offre molte possibilitagrave in piugrave per gestire le grandezzefisiche in termini numerici dispone di un modulo di elaborazione dei numeri checonsente anche scritture del tipo 30e3 e che le macro di scrittura trasformanoin 30times 103 questo permette di trarre i valori numeri da file scritti dagli stessistrumenti di misura moderni dove i valori numerici sono espressi con la notazioneinformatica dei numeri a virgola mobile Si puograve specificare il numero di cifre dascrivere nei valori numerici delle misure il modulo di elaborazione dei numeriprovvede ad arrotondare quel valore numerico al numero richiesto di decimaliInfatti se si specifica che si vogliono consistentemente 4 decimali e la virgoladecimale il numero 1234567 viene stampato nella forma 12346 dove il numerodi decimali egrave quello voluto ma lrsquoultima cifra tiene conto dellrsquoarrotondamento inalto visto che la parte scartata egrave maggiore della metagrave dellrsquounitagrave corrispondenteallrsquoultima cifra scritta inoltre il punto decimale egrave consistentemente cambiatonella virgola come richiesto Si rinvia il lettore alla documentazione in doclatexsiunitxsiunitxpdf

Il compositore stia bene attento alla preposizione lsquoperrsquo che in italiano significalsquomoltiplicatorsquo e in inglese significa lsquodivisorsquo una resistivitagrave di lsquosette microohmper metrorsquo si scrive 7 microWm oppure 7microW m ma sarebbe sbagliatissimo scriverla7 microWm interpretando la preposizione lsquoperrsquo allrsquoinglese7

7In italiano lsquodivisorsquo si dice lsquoalrsquo non lsquoperrsquo al massimo si puograve dire lsquoper ognirsquo Drsquoaltra parte illimite di velocitagrave urbano egrave di cinquanta chilometri allrsquoora o di cinquanta chilometri per ora

Capitolo 10

LATEX la matematicaavanzata

Questo capitolo egrave dedicato a chi ha bisogno di scrivere espressioni matematicheun porsquo piugrave complesse di quelle che si possono comporre con i comandi base diLATEX esposti nel capitolo precedente

Egrave comodo fare uso del pacchetto di estensione amsmath Questa estensioneegrave il frutto della collaborazione con lrsquoAmerican Mathematical Society (AMS) chedai tempi del Plain TEX originale anzi del TEX78 la primissima versione delsistema TEX ha sempre collaborato ed egrave sempre stata strenua sostenitrice diquesto software ne ha sponsorizzato il lsquotrade markrsquo ed egrave stata la prima societagravescientifica ad accettare i contributi alle proprie riviste scritti in Plain TEX inAMSTEX e infine in AMSLATEX vale a dire con i programmi standard estesicon i pacchetti preparati dai programmatori della Societagrave stessa e poi messi adisposizione di tutta la comunitagrave degli utenti La American Mathematical Societyha anche messo a disposizione i file di classe specializzati per scrivere articolidestinati alle sue varie pubblicazioni ora questa pratica egrave seguita da tutte le piugraveimportanti riviste scientifiche internazionali anche gli atti di molti congressi sonoscritti usando direttamente i file sorgente degli autori delle memorie presentatea quei congressi

Il pacchetto principe per lrsquoutente generico egrave il pacchetto amsmath Questopacchetto mette a disposizione una miriade di comandi nuovi da quelli che servo-no per usare altri simboli oltre a quelli giagrave molto numerosi presenti normalmentein LATEX a quelli che servono per predisporre incolonnamenti particolari a quelliche servono per comporre segni o strutture matematiche avanzate

101 I simboli di amsmathIl pacchetto amsmath consente di accedere ai simboli delle tabelle 101 e 102

Se insieme a amsmath si invoca anche amssymb si hanno disponibili tra glialtri anche i vecchi segni di LATEX209 forniti anche dal pacchetto ltxsymb ilcui uso come si egrave avuto occasione di commentare egrave oggi sconsigliato Drsquoaltraparte amssymb invoca a sua volta amsfonts che mette a disposizione anche altrifont in particolare i font lsquoEuler frakturersquo che in matematica possono talvoltarisultare piugrave efficaci dei caratteri calligrafici

175

176 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

ulcorner p urcorner q llcorner xlrcorner y dashrightarrow 99K dashleftarrow L99widehat widetilde ˜ dasharrow 99K

rightleftharpoons leftrightharpoons angle anghbar ~ sqsubset sqsupset Amho f square lozenge diams

vartriangleright B vartriangleleft C trianglerighteq Dtrianglelefteq E circleddash boxdot

boxplus boxtimes boxminus blacksquare centerdot blacklozenge

circlearrowright circlearrowleft Vdash 13Vvdash vDash twoheadrightarrow

twoheadleftarrow leftleftarrows hArr rightrightarrows rArrupuparrows downdownarrows upharpoonright

downharpoonright upharpoonleft downharpoonleft rightarrowtail leftarrowtail leftrightarrows

rightleftarrows Lsh Rsh rightsquigarrow leftrightsquigarrow looparrowleft looparrowright circeq $ succsim

gtrsim amp gtrapprox multimap (therefore there4 because ∵ doteqdot +triangleq precsim - lesssim

lessapprox eqslantless 0 eqslantgtr 1curlyeqprec 2 curlyeqsucc 3 preccurlyeq 4

leqq 5 leqslant 6 lessgtr ≶backprime 8 risingdotseq fallingdotseq

succcurlyeq lt geqq = geqslant gtgtrless ≷ vartriangleright B vartriangleleft C

trianglerighteq D trianglelefteq E bigstar Fbetween G blacktriangledown H blacktriangleright I

blacktriangleleft J vartriangle M blacktriangle Ntriangledown O eqcirc P lesseqgtr Q

gtreqless R lesseqqgtr S gtreqqless TRrightarrow V Lleftarrow W veebar Y

barwedge Z doublebarwedge [ measuredangle ]sphericalangle ^ varpropto prop smallsmile `

smallfrown a Subset b Supset cCup d Cap e curlywedge f

curlyvee g leftthreetimes h rightthreetimes isubseteqq j supseteqq k bumpeq l

Bumpeq m lll ≪ ggg ≫circledS s pitchfork t dotplus ubacksim v backsimeq w complement

intercal ᵀ circledcirc circledast ~

Tabella 101 Prima serie di simboli accessibili con il pacchetto amsmath

102 LE ESTENSIONI DEI FONT MATEMATICI 177

lvertneqq gvertneqq nleq ngeq nless ≮ ngtr ≯

nprec ⊀ nsucc lneqq gneqq nleqslant ngeqslant lneq gneq 13 npreceq

nsucceq precnsim succnsim lnsim gnsim nleqq ngeqq precneqq succneqq

precnapprox succnapprox lnapprox gnapprox nsim ncong

diagup diagdown varsubsetneq varsupsetneq nsubseteqq nsupseteqq

subsetneqq $ supsetneqq varsubsetneqq ampvarsupsetneqq subsetneq ( supsetneq )

nsubseteq nsupseteq + nparallel ∦nmid - nshortmid nshortparallel

nvdash 0 nVdash 1 nvDash 2nVDash 3 ntrianglerighteq 4 ntrianglelefteq 5

ntriangleleft 6 ntriangleright 7 nleftarrow 8nrightarrow 9 nLeftarrow nRightarrow

nLeftrightarrow lt nleftrightarrow = divideontimes gtvarnothing empty nexists Finv `

Game a eth eth eqsim hbeth i gimel ג daleth k

lessdot l gtrdot m ltimes nrtimes o shortmid p shortparallel q

smallsetminus r thicksim sim thickapprox asympapproxeq u succapprox v precapprox w

curvearrowleft x curvearrowright y digamma zvarkappa κ Bbbk k hslash

backepsilon

Tabella 102 Seconda serie di simboli accessibili con il pacchetto amsmath

Invece se non occorre tutto il macchinario di amsmath ma occorrono soloalcuni simboli in particolare le lettere maiuscole ad aste raddoppiate si puograveusare solo il pacchetto amsfonts che definisce il comando mathbb per usarleQui nelle tabelle citate si egrave riportato tutto lrsquoinsieme dei simboli componibili permezzo di tutti i pacchetti associati a amsmath in modo che il lettore abbia laconsapevolezza della potenza del sistema TEX per quanto riguarda la simbologiadisponibile

102 Le estensioni dei font matematiciLa AMS ha messo a disposizione due altre polizze di font chiamate cripticamentemsam e msbm i cui simboli sono direttamente accessibili con il pacchetto amsfonts

Nella tabella 102 si notano diversi operatori binari lsquonegatirsquo i font norma-li di LATEX contengono anche il qualificatore not che serve per creare persovrapposizione1 la negazione di qualsiasi operatore binario

1Si veda il capitolo 21 dove si spiega che il comando not va modificato in modo da renderlo

178 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

In linea di principio sarebbe desiderabile usare sempre i segni negati dellatabella 102 talvolta perograve bisogna fare di necessitagrave virtugrave e ricorrere a not peresempio non crsquoegrave preconfezionato il simbolo di lsquonon appartenenzarsquo notin questosi puograve ottenere negando lrsquooperatore in a isin b e il risultato appare pienamenteaccettabile In altri casi come per esempio per lrsquooperatore lsquonon esistersquo si puogravenegare lrsquooperatore lsquoesistersquoexists ma se si fa cosigrave si ottiene existx Se invece siusa direttamente lrsquooperatore nexists il risultato egrave molto migliore x anzi egraveperfetto

Unrsquoaltra cosa a cui bisogna fare attenzione sono gli spazi che precedonoe seguono gli operatori di vario genere a seconda di ciograve che li precede o lisegue il discorso puograve risultare abbastanza complesso ma egrave completamentedescritto nel TEXbook che riporta anche la tabella completa per tutte le com-binazioni di accostamento dei vari operatori e dei vari simboli matematiciGeneralmente lo spazio viene azzerato quando due operatori dello stesso tiposi susseguono per esempio per dire che lrsquoordinamento implicato dallrsquoopera-tore le viene esteso dallrsquoordinamento implicato da non egrave corretto scrivere( leq subseteq preceq ) ottenendo lesube percheacute gli spazi sono sba-gliati bisogna invece scrivere ( leq subseteq preceq ) percheacute leparentesi di gruppo nascondono allrsquooperatore intermedio la natura del lorocontenuto infatti si ottiene le sube

Questi sono punti delicati forse troppo tecnici per la natura di questo testoma ricordiamoci la tipografia egrave unrsquoarte e la composizione tipografica dellamatematica ne costituisce un livello superiore LATEX puograve fare di tutto da soloma qualche volta ha bisogno di un piccolo aiuto da parte del compositore

103 I sistemi di equazioniI sistemi di equazioni sono formati da un certo numero di equazioni incolonnateuna sopra lrsquoaltra di solito allineate in modo che i segni di uguaglianza (oqualunque altro segno di relazione) siano incolonnati verticalmente

LATEX egrave nato con un ambiente eqnarray (anche asteriscato) che consente dieseguire questo incolonnamento per esempio

3x+ 7y minus 2z = 13 (101)2y + 3z = 12 (102)

5xminus 3y + 4z = 6 (103)

in cui le equazioni sono numerate da 101 a 103 e vi si puograve fare riferimentosingolarmente usando il comando label alla fine di ciascuna riga Il sistemaesposto egrave stato scritto con il codice

begineqnarray3x + 7y - 2z amp=amp 13 labelequsistema1

2y + 3z amp=amp 12 labelequsistema25x - 3y + 4z amp=amp 6 labelequsistema3

endeqnarray

Se invece di usare lrsquoambiente eqnarray si fosse usato lrsquoambiente eqnarray leequazioni non sarebbero state numeratecompatibile con il formato archiviabile un altro segno che va modificato egrave mapsto

104 GLI AMBIENTI DI COMPOSIZIONE DI AMSMATH 179

Purtroppo questo ambiente egrave nato con un lsquopeccato originalersquo se il lettoreosserva bene constata che lo spazio a destra e a sinistra dei segni di uguaglian-za nelle equazioni 101ndash103 egrave maggiore che non nelle equazioni del capitoloprecedente Non si sa se questo fosse voluto o se sia successo per caso maquando dal vecchio LATEX209 si egrave passati al nuovo LATEX2ε questo difetto egravestato conservato apparentemente per mantenere una compatibilitagrave con i filepredisposti per essere composti con la vecchia versione

Oggi gli ambienti eqnarray e eqnarray non dovrebbero venire piugrave usati masi dovrebbero usare solo gli ambienti predisposti dal pacchetto amsmath

104 Gli ambienti di composizione di amsmathIl pacchetto amsmath mette a disposizione una serie di ambienti per comporreeo incolonnare equazioni o per raccoglierle in modo ordinato ovvero per scriverlesu piugrave righe in modo professionale anche se lrsquointervento dellrsquoautore per conoscereil ritmo delle espressioni matematiche egrave fondamentale

Gli ambienti disponibili sono raggruppati nella tabella 103

equation equation align aligngather gather flalign flalignmultline multline alignat alignataligned split subequations

Tabella 103 Gli ambienti di allineamento di amsmath

Tutti gli ambienti hanno la versione asteriscata che differisce da quella nonasteriscata per la mancanza delle numerazione dellrsquoequazione solo split e alignedne sono privi percheacute devono essere usati allrsquointerno degli altri ambienti nonpossono essere usati da soli subequations invece ne egrave privo percheacute serve pernumerare le equazioni in un modo particolare

La numerazione puograve anche essere esclusa inserendo il comando notag primadel segno di lsquoa caporsquo di ogni riga dellrsquoallineamento alternativamente il coman-do tag consente di inserire una etichetta a propria scelta come per esempionellrsquoequazione

a2 + b2 = c2 (Teorema di Pitagora)

ottenuto scrivendo

beginequationa^2 +b^2 = c^2 tagTeorema di Pitagoraendequation

Tutti gli ambienti di incolonnamento usano il segno amp per passare da unacolonna allrsquoaltra e non vogliono mai due segni a cavallo degli operatori di relazionecome succede con eqnarray ma ne vogliono uno solo prima dellrsquooperatore

1041 Lrsquoambiente equationDi equation si egrave giagrave detto quanto basta il suo compagno asteriscato a parte lanumerazione consente di contenere tutti gli altri ambienti che possono essereinclusi negli ambienti numerabili in particolare split per scrivere lunghe equazioni

180 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

su piugrave righe La presenza di equation consente di evitare di usare displaymathquestrsquoultimo infatti non garantisce le spaziature corrette e omogenee con quelledegli altri ambienti matematici La definizione mediante lrsquoasterisco egrave anche piugravecoerente con lrsquouso dellrsquoasterisco negli altri ambienti numerabili ma di cui sidesidera eliminare la numerazione

1042 Lrsquoambiente alignedLrsquoambiente aligned serve per comporre un allineamento di equazioni o di espressio-ni matematiche allrsquointerno di un altro ambiente che sia in grado eventualmentedi assegnare un numero a questo allineamento Per esempio si puograve scrivere

Kern(x) = minus[log(x2) + γ] + 14πBein(x)

+ 12

nminus1sumk=0

(nminus k minus 1)(x2)2kminusn

k cos (3n+ 2k)π4

+ 12

infinsumk=0

(x2)n+2k

k(n+ k) [Φ(k) + Φ(n+ k)] cos (3n+ 2k)π4

(105)

Questo ambiente produce risultati molto simili a quelli dellrsquoambiente split a cuisi rinvia per i commenti

1043 Lrsquoambiente splitLrsquoambiente split serve per dividere una lunga espressione matematica fra piugraverighe

Lrsquoequazione su piugrave righe 105 resa con aligned con split diventa

Kern(x) = minus[log(x2) + γ] + 14πBein(x)

+ 12

nminus1sumk=0

(nminus k minus 1)(x2)2kminusn

k cos (3n+ 2k)π4

+ 12

infinsumk=0

(x2)n+2k

k(n+ k) [Φ(k) + Φ(n+ k)] cos (3n+ 2k)π4

(106)

Il risultato egrave stato ottenuto con

beginequationbeginsplitKer_n(x) amp = -[log(x2)+gamma]

+textstylefrac14piBei_n(x)amp quad+frac12sum_k=0^n-1

frac(n-k-1)(x2)^2k-nkcosfrac(3n+2k)pi4

amp qquad+frac12sum_k=0^inftyfrac(x2)^n+2kk(n+k)[Phi(k)+Phi(n+k)]

cosfrac(3n+2k)pi4endsplitlabelequKer2

endequation

104 GLI AMBIENTI DI COMPOSIZIONE DI AMSMATH 181

La differenza fra split e aligned egrave che il primo ambiente oltre a consentireallineamenti verticali come per altro fa anche il secondo ambiente produce unrisultato finale che a parte il suo contenuto ha esattamente la larghezza dellariga in cui compare mentre aligned produce il suo risultato finale sotto formadi un oggetto che egrave largo quanto il suo contenuto In tal modo questo oggettopuograve costituire un elemento di costruzione di un oggetto piugrave grande Questi dueambienti inoltre differiscono dallrsquoambiente multline percheacute consentono degliallineamenti verticali mentre multline non lo consente come si vedragrave tra poco

1044 Lrsquoambiente multlineLa stessa equazione su tre righe composta con lrsquoambiente multline diventa

Kern(x) = minus[log(x2) + γ] + 14πBein(x)

+ 12

nminus1sumk=0

(nminus k minus 1)(x2)2kminusn

k cos (3n+ 2k)π4

+ 12

infinsumk=0

(x2)n+2k

k(n+ k) [Φ(k) + Φ(n+ k)] cos (3n+ 2k)π4 (107)

con il codice sorgente

beginmultlineKer_n(x) = -[log(x2)+gamma]

+textstylefrac14piBei_n(x)+frac12sum_k=0^n-1

frac(n-k-1)(x2)^2k-nkcosfrac(3n+2k)pi4

+frac12sum_k=0^inftyfrac(x2)^n+2kk(n+k)[Phi(k)+Phi(n+k)]

cosfrac(3n+2k)pi4endmultline

Si noti in particolare la mancanza dei segni di incolonnamento amp e la mancanzadei comandi di spaziatura quad e qquad presenti negli esempi precedenti infattimultline compone la prima riga allineata con il margine sinistro delle equazioniallinea lrsquoultima espressione con il margine destro tenendo conto del numerodellrsquoequazione infine allinea tutte le altre righe in modo da centrarle nello spaziodisponibile Se il numero dellrsquoequazione egrave a destra egrave in linea con lrsquoultima rigaoppure sotto allrsquoultima riga se si decide di comporre con i numeri delle equazionia sinistra il numero egrave allineato con la prima riga oppure egrave collocato prima dellaprima riga in entrambi i casi non crsquoegrave mai sovrapposizione fra il numero e leespressioni

Questa gestione intelligente della collocazione del numero dellrsquoequazione inmodo da non sovrapporsi mai allrsquoequazione stessa egrave comune a tutti gli ambientimatematici numerabili prodotti da amsmath questa gestione intelligente giagrave dasola basterebbe a giustificare lrsquouso sistematico di amsmath e dei suoi compagniogni qual volta si debbano scrivere testi con equazioni anche semplici (prive disegni insoliti) ma lunghe

Egrave necessario richiamare lrsquoattenzione su come si dividano le espressioni ma-tematiche fra piugrave righe il punto di cesura va messo prima di un operatore di

182 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

relazione o di un operatore binario senza ripeterlo alla fine della riga precedentecome per altro egrave giagrave stato detto Ma se da un lato non sarebbe opportunospezzare una espressione di ldquograndirdquo dimensioni racchiusa fra parentesi talvoltaegrave necessario farlo In questo modo diventa difficile usare correttamente i comandileft e right per rendere automatico il dimensionamento dei delimitatoriproprio a causa dellrsquoespressione spezzata fra piugrave righe Egrave quindi necessariorinunciare agli automatismi offerti da LATEX e ricorrere ai comandi manualibigl bigr eccetera come mostrato nella pagina 168 Anche se gli ambientidi amsmath aiutano moltissimo per comporre espressioni matematiche spezza-te sta allrsquoautore oltre che al compositore trovare il giusto ritmo di divisionedi queste lunghe espressioni e di racchiuderle fra le parentesi di dimensionicorrette

1045 Lrsquoambiente gatherLrsquoambiente gather serve per raccogliere ordinatamente da due a piugrave equazioniuna per riga senza nessun incolonnamento particolare ma centrando le varieequazioni in un certo senso potrebbe essere visto come una sequenza di ambientiequation con questo ambiente si possono raccogliere le equazioni di Maxwellper esempio nella forma

nablatimes ~E = minuspart~B

partt(108)

nablatimes ~H = part ~D

partt+ ~J (109)

nabla middot ~D = ρ (1010)nabla middot ~B = 0 (1011)

ottenuta scrivendo

begingathernablatimesvecE=-fracpartialvecBpartial tnablatimesvecH=

fracpartialvecDpartial t+vecJnabla cdotvecD= rhonabla cdotvecB= 0

endgather

1046 Lrsquoambiente alignAl contrario usando lrsquoambiente align le stesse equazioni di Maxwell diventano

nablatimes ~E = minuspart~B

partt(1012)

nablatimes ~H = part ~D

partt+ ~J (1013)

nabla middot ~D = ρ (1014)nabla middot ~B = 0 (1015)

ottenute scrivendo

104 GLI AMBIENTI DI COMPOSIZIONE DI AMSMATH 183

beginalignnablatimesvecEamp= -fracpartialvecBpartial tnablatimesvecHamp=

fracpartialvecDpartial t+vecJnabla cdotvecDamp= rhonabla cdotvecBamp= 0

endalign

Si nota che lrsquounica differenza consiste nel comando di incolonnamento amp inseritoprima di ciascun segno di uguaglianza

Allrsquointerno di un ambiente align possono comparire diversi incolonnamentinon uno solo come nellrsquoesempio precedente per esempio le equazioni di Maxwellpotrebbero venire riorganizzate cosigrave

nablatimes ~E = minuspart~B

parttnabla middot ~D = ρ (1016)

nablatimes ~H = part ~D

partt+ ~J nabla middot ~B = 0 (1017)

usando la scrittura

beginalignnablatimesvecEamp=-fracpartialvecBpartial t

ampnabla cdotvecDamp=rhonablatimesvecHamp=fracpartialvecDpartial t+vecJ

ampnabla cdotvecBamp=0endalign

1047 Lrsquoambiente falignLrsquoambiente flalign differisce dallrsquoambiente align solo per il fatto che le espressioniallineate vengono spostate al massimo allrsquoesterno della riga dove compaiono

nablatimes ~E = minuspart~B

parttnabla middot ~D = ρ (1018)

nablatimes ~H = ~J + part ~D

parttnabla middot ~B = 0 (1019)

e si vede chiaramente che questo ambiente va meglio quando le equazioni nonsono numerate e quando le espressioni sono sufficientemente lunghe nelle altrecircostanze egrave meglio usare align Se le espressioni sono piugrave di due in ogni riga lospazio viene usato meglio ma resta il fatto che i numeri delle equazioni diventanoancora piugrave lsquosuperfluirsquo

1048 Lrsquoambiente alignatLrsquoambiente alignat egrave un porsquo particolare percheacute accetta un numero come argomen-to del comando di apertura che specifica quanti punti di allineamento compaionoin ogni riga la regola dice conta il massimo numero di segni amp che compaiono in

184 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

ogni riga aggiungi 1 e dividi per 2 Cosigrave lrsquoesempio del manuale diventa

x = y1 minus y2 + y3 minus y5 + y8 minus by eq (321) (1020)= yprime ylowast by eq (41) (1021)= y(0)yprime by Axiom 1 (1022)

prodotto con il codice

beginalignat2xamp= y_1 - y_2 + y_3 -y_5 +y_8 -dots

ampquad amp textby eq~(321)amp=yrsquocirc y^ amp amp textby eq~(41)amp= y(0)yrsquo amp amp textby Axiom 1

endalignat

e nel quale si osserva la presenza del comando text questo comando serve perscrivere del testo allrsquointerno di espressioni matematiche se questo testo contieneuna espressione matematica in linea questa va esplicitamente racchiusa fra idelimitatori ( e )

1049 Lrsquoambiente subequationsLrsquoambiente subequations egrave particolare percheacute le equazioni allrsquointerno di questoambiente vengono numerate con un contatore subalterno cosigrave da produrre nu-meri del tipo (1022a) (1022b) eccetera Per esempio il sistema di proprietagravecondizionate

Im[F (σ + i 0)] = 0 forallσ gt 0 (1023a)F (p) =infin forallσ gt 0 (1023b)

limprarriω0

(pminus iω0)F (p) = k forallω0 e con 0 le k ltinfin (1023c)

limprarrinfin

F (p)p = h con 0 le h ltinfin (1023d)

Re[F (0 + iω)] ge 0 forallω (1023e)

egrave ottenuto con il codice seguente

DeclareMathOperatoruimmmathrmi nel preambolobeginsubequations

labelequsubebegin align

Im[F(sigma+uimm 0)] amp= 0 ampforallsigmagt0F(p) ampnot=inftyampforallsigmagt0lim_ptouimmomega_0(p-uimmomega_0)F(p)amp=k

amp forallomega_0text e con 0le kltinfty

lim_ptoinfty F(p)pamp=h amptextcon 0le hltinftyRe[F(0+uimmomega)] ampge 0 ampforallomega

labelequsube5endalign

endsubequations

104 GLI AMBIENTI DI COMPOSIZIONE DI AMSMATH 185

Con il comando label inserito prima dellrsquoambiente align ma dentro al-lrsquoambiente subequations si recupera il numero dellrsquointero sistema di condizio-ni 1023 invece con il comando label inserito allrsquointerno dellrsquoambiente alignsi recupera il lsquonumerorsquo assegnato a ciascuna condizione per esempio allrsquoultimacondizione 1023e si fa riferimento mediante refequsube5

La definizione dellrsquounitagrave immaginaria uimm egrave un porsquo particolare nel sensoche essa egrave definita come un operatore invece che come una semplice variabileSi noti che se si usasse il comando primitivo mathop la definizione dovrebbecontenere oltre alla lsquoirsquo in tondo anche uno strut o dello spazio matematico al finedi centrare la lsquoirsquo rispetto al suo asse matematico Egrave questa una ragione in piugraveper ricorrere ai comandi di definizione disponibili con il pacchetto amsmath chepermettono di concentrarsi sul significato intrinseco di ciograve che si sta definendosenza badare ai dettagli compositivi a livello di base

Esercizio 101 Il lettore provi a ripetere la composizione di questo sistema dicondizioni 1023 definendo il comandouimm con newcommand ed usandosolamente mathop Che cosa succede

10410 Gli ambienti spezzatiDi default il pacchetto amsmath fa sigrave che gli ambienti di incolonnamento pre-cedentemente descritti non vengano spezzati da eventuali salti di pagina marestino composti interamente in una sola pagina Questo in generale egrave preferibilerispetto a quando si egrave obbligati a voltare pagina per completare la lettura di ungruppo di equazioni legate assime in un uno di questi ambenti

Tuttavia talvolta egrave impossibile per vari motivi mantenere tutte le espressionidi un mabiente nella stessa pagina egrave sicuramente obbligatorio quando si usanogli ambienti split aligned gathered alignedat andare ad una nuova pagina egraveimpossibile mentre con multline sarebbe possibile ma sarebbe anche ldquosconve-nienterdquo Negli altri casi si puograve essere piugrave tolleranti Per questo scopo il pacchettoamsmath mette a disposizione due comandi

allowdisplaybreaks[〈codice〉]displaybreak[〈codice〉]

per consentire di eseguire un fine pagina fra una espressione e lrsquoaltraPrecisamenteallowdisplaybreak puograve essere messo nel preambolo e vale

per tutti gli incolonnamenti matematici del documento se allrsquointerno di uno diquesti ambienti non si vuole eseguire un cambio di pagina invece di usare ilcomune comando si puograve osare la sua variante asteriscata che appuntoimpedisce il salto di pagina

Invece il comando [displaybreak va usato solamente prima del comando dopo il quale si desidera consentire un salto di pagina

Il 〈codice〉 per entrambi i comandi funziona alla stessa maniera dei comandisimili pagebreak da usarsi nel corpo del testo Si tratta di una cifra nellrsquointer-vallo 0ndash42 che dagrave un peso alla ldquolicenzardquo di eseguire un cambio di pagina 0 egrave unblando consenso mentre 4 egrave un ordine perentorio

Vale la pena di osservare qui che il comando di fine espressione ammette lastessa sintassi che esso usa quando viene usato nel testo (vedi la sintassi espostanella pagina 498) sia per la versione normale sia per quella asteriscata

2Il comando allowdisplaybreak non ammette il valore 0

186 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

[〈spazio〉][〈spazio〉]

cosiccheacute usando il valore 〈spazio〉 si puograve controllare anche la spaziatura fra leequazioni

105 Altri comandi e ambienti

Il pacchetto amsmath offre numerosi altri comandi e ambienti che consentonodi comporre la matematica in modo estremamente professionale

1051 Definizione di operatori funzionali

Qui si cita nuovamente il comando per definire i nomi di nuovi operatorifunzionali

DeclareMathOperator〈operatore〉〈definizione〉

cosigrave che se si volesse definire lrsquooperatore per lrsquoarcoseno iperbolico lsquoarsinhrsquo (chenon egrave definito neacute da LATEX standard neacute da amsmath) basterebbe dichiarare nelpreambolo

DeclareMathOperatorarsinhmathrmarsinh

Il comando asteriscato serve per definire operatori funzionali con i limiti

1052 Le frazioni in generale e le frazioni continue

10521 Le frazioni e gli altri costrutti simili

Il pacchetto amsmath consente di scrivere le frazioni e gli altri costrutti similialle frazioni con tre comandi distinti il nome lsquonormalersquo che compone in uno stilediverso in modo testo rispetto al modo display il nome testuale per comporresempre e comunque in modo testo e il modo lsquoenfaticorsquo per scrivere sempree comunque in modo display per esempio le frazioni normalmente vengonocomposte con il comando frac ma il modo testuale viene composto con tfrace il modo enfatico con dfrac Lrsquooperatore binomiale per esempio si componecon binom (

n

k

)= n(nminus 1)(nminus 2) middot middot middot (nminus k + 1)

1 middot 2 middot 3 middot middot middot k

ma se proprio si volesse indicare il coefficiente binomiale in modo display mentresi egrave in modo testo e si usasse dbinom si otterrebbe

(n

k

) come si vede questo

egrave un tipo di scrittura da evitare assolutamente quando si compone matematicain linea con il testo percheacute altera vistosamente lrsquoavanzamento di riga

105 ALTRI COMANDI E AMBIENTI 187

10522 Le frazioni continue

Fra i comandi utilissimi conviene citare quello per la composizione delle frazionicontinue cfrac con il quale si possono comporre facilmente espressioni del tipo

tanh z =z

1 +z2

3 +z2

5 +z2

7 +z2

middot middot middot

(1024)

composta con i comandi

beginequationtanh z = cfracz1+cfracz^23+cfracz^25+

cfracz^27+cfracz^2cdotsendequation

1053 Il testo intercalato alle equazioniUn altro comando molto interessante egrave intertext esso consente di inserireun (breve) testo che interrompe un incolonnamento di equazioni senza perdere iparametri dellrsquoincolonnamento cosigrave che le successive equazioni mantengono lostesso incolonnamento per esempio

a4x4 + a2x

2 + a0 = 0 (1025)

diventa una semplice equazione di secondo grado

a4t2 + a2t+ a0 = 0 (1026)

se si pone

t = x2 (1027)

Simile a intertext egrave il comando text giagrave visto esso serve per inserireun porsquo di testo dentro una formula specialmente negli enunciati delle condizionima non solo esso serve anche e tipicamente allrsquointerno dellrsquoambiente caseslrsquoequazione 95 usata per mostrare la composizione dei delimitatori estensibili edel delimitatore invisibile puograve essere scritta mediante questo ambiente e questocomando nella maniera seguente

x12 =

minusbplusmnradicb2 minus 4ac

2a se b2 minus 4ac gt 0

minus b

2a se b2 minus 4ac = 0

minusbplusmn iradic

4acminus b22a se b2 minus 4ac lt 0

(1028)

scrivendo nel file sorgente

188 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

beginequationx_12=begincasesdfrac-bpmsqrtb^2-4ac2a

amptextse (b^2-4acgt0)[15ex]-dfracb2a amptextse (b^2-4ac=0)[15ex]dfrac-bpmuimmsqrt4ac-b^22a

amptextse (b^2-4aclt0)endcases

endequation

Si noti che nellrsquoambito dellrsquoargomento di text la condizione egrave nuovamentecomposta come matematica in linea quindi egrave necessario usare gli appositi comandi( e ) come si fa normalmente quando si compone allrsquointerno dei capoversi Sinoti anche lrsquouso del comando dfrac per obbligare LATEX a comporre le frazioniin modo display nonostante che spontaneamente esso comporrebbe quelle frazioniin modo testo lrsquoulteriore spaziatura mediante lrsquoargomento facoltativo [15ex]serve per compensare lrsquoeffetto prodotto dallrsquouso delle frazioni in display

Esercizio 102 Che cosa succederebbe se nellrsquoequazione 1028 non si usassedfrac

Esercizio 103 Che cosa succederebbe nellrsquoequazione 1028 se si usasse senzail suo argomento facoltativo

1054 Le frecce estensibiliLe frecce estensibili diventano lunghe quanto i loro argomenti si tratta deicomandi xleftarrow e xrightarrow che accettano due argomenti uno obbli-gatorio che saragrave collocato sopra la freccia e uno facoltativo che verragrave collocatosotto la freccia

An+microminus1larrminusminusminusminusminus B nplusmniminus1minusminusminusminusrarr

TC (1029)

composto conA xleftarrown+mu-1 B xrightarrow[T]npm i-1 C

1055 Gli indici incolonnatiTalvolta puograve essere necessario indicare gli indici di somma o di prodotto condiverse indicazioni o condizioni come insum

0leilem0ltjltn

P (i j) (1030)

Questo risultato si ottiene mediante substack come si vede dallrsquoesempio 1030composto conbeginequationsum_substack0le ile m

0ltjltn

P(i j)endequation

105 ALTRI COMANDI E AMBIENTI 189

1056 Gli integrali multipliNel caso di integrali multipli LATEX senza estensioni necessiterebbe di un aggiu-stamento della spaziatura si osserviint int int int

dw dxdy dzintintintint

dw dx dy dz (1031)

Nel primo caso si egrave usato quattro volte il segno di integrale mentre nel secondocaso si egrave usato il comando per lrsquointegrale quadruplo disponibile con il pacchettoamsmath che mette a disposizione anche i comandi per lrsquointegrale doppio e perquello triplo in totale i comandi disponibili sono int per lrsquointegrale sempli-ce iint per lrsquointegrale doppio iiint per lrsquointegrale triplo e iiiint perlrsquointegrale quadruplo infine crsquoegrave anche idotsint per lrsquointegrale multiplo

1057 Lrsquooperatore differenzialeSi noti nellrsquoequazione 1031 il segno di differenziale usato come un operatorespeciale che lascia il suo normale spazio alla sua sinistra ma non lascia spazioalla sua destra inoltre esso egrave scritto in tondo come prescrivono le norme ISOvalide per le espressioni matematiche per la fisica e la tecnologia Egrave chiaro chenon si tratta di un normale operatore definibile con il comando giagrave descrittoDeclareMathOperator percheacute con questa definizione il differenziale avrebbelo spazio anche alla sua destra Nel preambolo egrave stato definito lrsquooperatore didifferenziale diff servendosi invece di un operatore lsquovuotorsquo cosigravenewcommanddiffmathopmathrmd

I dettagli di newcommand verranno visti nel capitolo 17 qui limitiamo la nostraattenzione sullrsquooperatore mathop il cui argomento viene definito come operatorematematico salvo che in questo caso il suo argomento egrave vuoto nonostante ciogravegli spazi che attorniano gli operatori sono rispettati anche a destra ma questospazio a destra non ci vuole quindi con il comando si arretra della stessaquantitagrave dopo di che si inserisce il segno del differenziale in tondo Ecco questaegrave una delle rare volte in cui si egrave usato un comando di spaziatura matematica(arretramento di uno spazio fine) ma lo si egrave fatto a ragion veduta per definireun comando per un operatore speciale come il differenziale

Si noti che i matematici affermano che il simbolo del differenziale non rap-presenta un operatore qui non si discute la sua intima essenza ma si sottolineail fatto che le norme ISO prescrivono la scrittura in tondo solo per le espressionimatematiche della fisica e della tecnologia dove le variabili devono essere scrittein corsivo e dove la maggior parte delle variabili ha significati standardizzati Nelcaso specifico d puograve voler dire diametro densitagrave distanza dei piani reticolaricoefficiente piezoelettrico eccetera come si deduce dalla tabella B9 dellrsquoappen-dice B2 La possibile confusione del segno corsivo del differenziale con uno diquei simboli standardizzati giustifica la norma ISO almeno agli occhi dei fisici edei tecnologi

Vale la pena di sottolineare che gli spazi del differenziale sono necessari perscrivere gli integrali mentre servono di meno per scrivere le equazioni differenzialima ci pensa LATEX a tenerli nella debita considerazione come nella seguenteequazione

ad2x

dt2 + bdxdt + c = f(t)

190 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

1058 I simboli corsivi matematici in neroUna cosa che capita spesso in matematica egrave quella di usare il carattere neroallrsquointerno di una formula composta con carattere medio LATEX senza estensioninon consente di scegliere altro che una formula tutta in carattere medio oppuretutta in carattere nero non consente di mescolare questi due casi a meno dinon fare acrobazie di tipo prescrittivo piuttosto che di mark-up Inoltre se sidesidera comporre una formula tutta nera bisogna dichiararlo prima di entrare inmodo matematico e di conseguenza occorre proteggere la formula lsquonerarsquo dentroun gruppo oppure egrave necessario cancellare lrsquoeffetto di annerimento mediantelrsquoapposito comando

boldmath〈ambiente matematico nero〉unboldmath

Allrsquointerno di una espressione egrave possibile usare il carattere nero ma soloper il tondo non per il corsivo matematico Il comando sarebbe mathbf deltutto analogo al corrispondente comando per il testo textbf ma per il corsivomatematico non crsquoegrave nulla

Lrsquoestensione fornita da amsmath consente di usare il comando boldsymbol ilcui argomento puograve essere qualunque simbolo letterale o operazionale matematico

boldsymbol〈simbolo matematico〉

a cui si aggiunge una scorciatoia (anche qualitativa) del poor man bold pmbche simula il font nero replicando un segno chiaro tre volte con un leggerospostamento a destra e in alto (e questo rende meno definito il segno ecco percheacutequalitativamente si tratta di una soluzione da poverrsquouomo) La sintassi egrave lastessa

pmb〈simbolo matematico〉

In generale si sconsiglia di usare pmb con i font di serie con LATEX non do-vrebbe essere necessario usarlo altro che per i grandi operatori e per i delimitatoriestensibili ma non sembra una operazione molto frequente da fare

Con boldsymbol egrave possibile per esempio usare il corsivo matematico perindicare i vettori

a = axi + ayj + azk

mentre con pmb si ottiene

aaa = axiii+ ayjjj + azkkk

e la differenza si vede ad occhio nudoEgrave disponibile sempre anche il pacchetto bm che produce lo stesso effetto ma

in modo piugrave efficiente per compatibilitagrave con amsmath ridefinisce boldymbol inmodo che sia completamente equivalente al suo comando specifico bm Questopacchetto perograve egrave indipendente da amsmath e puograve essere usato con o senza ilsecondo

106 LE MATRICI E I DETERMINANTI 191

1059 Le espressioni matematiche riquadrateSecondo lo scrivente per mettere in risalto una espressione matematica si puograveusare il meccanismo fornito da LATEX cioegrave mettendola in display talvoltaperograve potrebbe essere necessario ricorrere ad unrsquoenfasi maggiore e per questoscopo basta racchiudere lrsquoespressione dentro ad una cornice amsmath mette adisposizione il comando boxed come nellrsquoesempio seguente

x12 = minusbplusmnradicb2 minus 4ac

2a

composto con

[boxedx_12= frac-bpmsqrtb^2-4ac2a]

106 Le matrici e i determinantiLe matrici e i determinanti sono particolari tabelle che contengono solo oprevalentemente espressioni matematiche amsmath mette a disposizione uncerto numero di ambienti per comporre matrici variamente delimitate e perciogravecon significati matematici diversi

Lrsquoambiente base egrave ovviamente matrix e produce una matrice avente al massimo10 colonne ma sprovvista di delimitatori anche gli altri ambienti consentono unmassimo di 10 colonne ma questo numero puograve venire cambiato se si imposta ilcontatore MaxMatrixCols con un valore diverso

setcounterMaxMatrixCols〈numero delle colonne〉

Gli altri ambienti per costruire matrici o determinanti sono i seguenti pma-trix bmatrix Bmatrix vmatrix e Vmatrix tutti questi racchiudono la matricevera e propria allrsquointerno di una coppia di delimitatori estensibili a seconda deldelimitatore la matrice ha un significato diverso Gli ambienti pmatrix bmatrixe Bmatrix racchiudono la matrice allrsquointerno di una coppia di parentesi tondeoppure quadre oppure graffe lrsquoambiente vmatrix serve per comporre un determi-nante racchiudendo la matrice fra due aste verticali mentre lrsquoambiente Vmatrixserve per comporre una norma racchiudendo la matrice fra due coppie di barreverticali

Grazie a questi ambienti non egrave difficile comporre una espressione del tipo∣∣∣∣∣∣∣∣1 1 0 0minus1 2 1 00 minus1 3 10 0 minus1 4

∣∣∣∣∣∣∣∣ = 30 (1032)

mediante il codice

beginequationbeginvmatrix1 amp 1 amp 0 amp 0

-1 amp 2 amp 1 amp 0

192 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

0 amp-1 amp 3 amp 1 0 amp 0 amp-1 amp 4

endvmatrix= 30

labelequdeterminanteendequation

La scrittura nel file sorgente del codice per la composizione della matematica egrave piugravefacilmente leggibile se si usa una scrittura strutturata ci si rende piugrave facilmenteconto se ogni segno di apertura egrave in corrispondenza con il suo compagno dichiusura usando questa pratica nei limiti del possibile si evitano moltissimierrori e si compone piugrave speditamente

Una equazione matriciale diventa abbastanza semplice da comporre special-mente se si ha lrsquoaccortezza di scrivere in modo strutturato nel file sorgente tuttoquello che va ordinatamente inserito nelle matrici

a11 a12 a13 a14a21 a22 a23 a24a31 a32 a33 a34a41 a42 a43 a44

x1x2x3x4

=

y1y2y3y4

Il codice sorgente egrave

[beginpmatrixa_11 amp a_12 amp a_13 amp a_14 a_21 amp a_22 amp a_23 amp a_24 a_31 amp a_32 amp a_33 amp a_34 a_41 amp a_42 amp a_43 amp a_44

endpmatrixbeginpmatrixx_1x_2x_3x_4

endpmatrix=beginpmatrixy_1y_2y_3y_4

endpmatrix]

107 I diagrammi commutativi

I diagrammi commutativi sono particolari espressioni matematiche a metagrave stradafra un insieme di espressioni matematiche e un disegno che le mette in relazionele une con le altre

Il pacchetto amscd serve per estendere amsmath definendo un ambiente CDcon il quale egrave possibile disegnare diagrammi commutativi piani e senza freccediagonali Per diagrammi piugrave complessi il lettore deve rivolgersi a pacchetti diestensione piugrave specializzati come xypic oppure kuvio

108 LA PUNTEGGIATURA IN MATEMATICA 193

Il diagramma commutativo

SWΛ otimes Tjminusminusminusminusrarr T

End P

(S otimes T )I (Z otimes T )J

stato composto con il codice

[

beginCD

S^mathcalW_Lambdaotimes T gtjgtgt T

VVV VVmathrmEndPV

(Sotimes T)I =(Zotimes T)J

endCD

]

1

egrave stato composto con il codice

[beginCDS^mathcalW_Lambdaotimes T gtjgtgt T VVV VVmathrmEndPV(Sotimes T)I =(Zotimes T)J

endCD]

Oltre ai vari comandi per inserire le frecce o le linee di collegamento fra le varieespressioni si noti lrsquouso di mathcal per scrivere caratteri lsquocalligraficirsquo e lrsquouso delcomando di spaziatura per inserire uno spazio circa pari a quello interparolail comando in matematica si comporta diversamente dai comandi analoghiper il modo testo enspace o thinspace percheacute esso cambia valore a secondache lrsquoespressione matematica che si sta componendo sia in modo testo in mododisplay in modo degli indici del primo ordine o di quelli del secondo ordine

Si prenda nota anche del fatto che lrsquoambiente CD deve essere realizzatoallrsquointerno di un ambiente matematico come quello prodotto da [ ] oppureuno dei vari altri ambienti visti in questo capitolo

A proposito di xypic conviene sottolineare che esso usa una sintassi moltoparticolare dove si fa uso di caratteri speciali per eseguire formattazioni specialiuno di questi caratteri egrave il segno che con lrsquoopzione italian di babel egrave attivo esvolge altre funzioni diverse da quelle che esso egrave chiamato a svolgere quando siusa xypic Per questo conviene ridefinire il comando di apertura dellrsquoambientexy nel modo seguente

toks0=expandafterxyedefxynoexpandshorthandoffnoexpandthetoks0

Si tratta di programmazione con il linguaggio primitivo di TEX salvo per ilcomando shorthandoff che insieme al suo compagno shorthandon serveper disattivare o rispettivamente per riattivare uno o piugrave caratteri attivi egrave uncomando definito da babel In questo modo se si usa il pacchetto xypic bastadare quelle definizioni subito dopo la chiamata del pacchetto e poi si egrave sicuridi poter usare tranquillamente lrsquoambiente xy senza i problemi che il carattereattivo potrebbe dare Si noti che questo trucco deve venire usato ogni voltache si compone in una lingua diversa dallrsquoinglese percheacute in tutte le altre lingueeuropee il segno viene sempre definito attivo

108 La punteggiatura in matematicaLa punteggiatura in matematica egrave tipograficamente un problema aperto percheacutenon esistono norme che regolino la questione egrave piugrave una questione di consuetudini

194 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

tipografiche ed editoriali Anzi ogni casa editrice si premura spesso di fornireai suoi potenziali autori una breve guida in cui sono indicate le tradizionicompositive della casa editrice Gli argomenti spaziano attraverso tutto lo scibileche puograve essere scritto e vanno dai titoli correnti alle testatine e ai piedini finoalle virgole del testo e la punteggiatura in matematica naturalmente se la casaeditrice riceve un contributo da pubblicare in forma direttamente stampabilegeneralmente fornisce i fogli di stile nel linguaggio di videocomposizione chelrsquoautore useragrave Non sono rari i casi di case editrici che forniscono direttamente i filedi classe eo le eventuali estensioni per i libri da pubblicare dopo la composizionecon LATEX

Tuttavia per quel che riguarda la punteggiatura della matematica qualchevolta le informazioni o le prescrizioni sono lacunose quindi lrsquoautore deve supplirecon la sua esperienza e la sua sensibilitagrave

Non dovrebbero sussistere problemi per le espressioni matematiche (brevi)che compaiono in linea con il testo dove la punteggiatura dominante egrave quellatestuale

Direi che non dovrebbero esserci problemi nemmeno per la punteggiaturainterna a ogni espressione matematica questa punteggiatura specifica internaalle espressioni matematiche ha un suo particolare significato matematico che faparte della sua lsquogrammaticarsquo I problemi maggiori nascono per la punteggiaturaesterna alle espressioni matematiche in display

Tuttavia cominciamo con i problemi minori di punteggiatura interna Inmatematica si usano essenzialmente gli stessi segni di interpunzione che si usanonel testo eccetto il punto interrogativo salvo che alcuni di questi segni hannoun significato particolare per esempio il punto esclamativo che segue un numerointero o un simbolo che rappresenta un numero intero significa che di quelnumero si considera il lsquofattorialersquo

n = n(nminus 1)(nminus 2) middot middot middot 2 middot 1

Lo stesso punto esclamativo puograve servire per cambiare il significato di un lsquoquan-tificatorersquo logico per esempio exist da taluni egrave usato nel senso di lsquoesiste ed egraveunicorsquo

I due punti hanno un significato particolare in espressioni logiche cosigrave come(in Italia) possono indicare lrsquooperazione di divisione quindi non vengono usaticome segno di interpunzione

Il punto e virgola ha il solo significato di segno di interpunzione mentre lavirgola e il punto sono lsquoanfoterirsquo possono servire ora con il significato di segnodi interpunzione ora con il significato di separatore decimale

Scrivendo in inglese il punto serve come separatore decimale e come puntofermo mentre la virgola egrave un semplice segno di interpunzione usato comepunteggiatura interna per separare gli elementi di una lista

Al contrario in qualunque lingua diversa dallrsquoinglese le norme ISO prescrivonola virgola nella funzione di separatore decimale e quindi la virgola viene adassumere due ruoli distinti il punto per altro sembrerebbe declassato a svolgerela sola funzione di segno di interpunzione (raro nellrsquointerpunzione interna) mapoi rientra come separatore decimale nelle costanti numeriche lsquorealirsquo di tutti ilinguaggi di programmazione Nel capitolo 17 si vedragrave come fare per convincereLATEX a trattare correttamente le due funzioni della virgola in matematica

La punteggiatura esterna egrave quella che pone i principali problemi Mi spiegomeglio per punteggiatura esterna intendo sia la punteggiatura che compare in

108 LA PUNTEGGIATURA IN MATEMATICA 195

una espressione che contenga al suo interno anche delle parti testuali sia lapunteggiatura finale

Non esistono regole lsquogrammaticalirsquo codificate per gestire la punteggiaturaesterna Scrivendo per una data casa editrice come giagrave detto egrave opportunoriferirsi alle sue regole editoriali Scrivendo per proprio conto e specialmentequando si egrave editori di se stessi bisogna decidere autonomamente e scegliere unostile di punteggiatura esterna per la matematica

Sul forum del guIt alcuni argomenti sono stati dibattuti ampiamente e uno diquesti argomenti trattava appunto della punteggiatura esterna Sono emerse duescuole di pensiero fra loro antitetiche ma ciascuna con pregi e difetti lrsquounicacosa sulla quale le due scuole di pensiero concordano egrave che scelto uno stile dipunteggiatura quello deve essere usato costantemente e coerentemente il lettorenon deve essere confuso da un uso irregolare e non uniforme della punteggiaturaLe due scuole di pensiero dicono sostanzialmente quanto segue

La punteggiatura esterna egrave necessaria in matematica come lo egrave per iltesto Secondo questo orientamento la punteggiatura separa le varie parti diuna espressione che contiene anche dei frammenti testuali e va inserita anchealla fine delle espressioni in display sia sotto forma di virgole di punti e virgolao di punti finali in altre parole lrsquoespressione matematica anche se egrave in displayfa parte del testo e la punteggiatura ne esprime il ritmo esattamente come lofa quando si compone del testo non matematico Bisogna solo stare attenti ache i segni di punteggiatura non interferiscano con la parte matematica in sensostretto al punto da renderne difficile la lettura o peggio ancora al punto diindurre il lettore a farne una lettura ambigua o errata

Siccome la punteggiatura non va staccata da quanto viene prima (a differenzadel francese nel quale almeno il punto e virgola va spaziato con uno spazio dialmeno un terzo di em da quanto viene prima) talvolta in italiano si potrebberospaziare virgole e punti suscettibili di introdurre ambiguitagrave nella lettura delleespressioni mediante uno spazio fine che in matematica si rende semplicementecon il comando si confronti per esempio

w = az + b

cz + d con a b c d isin R z w isin C

conw = az + b

cz + d con a b c d isin R z w isin C

Si vede benissimo che nel secondo caso la virgola non puograve essere confusa con unapice della variabile d

La matematica si scrive senza punteggiatura esterna Come si vede inquesto stesso capoverso LATEX sostituisce la punteggiatura finale del titolino(composto con il comando paragraph) con uno spazio interparola maggiore Lascuola di pensiero che non usa la punteggiatura esterna egrave in linea con la praticatipografica di usare spazi adeguati al posto della punteggiatura La punteggiaturaesterna nelle espressioni matematiche viene sostituita con degli spazi o degliincolonnamenti se si deve separare un frammento testuale allrsquointerno di unaespressione lo si fa usando spazi di almeno un quadrato ma meglio ancora di unquadratone rispettivamente con i comandi quad e qquad un incolonnamento

196 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

eseguito per esempio con lrsquoambiente align permette di separare le colonne dellecondizioni dalle colonne contenenti espressioni matematiche come si egrave fatto peresempio con il sistema di condizioni 1023 Proseguendo lrsquoesempio precedente siesamini ancora

w = az + b

cz + dcon a b c d isin R z w isin C

Secondo questa scuola di pensiero la punteggiatura finale egrave ridondante percheacutegli spazi prima e dopo una formula in display e il modo di scrivere la prima rigadi testo che segue tale formula sono sufficienti a capire se la formula stessa chiudeun capoverso o se il periodo di cui fa parte finisce con la formula oppure secontinua dopo la formula infatti se questa prima riga comincia con una letteraminuscola (e ovviamente non egrave rientrata) significa che il periodo continua dopola formula se questa prima riga non egrave rientrata ma comincia con una letteramaiuscola la formula terminava il periodo e ne comincia uno nuovo subito dopoma il capoverso non egrave terminato se invece questa prima riga comincia con unalettera maiuscola ed egrave rientrata vuol dire che dopo la formula che chiude ilperiodo comincia un nuovo capoverso Quello che lrsquoassenza di punteggiaturanon permette di capire egrave il quarto caso cioegrave se la formula termina una frase o sela frase continua dopo la formula per altro anche senza punteggiatura il sensodel discorso egrave evidente anche in questo caso per la presenza di congiunzioni oaltri connettivi che permettono di leggere lrsquoespressione in display come ultimoelemento di una frase o come elemento interno ad una frase In questi quattrocasi lrsquoaltra scuola di pensiero avrebbe usato rispettivamente la virgola il puntofermo il punto e a capo (di fatto il punto alla fine della formula) oppure il puntoe virgola

Per altro con riferimento allrsquoespressione 1028 dove si sarebbe messa lavirgola di chiusura dellrsquoespressione In casi analoghi si egrave vista la virgola (o altrisegni di interpunzione) allineata con lrsquoasse matematico3 dellrsquoespressione oppure achiusura dellrsquoultima riga ma non egrave semplice prendere una decisione compositivain situazioni del genere

Uso simultaneo della punteggiatura e degli spazi in matematica Na-turalmente nessuno vieta di usare sia la punteggiatura sia gli spazi lrsquoesempioriportato sopra diventerebbe

w = az + b

cz + d con a b c d isin R z w isin C

Come il lettore avragrave notato in questo testo si segue la seconda linea dipensiero egrave una scelta del coordinatore il quale si prende la responsabilitagrave diquesta scelta ed egrave perfettamente conscio che i collaboratori seguaci dellrsquoaltrascuola di pensiero ne saranno un porsquo delusi Lrsquoomogeneitagrave dello stile e quindila coerenza compositiva richiedono di non cambiare la punteggiatura da unparagrafo allrsquoaltro a seconda di chi lrsquoha scritto Il lettore invece quando componei suoi testi seguiragrave le sue convinzioni e sceglieragrave il tipo di punteggiatura chepreferisce

3Lrsquoasse matematico egrave la linea orizzontale (invisibile) che passa a metagrave fra le due lineette cheformano il segno = gli operatori le frazioni e tanti altri elementi delle espressioni matematichedovrebbero avere un ingombro verticale simmetrico rispetto a questo asse

109 CONCLUSIONI 197

Va infine segnalato il documento Preparing Articles with LATEX mdash Instructionsto authors for preparing compuscripts della casa editrice olandese Elsevier [15]ben nota in campo scientifico si tratta delle istruzioni per gli autori e per quelche riguarda la matematica non egrave espressamente detto nulla sulla punteggiaturama gli esempi in display ne sono tutti privi

Vale la pena di segnalare quanto viene scritto nel manuale Style Manual [1]della casa editrice Artech House In questo testo predisposto come aiuto agliautori dei testi scientifici che la casa editrice pubblica si afferma esplicitamenteche lo stile dalla casa prescrive

bull Non si usa la punteggiatura estera in una versione piugrave recente di quelmanuale scaricabile dal sito della Artech House si afferma addirittura chele equazioni in display non vogliono nessuna punteggiatura

bull Non si comincia mai un capoverso con una equazione neacute in riga con il testoneacute in display

bull Il periodo o la frase che precede una equazione termina con i due puntise lrsquoultimo elemento della frase egrave un nome un aggettivo un avverbio unnumero di riferimento anche se fra parentesi o in un inciso non si usanessuna punteggiatura se la frase termina con un verbo un articolo unacongiunzione o una preposizione4

Forse queste regole potrebbero essere usate anche per qualsiasi oggetto in displayinserito nel corso del discorso non come oggetto flottante

109 ConclusioniNon egrave questo il luogo per ripetere quanto egrave reperibile sulla documentazione delpacchetto amsmath neacute egrave questo il luogo per illustrare altri pacchetti e altrefunzionalitagrave che la fantasia degli utenti di LATEX egrave riuscita a inventare

Il lettore sappia perograve che la storia non egrave finita qui egli egrave invitato a esploraregli archivi internazionali ctan e scopriragrave una varietagrave infinita di estensioni per lacomposizione della matematica che non potragrave fare a meno di stupirlo sappiaperograve discernere quanto egrave stato escogitato alla buona per risolvere un problemacontingente da quanto egrave stato programmato professionalmente per lrsquouso generale

In particolare legga con attenzione il documento Mathmodepdf facente partedella documentazione standard di TEX Live a partire dal 2010 [54] In questo do-cumento Herbert Voszlig ha raccolto una infinitagrave di casi di composizione matematicache richiedono comandi speciali e ne indica moltissimi egrave una vera miniera da cuiattingere idee e soluzioni a problemi compositivi della matematica che non puogravevenire ignorata Essendo un documento inizialmente scritto da un tedesco per isuoi connazionali poi tradotto in inglese si egrave anche sicuri di trovare informazioniche siano conformai alle tradizioni tipografiche europee quasi sempre conformicon le norme ISO

4Secondo lo scrivente sarebbe meglio usare i due punti anche dopo i verbi Ma qui si stadescrivendo lo stile compositivo della Artech House non lo stile che bisognerebbe usare ingenerale

Capitolo 11

LATEX i caratteri da stampa

111 IntroduzioneI caratteri da stampa o meglio i segni che i caratteri imprimono sulla cartaci sono familiari percheacute abbiamo una grande abitudine a leggere testi scrittia stampa tuttavia siamo assolutamente ignoranti per quanto riguarda la lorostoria lrsquoevoluzione gli usi i periodi storici e quantrsquoaltro riguardi questi piccolioggetti e i corrispondenti piccoli segni

Tuttavia si sono giagrave dette alcune cose in merito ai caratteri che qui brevementesi richiamano

112 Terminologia relativa ai caratterifont egrave praticamente sinonimo di lsquocaratterersquo con lrsquounica avvertenza che in italiano

si usa la parola lsquocaratterersquo specialmente al plurale per designare una interapolizza di segni accomunati da una omogeneitagrave stilistica ma si usa anchespecialmente al singolare per designare il singolo segno Font egrave equivalenteal primo significato quello di lsquopolizzarsquo mentre il singolo segno in ingleseviene designato glyph anche in italiano si potrebbe dire glifo ma egrave assairaro vedere usata questa parola1

polizza indicava lrsquointera cassa di caratteri accomunati dalle stesse caratteristichegrafiche e tipografiche incluso il numero esatto dei caratteri metallicipresenti in ogni scomparto della cassa Oggi che i caratteri metallici siusano assai poco e solo per lavori molto particolari non ha piugrave significatousare la parola lsquopolizzarsquo per designarne anche la consistenza in quantoquesta egrave illimitata con i caratteri elettronici ma la parola viene usatasolo per indicare una collezione di segni quasi sempre viene sostituitadallrsquoequivalente parola inglese font al punto che questa parola si puograveconsiderare definitivamente entrata nellrsquouso della lingua italiana

1Curiosamente quando si usano parole inglesi di per seacute di genere neutro in italiano dove ilneutro non esiste i diversi parlanti usano il genere grammaticale che piugrave li ispira senza uncriterio particolare La parola font egrave una di quelle che non sembra ancora essersi stabilizzatasu un determinato genere grammaticale Qui si usa il maschile (che in italiano spesso egrave usatoanche come neutro come genere grammaticale indifferente) spesso si sente dire le font perogravela font egrave una espressione rarissima

199

200 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

Figura 111 Il carattere metallico della lsquomrsquo il disegno ovviamente egrave come allospecchio e la sinistra e la destra sono scambiate

(mtgMTG) corpointerlinea

(byqBYQ)avanzamento di riga

CBeccari

ndashpi

ctur

e

Figura 112 Relazioni fra il corpo lrsquointerlinea e lrsquoavanzamento di riga nel casodi caratteri elettronici

corpo egrave la dimensione reale per i caratteri metallici e quella virtuale per icaratteri elettronici dellrsquoaltezza del rettangolo costituito dalla faccia inrilievo del parallelepipedo che costituiva il carattere mobile metallico Nellafigura 111 egrave riportato uno di questi blocchetti e vi si puograve riconoscere ildisegno in rilievo e rovesciato di una lsquomrsquo

interlinea era una striscia di metallo di un dato spessore da inserire fra due righedi testo composte con caratteri metallici per estensione spazio verticaleda aggiungere allrsquoaltezza di una riga composta con caratteri elettronici

sterlineatura egrave il processo opposto a quello dellrsquointerlineatura interlineando siallontanano le righe fra di loro sterlineando le si accosta Egrave evidente chequesta operazione non poteva essere fatta con i caratteri metallici percheacutenon li si poteva compenetrare gli uni negli altri al massimo potevano venirelimati o costruiti apposta ma era una pratica costosissima e la si evitavaCon i caratteri metallici si diceva che le linee erano sterlineate quando nonveniva inserita fra di loro nessuna interlinea componendo in corpo 1010per esempio si soleva dire che il testo era sterlineatoCon i caratteri elettronici al contrario le righe possono venire accostatefino anche a sovrapporsi puograve essere una tecnica interessante per ottenereeffetti speciali in stampati pubblicitari Nei testi di cui ci stiamo occupandoinvece la sterlineatura viene usata specialmente quando si compone con lesole lettere maiuscole le quali sono praticamente prive di discendenti acausa di ciograve la composizione in maiuscolo con lrsquointerlinea abituale apparetroppo distanziata Nella figura 113 crsquoegrave un esempio di sterlineatura nellaparte superiore il testo egrave composto in corpo 2530 mentre nella parte

112 TERMINOLOGIA RELATIVA AI CARATTERI 201

LA RIVOLUZIONE FRANCESELA PRESA DELLA BASTIGLIALA RIVOLUZIONE FRANCESELA PRESA DELLA BASTIGLIA

Figura 113 Composizione normale e sterlineata

inferiore egrave sterlineato composto in corpo 25225 vi egrave cioegrave una interlineanegativaVa da seacute che la scelta dellrsquointerlinea o dellrsquoammontare della sterlineaturava fatto con molto buon senso e con molto buon gusto da parte del graficoeditoriale dipende molto dal tipo di carattere dalla sua serie e dalla suaforma In generale la composizione in sole lettere maiuscole oppure inmaiuscoletto e maiuscole consente delle operazioni che non sono lecite opraticabili con gli alfabeti maiuscoliminuscoli a causa della forma dellelettere e in particolare per lrsquoassenza dei discendenti

avanzamento di riga egrave la distanza fra le righe di base di due righe di testocomposte con caratteri dello stesso corpo Si puograve pensare a questa grandezzacome alla somma del corpo e dellrsquointerlinea numericamente si tratta dellostesso valore ma questa somma parte dalla base del rettangolo della facciaporta carattere mentre lrsquoavanzamento di riga parte dalla linea di base eraggiunge la linea di base della riga precedente si veda la figura 112In Italia lrsquoavanzamento di riga viene chiamato riga e i tipometri spesso sonograduati in righe e servono per misurare sia sullo stampato sia sulla gabbiadella composizione in caratteri metallici proprio lrsquoavanzamento di rigaspesso hanno diverse scale con righe di 12 punti di 10 punti eccetera Insostanza lrsquoespressione riga di 12 punti in Italia viene usata con il significatodi pica nei paesi anglosassoni o di cicero nellrsquoEuropa continentale Qui sieviteragrave accuratamente di usare la parola lsquorigarsquo in questo significato percheacuteegrave un termine troppo ambiguo

x-height egrave lrsquoaltezza delle lettere minuscole senza ascendenti neacute discendenti cioegravelsquoa c e m n o r s u v w x zrsquo questa altezza definisce anche lrsquounitagrave di misuralsquoexrsquo che permette di prendere le misure in termini di altezza dei font chesono in uso Il termine italiano per x-height egrave occhio

quadro o quadrato era un blocco quadrato usato come spaziatore nel comporrecon i caratteri metallici le due facce del quadrato erano lunghe quanto ilcorpo del font in uso se non altro percheacute lrsquoaltezza del quadrato dovevaessere uguale al corpo Con i font elettronici si conviene che la dimensionedi ciascun lato del quadrato sia pari alla larghezza della lsquoMrsquo per cui siusa parlare della distanza di una M em in inglese Se si leggono i datiforniti in calce alle tabelle 112ndash1111 si vede che 1 em spesso non coincideaffatto con il corpo anzi ne egrave sensibilmente diverso Nonostante ciograve questa

202 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

Pater Noer qui es in caelissanificeacutetur Nomen Tuumadveacuteniat Regnum Tuumfiat voluacutentas Tuasicut in caelo et in terraPanem norumcotidianum da nobis hoacutedieet dimiacutette nobis deacutebita norasicut et nosdimiacutettimus debitoacuteribus noriset ne nos induacutecas in tentatioacutenemsed liacutebera nos a maloAmen

Pater Noer qui es in caelissanificeacutetur Nomen Tuumadveacuteniat Regnum Tuumfiat voluacutentas Tuasicut in caelo et in terraPanem norumcotidianum da nobis hoacutedieet dimiacutette nobis deacutebita norasicut et nosdimiacutettimus debitoacuteribus noriset ne nos induacutecas in tentatioacutenemsed liacutebera nos a maloAmen

Figura 114 Legature antiche il testo a sinistra mostro solo le legature dei nessilsquoctrsquo e lsquostrsquo quello di destra mostra la compresenza della s lunga e dalla s corta edelle legature antiche

spaziatura di un quadrato continua a fare riferimento allrsquounitagrave em Initaliano il blocchetto si chiamava quadrato e un blocchetto rettangolarelargo il doppio di un quadrato si chiamava lsquoquadratonersquo i comandi perrealizzare queste spaziature si sono giagrave incontrati negli esempi matematiciuna spaziatura di un quadrato si ottiene con il comando quad e di unquadratone con il comando qquad

legatura egrave lrsquooperazione per la quale per ottenere il giusto effetto estetico certelettere distinte devono essere accostate in modo cosigrave forte che vengono aformare un unico segno si pensi a lsquofirsquo lsquoffrsquo lsquoffirsquo lsquoflrsquo lsquofflrsquo presenti in ognifont latino ma queste non sono le sole legature scrivere -- produce ndashe scrivere --- produce mdash si tratta sempre di legature anche la letteratedesca szlig egrave il risultato della legatura di una lsquos lungarsquo e di una lsquos cortarsquo indefinitiva di due lettere lsquosrsquo di forma diversa In Italia non si usa piugrave questosegno da alcuni secoli ma i prototipografi italiani nel Quattrocento e nelCinquecento la usavano abbondantemente lrsquouso egrave cessato con la sparizionedella lsquos lungarsquo nel diciottesimo secolo questo segno assomigliava ad unalettera lsquofrsquo solo che la barretta non attraversava il fusto se si esamina ilsegno (corsivo) della szlig si riconosce che la parte di sinistra egrave proprio unalsquos lungarsquo Questa forma della lettera lsquosrsquo veniva usata sempre come letterainiziale o come lettera mediana mentre la lsquos cortarsquo quella che usiamo oggiera in posizione terminale o come secondo elemento della doppia lsquosrsquo da cuila legatura Spesso nel passato erano legate anche i nessi lsquoctrsquo e lsquostrsquo Nellafigura 114 sono riportati due brevi testi che mostrano lrsquouso delle legaturaantiche e della s lunga2

2Si egrave scelto il testo latino anche per poter mostrare la legatura del nesso lsquoctrsquo Il testousa gli accenti secondo la consuetudine del latino ecclesiastico Inoltre rispetto alla versionedella Vulgata lrsquoaggettivo cotidianus sostituisce lrsquooriginale transubstantialis secondo la lezionemoderna

112 TERMINOLOGIA RELATIVA AI CARATTERI 203

grazie sono quei piccoli tratti alla fine delle aste spesse o sottili che permettonoin particolare di allineare esattamente i singoli caratteri sulla linea dibase riempiono leggermente lo spazio fra un carattere e lrsquoaltro e dannolrsquoidea di una linea piugrave compatta cosigrave che lrsquoocchio la segue meglio e ritrovapiugrave facilmente lrsquoinizio della riga seguente quando lrsquoocchio deve andare acapo I caratteri con grazie sono piugrave adatti alla lettura continua mentrei caratteri senza grazie affaticano il lettore se egli dovesse leggere concontinuitagrave molte pagine di seguito Per altro i caratteri senza grazie a paricorpo apparentemente sono piugrave facilmente leggibili a distanza tanto che icartelli stradali sono composti esclusivamente con caratteri senza grazieNon egrave sempre facile classificare i caratteri senza grazie per esempio il fontOptima disegnato da Hermann Zapf pur non avendo grazie almeno nelsenso tradizionale della parola non puograve essere definito sans serif in virtugravedella sua particolare conformazione ad aste svasate che lo avvicina ai fontdotati di grazie

sans serif egrave lrsquoespressione inglese per designare i font senza grazie in italiano sichiamano preferibilmente caratteri lsquolinearirsquo o lsquobastonersquo o lsquobastoncinorsquo

maiuscoletto egrave una raccolta di segni dove lrsquoalfabeto egrave composto dalle letteremaiuscole e da una serie di lsquominuscolersquo costituite da segni con lo stessodisegno delle maiuscole ma di altezza e larghezza minori non si tratta dimaiuscole rimpicciolite ma di lettere disegnate con le stesse caratteristichegrafiche per esempio hanno lo stesso spessore delle aste corrispondentiuna lsquoArsquo rimpicciolita alle dimensioni di una lsquoarsquo appare cosigrave lsquoArsquo affiancateappaiono cosigrave aA si puograve percepire che la lsquoArsquo rimpicciolita egrave leggermentepiugrave chiara della a maiuscoletta

proporzionale egrave il tipo di carattere che destina uno spazio diverso a ciascunalettera come ognuno puograve constatare la larghezza della lsquomrsquo minuscola egravedecisamente piugrave grande della lsquoirsquo minuscola non confrontiamo nemmeno ladifferenza fra maiuscole e minuscole percheacute egrave troppo evidente La maggiorparte per non dire la totalitagrave dei caratteri usati in tipografia sono caratteriproporzionali Tuttavia esiste ed egrave utilissimo specialmente nei testi dovesi parla di informatica poter disporre di un font a spaziatura fissa comequello usato in questo testo per descrivere i comandi usati per il mark-updi LATEX si osservino i due alfabeti maiuscolo e minuscolo sovrapposti

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

per rendersi conto di che cosa sia un carattere non proporzionale confron-tandolo con i due corrispondenti alfabeti di un font proporzionale

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

famiglia rappresenta una collezione di font di diversi disegni ma con una caratteri-stica comune le famiglie piugrave importanti per LATEX sono quella dei caratteria spaziatura fissa chiamati typewriter type che costituiscono la famigliaidentificata dallrsquoistruzione ttfamily o dal comando texttt la famiglia

204 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

dei font proporzionali senza grazie sans serif identificata dallrsquoistruzio-ne sffamily o dal comando textsf la famiglia dei font proporzionalicon grazie roman identificata dallrsquoistruzione rmfamily o dal comandotextrm

serie egrave la caratteristica di ogni famiglia di font di apparire piugrave o meno scurala tipografia tradizionale prevede diversi livelli di nero che vanno dalchiarissimo al nerissimo per LATEX si distinguono tre livelli di nero ilmedio il nero e il nero esteso di norma il nero lsquosemplicersquo egrave assai raronelle famiglie di caratteri usate di default da LATEX perciograve le istruzioniper scegliere queste caratteristiche di default sono solamente mdseriese bfseries oppure i comandi textmd e textbf non tutte le famigliedispongono di serie piugrave scure di quella che egrave considerata media

forma rappresenta il tipo di disegno di una serie di caratteri della stessa famigliae della stessa serie per LATEX le forme disponibili normalmente sono laforma diritta upright la forma corsiva italics e quella maiuscoletta smallcaps le istruzioni per scegliere queste forme sono upshape itshapee scshape mentre i comandi sono textup textit e textsc Sonodisponibili anche la forma tondo inclinato slanted e il corsivo dirittoupright italics queste in Italia sono meno usate tuttavia LATEX mettea disposizione lrsquoistruzione slshape e il comando textsl per il tondoinclinato Invece per il corsivo diritto non sono disponibili neacute lrsquoistruzione neacuteil comando sebbene non sia difficile servirsi di questa forma con comandidi livello piugrave bassoSi confronti il tondo inclinato con il corsivo abcd e abcd si nota che sitratta di due disegni (diversamente) inclinati ma sono completamentediversi questo egrave il motivo per il quale il tondo inclinato egrave poco usato Ilcorsivo diritto appare cosigrave abcd

codifica egrave la speciale modalitagrave informatica con la quale un particolare segno diun dato font viene identificato nel file che contiene tutti i segni di quelparticolare font LATEX conosce di default diverse codifiche le piugrave usualiper chi scrive in italiano sono la codifica OT1 e la codifica T1 la primaidentifica i file che contengono 128 caratteri lsquolatinirsquo la seconda identificai file che contengono 256 caratteri lsquolatinirsquo i font lsquolatinirsquo contengono oltrealle cifre ai segni di interpunzione e ad un certo numero di segni specialigli alfabeti minuscolo e maiuscolo delle 26 lettere lsquolatinersquo

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

I numerosi segni accentati che compaiono nelle varie lingue che usano icaratteri latini sono ottenuti sovrapponendo lrsquoaccento alla lettera con lacodifica OT1 mentre sono ottenuti con i disegni delle lettere giagrave accentatecon la codifica T1Per capire meglio il concetto di codifica si esaminino le tabelle 112ndash1111che contengono i caratteri latini con codifica OT1 i caratteri latini concodifica T1 i caratteri non letterali del Text Companion Font con codificaTS1 i caratteri cirillici con codifica OT2 i caratteri greci con codificaLGR

112 TERMINOLOGIA RELATIVA AI CARATTERI 205

In ogni casella di quelle tabelle crsquoegrave il segno che corrisponde alla posizioneindicata dal numero decimale che compare nella stessa casella i numeripreceduti da un solo apice o dal doppio apice nelle righe e nelle colonneesterne rappresentano parti degli indirizzi in notazione ottale o in notazioneesadecimale per esempio nella tabella 114 la lettera lsquoIacutersquo ha un indirizzodecimale 205 questa casella si trova allrsquoincrocio della riga con indirizzoottale rsquo300 e della colonna con indirizzo ottale rsquo15 da cui si ricava lrsquoindirizzoottale complessivo eseguendo la somma dei due valori ottali rsquo300 + rsquo15= rsquo315 Nella stessa maniera si ricava lrsquoindirizzo complessivo esadecimaleNei file interni di LATEX sono quasi sempre usati gli indirizzi ottali o quelliesadecimali quindi egrave conveniente disporre di tabelle che contengano tuttie tre i tipi di indirizziSe si confrontano le tabelle 112 e 114 che si riferiscono entrambe aicaratteri latini oltre alle ovvie differenze relative alle lettere accentate cisono alcuni segni uguali che si trovano ad indirizzi diversi per esempio ilsegno lsquoffirsquo si trova allrsquoindirizzo 14 con la codifica OT1 ma allrsquoindirizzo 30con la codifica T1Egrave assai raro dover cambiare codifica per comporre un testo per questoLATEX non dispone di una istruzione o di un comando di uso corrente pereseguire questo cambio di codifica ma questo tipo di azione viene svoltodietro le quinte dalle istruzioni contenute nei file di servizio che provvedonodirettamente a cambiare lrsquoalfabeto e la codifica a seconda della lingua chesi usa Lrsquounico momento in cui il compositore decide di usare una delle duecodifiche per i caratteri latini egrave allrsquoinizio del file nel preambolo quandoordina di usare il font encoding T1 la codifica T1 mediante la specifica

usepackage[T1]fontenc

Se si desiderasse cambiare codifica in una posizione qualunque del te-sto bisognerebbe usare comandi di basso livello come fontencoding eselectfont scrivendo per esempio

fontencodingT1selectfont

possibilmente allrsquointerno di un gruppo per limitarne gli effetti al solo testocontenuto nel gruppo

tipo Importantissimo per i font da usare con la tipografia assistita da calcolatorela tipografia elettronica egrave il tipo dei caratteri Questi possono essere di tipoa matrice di punti o bitmappad o raster oppure vettoriali La differenza egraveessenzialeI caratteri a matrice di punti sono una versione digitalizzata o discretizzatadel disegno del singolo segno ogni segno egrave formato da una schiera di puntinilsquonerirsquo sufficientemente accostati in modo da rendere lrsquoidea abbastanza pre-cisa del disegno del segno specifico I puntini vanno benissimo se la densitagravedei puntini corrisponde esattamente alla densitagrave dei puntini della macchi-na da stampa o dello schermo con cui il carattere deve venire stampatoo visualizzato Non sono suscettibili di ingrandimenti o rimpicciolimentisignificativi altrimenti il segno si sgrana e si notano i vari lsquoquadratinirsquo checompongono il disegno Vanno quindi usati solo per la stampa

206 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

Genealogical symbols from wasy and gen fonts

MaleFemaleBornMarriedDivorcedDiedLeaf

1

Table 228 milstd Logic Gates

ANDd BUFu NANDl ORd

ANDl BusWidth NANDr ORl

ANDr INVd NANDu ORr

ANDu INVl NORd ORu

BUFd INVr NORl

BUFl INVu NORr

BUFr NANDd NORu

The milstd package which provides the digital logic-gate symbols specified by theUS Department of Defensersquos MIL-STD-806 standard was written as a LATEX 209tex file not as a LATEX2ε package Consequently it must be loaded into adocument with input milstd not with the more modern usepackagemilstd

Table 229 marvosym Communication Symbols

k Email t fax v Faxmachine E Lightning A Pickup

z Emailct u FAX B Letter H Mobilefone T Telefon

Table 230 marvosym Engineering Symbols

Beam l Force lsquo Octosteel RoundedTTsteel

Bearing rsquo Hexasteel ˜ Rectpipe mdash Squarepipe

rsaquo Circpipe amp Lefttorque rdquo Rectsteel ldquo Squaresteel

bull Circsteel L Lineload Righttorque œ Tsteel

Fixedbearing $ Loosebearing Ÿ RoundedLsteellowast š TTsteel

ndash Flatsteel trade Lsteel RoundedTsteellowast

lowast RoundedLsteel and RoundedTsteel seem to be swapped at least in the20000501 version of marvosym

Table 231 wasysym Biological Symbols

female male

73

(a) (b)CBeccari

ndashpi

ctur

e

Figura 115 Il simbolo di maschio fortemente ingrandito (a) font a matrice dipunti (b) font vettoriale

I font vettoriali invece sono descritti dalle equazioni del loro contorno ladiscretizzazione per la stampa o per lo schermo viene eseguita al volo daprogramma che trasforma lrsquoinformazione codificata nel disegno del segnoin un insieme di puntini neri visibili sulla carta o sullo schermo Lrsquoingran-dimento e il rimpicciolimento del disegno vengono ottenuti cambiandosemplicemente scala alle coordinate dei punti che individuano i contorniIn particolare i nodi su cui sono lsquoappoggiatirsquo i vari archi che formano icontorni si possono assimilare alle punte dei vettori che uniscono lrsquoorigineai nodi stessi di qui la denominazione di disegni vettorialiLa differenza sembra quindi nel fatto che i segni a matrici di punti sonomemorizzati come matrice di puntini neri mentre i segni vettoriali sonotrasformati in matrice di puntini neri solo al momento dellrsquousoNon egrave cosigrave almeno non lo egrave quando il supporto di lsquostamparsquo egrave lo schermo inrealtagrave non egrave cosigrave nemmeno quando il supporto egrave la carta ma la differenzaegrave molto maggiore quando si considera lo schermoChi legge un testo direttamente da uno schermo tende ad adattare lrsquoin-grandimento della pagina sia alle dimensioni dello schermo fisico sia al tipodi dettaglio che desidera osservare Si consideri allora la figura 115Si vede chiaramente specialmente lungo il contorno la presenza dei qua-dratini neri nel disegno (a) che egrave a matrice di punti ma non si vede nessunagranulositagrave nel contorno del disegno (b) che egrave vettorialeIn pratica con il sistema TEX i font originariamente prodotti con il pro-gramma METAFONT quando la grafica degli schermi non era grancheacute sonoa matrici di punti il programma METAFONT egrave perograve sofisticatissimo ed egravein grado di generare delle matrici di punti anche con una densitagrave adeguataad una macchina di fotocomposizione professionale con densitagrave di puntidi piugrave di 4000 punti al pollice inoltre METAFONT puograve tenere conto anchedi densitagrave diverse in orizzontale rispetto alla direzione verticaleCon lrsquoavvento dei primi font vettoriali da parte della Adobe cioegrave dei fontPostScript Type 1 la tecnologia si egrave sviluppata moltissimo3 con unainiziativa delle Apple e Microsoft associate assieme vennero sviluppati poi

3Incidentalmente sono classificati font di tipo Type 3 i font ottenuti per accostamento ditante parti distinte con possibili sovrapposizioni di alcune parti i font bitmapped quandovengono inclusi in un documento PDF vengono classificati come Type 3 Si ricordi che perqualunque operazione di stampa piugrave o meno commerciale un documento che faccia uso di fontType 3 viene generalmente respinto

113 I COMANDI PER LA SCELTA DEI FONT 207

Istruzione Esempio

tiny ABCDEFG abcdefg

scriptsize ABCDEFG abcdefg

footnotesize ABCDEFG abcdefg

small ABCDEFG abcdefg

normalsize ABCDEFG abcdefg

large ABCDEFG abcdefgLarge ABCDEFG abcdefgLARGE ABCDEFG abcdefghuge ABCDEFG abcdefgHuge ABCDEFG abcdefg

Tabella 111 Istruzioni per la scelta del corpo dei caratteri

i font vettoriali TrueType recentemente sono stati sviluppati anche i fontOpenType sempre vettoriali ma molto piugrave completi dei Type 1 e dei True-Type Con i programmi del sistema TEX i font OpenType possono essereusati direttamente solo da X ETEX e X ELATEX oltre che da ConTeXt mk ivche comprende anche LuaTeX Nel seguito si daragrave molta importanza aifont vettoriali e si descriveranno molte azioni per poter rendere disponibiliallrsquouso anche i font Type 1 e TrueType commerciali o anche quelli nonancora completamente integrati nella distribuzione del sistema TEX

113 I comandi per la scelta dei fontPer scegliere i font il compositore dispone di una serie di istruzioni e di comandiche sono giagrave stati quasi tutti esposti nel paragrafo precedente Vale perograve lapena di riepilogare anche per distinguere sistematicamente i vari comandi e lecorrispondenti dichiarazioni a seconda del contesto in cui si usano

1131 La scelta del corpo e dellrsquoavanzamento di rigaLATEX dispone di una serie di comandi che si riferiscono al corpo dei caratteriin modo simbolico invece che numerico essi sono raccolti nella tabella 111 eindicano tutti quanti (in inglese) la relazione che il corpo prescelto ha rispetto alcorpo normale

Il corpo che funziona da corpo normale egrave quello di default cioegrave di 10 pt oppurequello che si specifica fra le opzioni del comando di apertura documentclassper altro fra queste opzioni in generale ci sono solo 11pt e 12pt Alcune classinon standard offrono anche font normali di corpo piugrave piccolo o piugrave grande

208 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

110 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 Γ0

∆1

Θ2

Λ3

Ξ4

Π5

Σ6

Υ7

Φ8

Ψ9

Ω10

ff11

fi12

fl13

ffi14

ffl1500

rsquo020 ı16

17

`18

acute19

ˇ20

˘21

macr22

˚23

cedil24

szlig25

aelig26

œ27

oslash28

AElig29

Œ30

Oslash3110

rsquo040 32

33

rdquo34

35

$36

37

amp38

rsquo39

(40

)41

42

+43

44

-45

46

4720

rsquo060 048

149

250

351

452

553

654

755

856

957

58

59

iexcl60

=61

iquest62

6330

rsquo100 64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

rsquo120 P80

Q81

R82

S83

T84

U85

V86

W87

X88

Y89

Z90

[91

ldquo92

]93

ˆ94

˙9550

rsquo140 lsquo96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

ndash123

mdash124

˝125

˜126

uml127

70

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430554 ptspazio interparola 333332 pt larghezza del quadrato 1019999 ptallungamento interparola 166665 pt spazio extra 111111 ptaccorciamento interparola 111111 pt corpo nominale 1000000 pt

Figura 113 Il font latino a 128 caratteri con codifica OT1

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 Nj0Lj

1

2

3

4

5

6

9

10

11

1213

13

14

1500

rsquo020 16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

3110

rsquo040 uml32

33

rdquo34

35

$36

37

acute38

rsquo39

(40

)41

42

+43

44

-45

46

4720

rsquo060 048

149

250

351

452

553

654

755

856

957

58

59

laquo60

ı61

raquo62

6330

rsquo100 ˘64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

rsquo120 P80

Q81

R82

S83

T84

U85

V86W

87X

88Y

89Z

90[

91ldquo

92]

93^

94_

9550

rsquo140 lsquo96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

ndash123

mdash124

125

~126

127

70

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430554 ptspazio interparola 377774 pt larghezza del quadrato 1155450 ptallungamento interparola 174996 pt spazio extra 116665 ptaccorciamento interparola 116665 pt corpo nominale 1000000 pt

Figura 114 Il font cirillico a 128 caratteri con codifica OT2

Tabella 112 Il font latino a 128 caratteri con codifica OT1

110 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 Γ0

∆1

Θ2

Λ3

Ξ4

Π5

Σ6

Υ7

Φ8

Ψ9

Ω10

ff11

fi12

fl13

ffi14

ffl1500

rsquo020 ı16

17

`18

acute19

ˇ20

˘21

macr22

˚23

cedil24

szlig25

aelig26

œ27

oslash28

AElig29

Œ30

Oslash3110

rsquo040 32

33

rdquo34

35

$36

37

amp38

rsquo39

(40

)41

42

+43

44

-45

46

4720

rsquo060 048

149

250

351

452

553

654

755

856

957

58

59

iexcl60

=61

iquest62

6330

rsquo100 64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

rsquo120 P80

Q81

R82

S83

T84

U85

V86

W87

X88

Y89

Z90

[91

ldquo92

]93

ˆ94

˙9550

rsquo140 lsquo96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

ndash123

mdash124

˝125

˜126

uml127

70

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430554 ptspazio interparola 333332 pt larghezza del quadrato 1019999 ptallungamento interparola 166665 pt spazio extra 111111 ptaccorciamento interparola 111111 pt corpo nominale 1000000 pt

Figura 113 Il font latino a 128 caratteri con codifica OT1

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 Nj0Lj

1

2

3

4

5

6

9

10

11

1213

13

14

1500

rsquo020 16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

3110

rsquo040 uml32

33

rdquo34

35

$36

37

acute38

rsquo39

(40

)41

42

+43

44

-45

46

4720

rsquo060 048

149

250

351

452

553

654

755

856

957

58

59

laquo60

ı61

raquo62

6330

rsquo100 ˘64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

rsquo120 P80

Q81

R82

S83

T84

U85

V86W

87X

88Y

89Z

90[

91ldquo

92]

93^

94_

9550

rsquo140 lsquo96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

ndash123

mdash124

125

~126

127

70

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430554 ptspazio interparola 377774 pt larghezza del quadrato 1155450 ptallungamento interparola 174996 pt spazio extra 116665 ptaccorciamento interparola 116665 pt corpo nominale 1000000 pt

Figura 114 Il font cirillico a 128 caratteri con codifica OT2Tabella 113 Il font cirillico a 128 caratteri con codifica OT2

113 I COMANDI PER LA SCELTA DEI FONT 209

112 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17

000 0

1

2

3

4

5

6

7

8

9

10

11

12

1313

14

1500

020 16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

3110

040 32

33

34

35

$36

37

amp38

39

(40

)41

42

+43

44

-45

46

4720

060 048

149

250

351

452

553

654

755

856

957

58

59

lt60

=61

gt62

6330

100 64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

120 P80

Q81

R82

S83

T84

U85

V86

W87

X88

Y89

Z90

[91

92

]93

^94

_9550

140 `96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

123

|124

125

~126

127

70

200 128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

80

220 144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

90

240 160

iexcl161

cent162

pound163

curren164

yen165

brvbar166

sect167

uml168

copy169

ordf170

laquo171

not172

shy173

reg174

macr175

A0

260 deg176

plusmn177

sup2178

sup3179

acute180

micro181

para182

middot183

cedil184

sup1185

ordm186

raquo187

frac14188

frac12189

frac34190

iquest191

B0

300 Agrave192

Aacute193

Acirc194

Atilde195

Auml196

Aring197

AElig198

Ccedil199

Egrave200

Eacute201

Ecirc202

Euml203

Igrave204

Iacute205

Icirc206

Iuml207

C0

320 ETH208

Ntilde209

Ograve210

Oacute211

Ocirc212

Otilde213

Ouml214

times215

Oslash216

Ugrave217

Uacute218

Ucirc219

Uuml220

Yacute221

THORN222

szlig223

D0

340 agrave224

aacute225

acirc226

atilde227

auml228

aring229

aelig230

ccedil231

egrave232

eacute233

ecirc234

euml235

igrave236

iacute237

icirc238

iuml239

E0

360 eth240

ntilde241

ograve242

oacute243

ocirc244

otilde245

ouml246

divide247

oslash248

ugrave249

uacute250

ucirc251

uuml252

yacute253

thorn254

yuml255

F0

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430450 ptspazio interparola 333251 pt larghezza del quadrato 999755 ptallungamento interparola 166625 pt spazio extra 111083 ptaccorciamento interparola 111083 pt corpo nominale 1000000 pt

Figura 115 Il font latino a 256 caratteri con codica T1Tabella 114 Il font latino a 256 caratteri con codifica T1

I corpi piugrave piccoli di quello normale si differenziano di un punto lrsquouno dallrsquoaltroi corpi piugrave grandi sono invece in proporzione geometrica approssimativamente diragione 12 Per il corpo normale di 10 pt i corpi specificati con i comandi dellatabella 111 si susseguono cosigrave 5 pt 7 pt 8 pt 9 pt 10 pt 12 pt 144 pt 1728 pt2074 pt 2488 pt Fuori della sequenza in progressione geometrica crsquoegrave anche ilcorpo di 1095 pt usato come corpo normale con lrsquoopzione di 11pt si noti chequesto corpo approssima la media geometrica fra i valori adiacenti 10 pt e 12 pt1095 asymp

radic10times 12

Gli avanzamenti di riga sono prefissati a circa il 20 in piugrave del corpo aseconda delle classi dei documenti Se proprio si desidera allargare o restringerelrsquoavanzamento di riga rispetto al valore di default (a parte scriversi un file di classepersonalizzato) si puograve usare il comando linespread il cui argomento funzionada moltiplicatore dellrsquoavanzamento di default Per limitarne lrsquoefficacia bisognadare questo comando dentro ad un ambiente oppure dentro a un gruppo Sitenga perograve presente che lrsquoeffetto estetico combinato del corpo e dellrsquoavanzamentodi riga insieme allrsquoeffetto che questi valori hanno sulla comoditagrave di lettura sonoestremamente delicati e solo un grafico editoriale sa come modificare i valori didefault di frazioni di punto percentuale se un dilettante si mette a giocare conlinespread sappia che non egrave consigliabile superare mai il 5 in piugrave o in menovalori maggiori producono di solito risultati pessimi

210 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

1132 La scelta delle altre caratteristicheLe altre caratteristiche dei font tranne la codifica che come si egrave detto nonviene cambiata quasi mai o viene cambiata automaticamente quando si cambiaalfabeto possono essere cambiate autonomamente lrsquouna dallrsquoaltra con i comandigiagrave descritti se una certa combinazione di famiglia serie e forma non egrave disponibileLATEX provvede da solo a sostituire il font mancante con un font di default ocon un font che abbia il maggior numero possibile delle caratteristiche richiestenella tabella 115 vengono illustrate quasi tutte le combinazioni Si noteragrave che inalcune caselle il contenuto egrave rosso LATEX ha sostituito il font mancante con unfont che abbia un certo numero di caratteristiche fra quelle richieste

Per confrontare lrsquoeffetto dei comandi per la scelta dei font in modo testo o inmodo matematico si esamini il medaglione nella pagina 521

Vale la pena di mettere in guardia i vecchi utenti di LATEX209 che sonoabituati a usare comandi abbreviati del tipo rm per scegliere il font tondoo it per scegliere il corsivo eccetera Quei vecchi comandi possono esserestati conservati per compatibilitagrave in alcune classi standard ma operano moltodiversamente dai comandi della tabella 115 Essi infatti simulano perfettamenteanche in LATEX2ε il funzionamento che essi avevano in LATEX209 Cioegrave essiimpostano una sola caratteristica ripristinando le altre caratteristiche ai valoridi default essi di fatto eseguono un comando normalfont che imposta tutti ivalori di default (famiglia con grazie forma diritta serie media) e poi specificanosolo la famiglia o solo la forma o solo la serie richiesta Egrave ovvio che quei vecchicomandi non devono venire piugrave usati

Inoltre lrsquoabitudine allrsquouso di quei vecchi comandi puograve indurre a pensare chela dichiarazione rmfamily e il corrispondente comando textrm siano in tuttoe per tutto equivalenti a rm evidentemente questo egrave falso percheacute la primadichiarazione e il corrispondente comando impostano solo la famiglia lasciandoinalterata la forma e la serie preesistenti rm invece reimposta tutti i valoridi default anche la serie e la forma e poi specifica la forma diritta I vecchiutenti di LATEX209 sono quindi pregati di dimenticare completamente i vecchicomandi bencheacute avessero qualche funzionalitagrave comoda come per esempio quelladi poter essere usati anche in matematica

Piuttosto sia i vecchi affezionati a LATEX209 sia i nuovi utenti ricordinoche i nuovi comandi text〈xx〉 possono venire usati anche in matematica esotto certe condizioni (vedi piugrave avanti) persino in posizioni di apici o di pediciper scrivere brevi apposizioni testuali dove perograve gli spazi gli accenti testualieccetera possono venire usati regolarmente come se si trattasse di comporre deltesto normale Piugrave avanti verragrave spiegato in dettaglio percheacute bencheacute sia possibilenon sia affatto opportuno servirsi di questi comandi per i pedici e per gli apicisi veda piugrave avanti nel paragrafo 115

Nella tabella 115 compaiono solo le istruzioni per assegnare una certacaratteristica al font scelto Fra le altre cose si egrave indicata lrsquoistruzione uishapeche in LATEX non esiste la si egrave definita mediante un comando che verragrave descrittomeglio in seguito in modo da ricorrere a istruzioni di livello inferiore

newcommanduishapefontshapeuiselectfont

Le dichiarazioni usate nella composizione della tabella possono essere usateanche durante la composizione del testo tuttavia per comporre singole parole obrevi frasi egrave preferibile ricorrere ai comandi tutti sono della forma text〈xx〉

113 I COMANDI PER LA SCELTA DEI FONT 211

upshape slshape itshape scshape uishape

rmfamily abcABC abcABC abcABC abcABC abcABCmdseries sffamily abcABC abcABC abcABC abcABC abcABC

ttfamily abcABC abcABC abcABC abcABC abcABC

rmfamily abcABC abcABC abcABC abcABC abcABCbfseries sffamily abcABC abcABC abcABC abcABC abcABC

ttfamily abcABC abcABC abcABC abcABC abcABC

Tabella 115 Le varie combinazioni di serie e di forma per le varie famigliestandard dei font Computer Modern usabili con LATEX I caratteri rossi sono statisostituiti con altri caratteri aventi il maggior numero possibile delle caratteristicherichieste Con i font latini aventi la codifica T1 si hanno meno sostituzioni solola famiglia typewriter type continua a non disporre della serie nera La collezionedei font latini Latin Modern oltre la famiglia typewriter type contiene anche lafamiglia variable typewriter type (macchina da scrivere a spaziatura variabile)per entrambe esiste la serie nera ma solo nelle forme dritta e inclinata

dove 〈xx〉 sono le stesse due lettere che compaiono allrsquoinizio delle istruzioniavremo quindi textrm textsl textbf textsf eccetera

La sintassi di tutti questi comandi egrave la seguente

text〈xx〉〈testo〉

Percheacute egrave preferibile usare i comandi rispetto alle istruzioni Percheacute con ilcomando il programma LATEX puograve conoscere dove comincia e dove finisce iltesto da comporre con una particolare caratteristica e quindi sa dove inserirela lsquocorrezione italicarsquo una piccola correzione per allontanare o per avvicinare isegni che precedono o seguono il 〈testo〉 Spesso i caratteri che seguono sono deisegni di interpunzione lsquoaltirsquo come i due punti o il punto e virgola oppure come ilpunto esclamativo o interrogativo talvolta si tratta di parentesi si noti alloralrsquoeffetto di chiudere fra parentesi una parola scritta in corsivo se non egrave presenteo se egrave presente la correzione italica (XYZ) a confronto con (XYZ ) Chiaramenteil secondo caso egrave stato composto con il comando e il primo con lrsquoistruzione nelprimo la parentesi chiusa batte contro la Z nel secondo no4 Si osservi infine cheil caso piugrave frequente di necessitagrave della correzione italica si ha quando si usa ilcarattere corsivo tuttavia il fenomeno si produce anche con il tondo5 fF e fF

Fra i comandi per scegliere la forma dei segni di un font non bisogna scordarelrsquoistruzione em e il comando emph essi servono per evidenziare (in ingleseemphasize) una parola o una breve locuzione allrsquointerno di altro testo Questaistruzione e questo comando hanno la proprietagrave di cambiare inclinazione al font(eventualmente passando dal tondo al corsivo oppure al tondo inclinato) percui in questo testo scritto in tondo la parola emphasize egrave evidenziata in corsivomentre in questo testo composto in corsivo emphasize viene evidenziato in tondoIn entrambi i casi si egrave scritto emphemphasize

4Si noti che in tipografia si usano le parentesi non inclinate anche quando esse racchiudonotesto scritto con caratteri inclinati

5Lrsquoesempio non egrave cervellotico fF egrave il simbolo dellrsquounitagrave di misura lsquofemtofaradrsquo che si incontraspesso in microelettronica

212 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

Egrave drsquoobbligo segnalare un fatto importante le varie forme serie e corpi noncheacutele varie famiglie di font vanno usate con criterio Lrsquoabitudine di evidenziare leparole in corsivo o in neretto oppure ancora in corsivo nero egrave una operazioneda dilettante Esistono delle norme editoriali per lrsquouso di queste varianti deicaratteri e non egrave il caso di abusarne In tipografia non si sottolineano mai paroleo frasi per metterle in evidenza come si faceva con la macchina da scrivereEsistono poi anche delle lsquonormersquo psicosociologiche che sconsigliano di cambiarefont troppo spesso se qualcosa deve essere evidenziato questo non vuol direevidenziare tutto Alcuni studenti usano il pennarello colorato per evidenziarele parti che ritengono importanti finiscono con lrsquoevidenziare quasi tutto e ilrisultato ovvio egrave che nulla emerge dallo sfondo colorato se non appunto le cosemeno importanti

114 Altri font diversi da quelli di defaultTalvolta egrave necessario usare font diversi da quelli di default per ottenere effettidiversi per uniformarsi allo stile di documenti scritti con altri metodi peraumentare la leggibilitagrave per rendere piugrave compatto il testo eccetera

Sono stati predisposti diversi pacchetti per sostituire le famiglie di font usatedi default con altre famiglie generalmente con lo scopo di usare famiglie difont commerciali anche se disponibili gratuitamente Sul mercato infatti sonodisponibili migliaia di famiglie di font Essi costituiscono la croce e delizia deidisegnatori editoriali e richiedono appunto la loro professionalitagrave per usarlial meglio Per i lsquodilettantirsquo puograve essere difficile da un punto di vista estetico efunzionale usare i font commerciali ma la presenza dei pacchetti per lrsquouso diquesti font rende lrsquooperazione tecnicamente molto piugrave facile e lrsquouso di questi fontdiventa alla portata di tutti

Si possono dunque invocare diversi pacchetti che servono per sostituire unaalla volta le tre famiglie principali di font tuttavia la cosa non egrave semplice omeglio egrave semplicissimo con LATEX ma egrave difficile eseguire scelte in cui le famigliesi accordino alla perfezione in particolare per quel che riguarda lrsquoaltezza delleminuscole la famosa x-height

Per questo scopo allora si consiglia ai lettori di fare riferimento a due pacchettiin particolare txfonts e pxfonts

Il lettore confronti i capoversi presenti nella figura 116 si tratta di duetesti composti con font dello stesso corpo (10 pt) e con lo stesso avanzamento diriga (12 pt) ma con collezioni diverse di font Eventualmente usi una lente diingrandimento (anche quella fornita dal programma di visualizzazione del filePDF) per esaminare i dettagli di forma delle lettere inoltre noti il differentelivello di nero dei testi composti con questi font

115 I font per la matematicaI font per la matematica sono un argomento un porsquo particolare percheacute sono unaspecialitagrave del sistema TEX Ci sono anche altri font dotati di segni matematicima di solito sono assai modesti come qualitagrave tipografica a meno che non sianostati adattati completamente al sistema TEX come per esempio i font Times

115 I FONT PER LA MATEMATICA 213

Testo composto con i font Times extended 1

Il pacchetto txfonts consente di usare i font Times per il testo con grazie il fontHelvetica per il testo scritto senza grazie e una variante del Courier per la famigliaa spaziatura fissa I font sono caricati con fattori di scala predefiniti in modo che lealtezze x-height siano il piu possibile simili non esattamente identiche perche la formadei segni richiede delle curve leggermente abbondanti specialmente con lrsquoHelvetica

La lsquoxrsquo presente nel nome di questo pacchetto richiama il fatto che si tratta di unacollezione estesa infatti con lrsquouso di questi font diventano disponibili non solo tutti isimboli di LATEX standard arricchito dai font del pacchetto amsmath ma una ulteriorevarieta che ne aumenta ancora la versatilita Quindi tx sta per lsquoTimes eXtendedrsquo

Testo composto con i font Palatino extended 1

Lrsquoaltro pacchetto pxfonts mette a disposizione il Palatino esteso il Palatinoviene usato al posto del Times ma per le altre famiglie si usano ancora lrsquoHel-vetica e il Courier In questo caso i fattori di scala con cui sono invocati i fontaccessori sono diversi da quelli del Times perche il Palatino a pari corpo apparedecisamente piu grande e piu largo

Figura 116 Esempi di testi composti con i font Times e Palatino

forniti con il pacchetto txfonts o i font Palatino forniti con il pacchetto pxfontsdi questi font si egrave giagrave detto in precedenza

Tuttavia egrave doveroso presentare anche le tabelle dei font matematici affincheacutesia pure sotto forma di una specie di catalogo ci si possa rendere conto di qualisegni sono disponibili e quali sono gli indirizzi di ogni segno allrsquointerno di ognipolizza

Le tabelle 116 e 117 contengono la polizza del corsivo matematico che hacaratteristiche assai diverse dal font corsivo per il testo la polizza contiene ancheun certo numero di simboli e lrsquoalfabeto greco maiuscolo e minuscolo oltre alle cifrearabe minuscole I grandi maestri della tipografia unanimemente raccomandanodi usare le cifre arabe minuscole nel testo e di usare quelle maiuscole nelle tabellee in matematica La polizza dei simboli oltre a numerosi simboli matematici e peraltri scopi contiene anche lrsquoalfabeto calligrafico maiuscolo lrsquoalfabeto calligraficoviene selezionato in matematica con il comando mathcal

Vale la pena di commentare la polizza del segni estensibili 118 percheacute latabella sembra formata in modo diverso dalle altre Non egrave lsquocolparsquo della tabellama dei font tutti i segni hanno una altezza nulla e una profonditagrave corrispon-dente alla effettiva dimensione verticale del segno questo serve alla sezione dicomposizione della matematica per poter collocare correttamente tutti i segni inquella disposizione bidimensionale costituita da una espressione matematica Sinotino anche i mezzi delimitatori e i pezzetti che permettono sovrapponendoliin modo scalato di disegnare qualunque delimitatore con qualsiasi dimensionesia in altezza per quelli che devono espandersi in verticale sia in larghezza perquelli che devono espandersi in orizzontale

La gestione di questi simboli estensibili come si puograve facilmente immaginareegrave piuttosto complessa il bello egrave che lrsquointerprete fa tutto da solo e il compositorenon deve occuparsi di nulla per gestire questi simboli al massimo deve ricordarsi

214 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

1

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 Γ0

∆1

Θ2

Λ3

Ξ4

Π5

Σ6

Υ7

Φ8

Ψ9

Ω10

α11

β12

γ13

δ14

ε1500

rsquo020 ζ16

η17

θ18

ι19

κ20

λ21

micro22

ν23

ξ24

π25

ρ26

σ27

τ28

υ29

φ30

χ3110

rsquo040 ψ32

ω33

ε34

ϑ35

D36

E37

ς38

ϕ39

40

41

42

43

44

45

N46

O4720

rsquo060 48

49

50

51

52

53

54

55

56

57

58

59

lt60

61

gt62

Z6330

rsquo100 part64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

rsquo120 P80

Q81

R82

S83

T84

U85

V86

W87

X88

Y89

Z90

91

]92

^93

_94

`9550

rsquo140 a96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

ı123

124

weierp125

d126

e127

70

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 025000 x-height 430554 ptspazio interparola 000000 pt larghezza del quadrato 1019999 ptallungamento interparola 000000 pt spazio extra 000000 ptaccorciamento interparola 000000 pt corpo nominale 1000000 pt

Tabella 116 Il corsivo matematico con codifica OML questa polizza contieneanche le cifre arabe lsquominuscolersquo 1

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 minus0middot

1times

2lowast

3divide

4$

5plusmn

6∓

7oplus

8

9otimes

10)

11

12copy

13

14bull

1500

rsquo020 -16equiv

17sube

18supe

19le

20ge

213

224

23sim

24asymp

25sub

26sup

279

28

29≺

30lt

3110

rsquo040 larr32rarr

33uarr

34darr

35harr

36

37

38D

39lArr

40rArr

41uArr

42dArr

43hArr

44

45

46prop

4720

rsquo060 prime48infin

49isin

50P

51Q

52R

53S

54T

55forall

56exist

57not

58empty

59X

60Y

61Z

62perp

6330

rsquo100 alefsym64A

65B

66C

67D

68E

69F

70G

71H

72I

73J

74K

75L

76M

77N

78O

7940

rsquo120 P80Q

81R

82S

83T

84U

85V

86W

87X

88Y

89Z

90cup

91cap

92_

93and

94or

9550

rsquo140 b96c

97d

98e

99f

100g

101

102

103〈

104〉

105|

106

107k

108l

109

110m

11160

rsquo160 radic112

o113

nabla114

int115

r116

s117

t118

u119

sect120

dagger121

Dagger122

para123

clubs124

diams125

hearts126

spades127

70

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 025000 x-height 430554 ptspazio interparola 000000 pt larghezza del quadrato 1019999 ptallungamento interparola 000000 pt spazio extra 000000 ptaccorciamento interparola 000000 pt corpo nominale 1000000 pt

Tabella 117 La polizza dei simboli matematici non estensibili con codifica OMSQuesta polizza egrave usata anche come alfabeto matematico percheacute contiene anchele maiuscole calligrafiche

115 I FONT PER LA MATEMATICA 2151

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 (0

)1

[2

]3

lfloor4

rfloor5

lceil6

rceil7

8

9

lang10

rang11

∣12

∥13

14

∖1500

rsquo020 (16

)17

(18

)19

[20

]21

lfloor22

rfloor23

lceil24

rceil25

26

27

lang28

rang29

30

∖3110

rsquo040 (32

)33

[34

]35

lfloor36

rfloor37

lceil38

rceil39

40

41

lang42

rang43

44

∖45

46

∖4720

rsquo060 48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

6330

rsquo100 64

65

66

67

lang68

rang69

⊔70

⊔71

∮72

∮73

⊙74

⊙75

oplus76

oplus77

otimes78

otimes7940

rsquo120 sum80

prod81

int82

⋃83

⋂84

⊎85

and86

or87

sum88

prod89

int90

⋃91

⋂92

⊎93

and94

or9550

rsquo140 ∐96

∐97

98

99 100

˜101

˜102 103

[104

]105

lfloor106

rfloor107

lceil108

rceil109

110

111

60

rsquo160 radic112

radic113

radic114

radic115

radic116

radic117

radic118

119

120

121

︷122

︷123

︸124

︸125

126

127

70

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430554 ptspazio interparola 000000 pt larghezza del quadrato 1019999 ptallungamento interparola 000000 pt spazio extra 000000 ptaccorciamento interparola 000000 pt corpo nominale 1000000 pt

Tabella 118 I segni matematici estensibili con codifica OMX

di indicare con left i delimitatori di apertura e con right i delimitatori dichiusura Usando pdftex (che ricordiamo include anche le estensioni di etex)come interprete esiste anche il comando middle per un delimitatore intermedioche viene esteso in verticale nello stesso modo di quando si usa left o rightmacon una spaziatura a destra e a sinistra coerente con il significato di delimitatoreintermedio

In matematica la scelta dei font egrave molto piugrave complessa Innanzi tutto egravepossibile di default scrivere una formula in caratteri neri solo se

bull prima di entrare in modo matematico si dagrave la dichiarazione boldmathchiuso lrsquoambiente matematico bisogna poi dare il comando unboldmathaltrimenti la dichiarazione di comporre in nero rimane valida lsquoper semprersquoalternativamente la formula da comporre in nero puograve essere racchiusaassieme alla dichiarazione boldmath dentro ad un gruppo per esempio

inizio del gruppoboldmathbeginequationendequation fine del gruppo

216 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

bull si usa il pacchetto amsmath con il pacchetto accessorio amsymb che mettea disposizione il comando boldsymbol per comporre in nero un simbolomatematico isolatamente oppure si carica il pacchetto bm che mettea disposizione un comando simile bm per comporre in nero simboli osottoespressioni matematiche isolate o volendo una intera espressione

I comandi disponibili fanno riferimento agli alfabeti matematici caricati dallaclasse o dai pacchetti richiamati nel preambolo di default sono caricati i fontdella collezione Computer Modern a 128 caratteri predisposti per la matematicatabelle 116-118 questi font obbediscono in generale a codifiche specifiche nonusabili nel testo se non con comandi particolari Per esempio egrave possibile usarenel testo le cifre arabe minuscole 0123456789 attraverso lrsquouso del comandooldstylenums sebbene i loro segni derivino dal font destinato alle letterematematiche

In particolare ogni classe eo ogni pacchetto che carichi i font matematici didefault o alternativi a quelli di default carica quattro famiglie6 distinte

bull la famiglia per gli operatori (tabella 112) essa puograve coincidere con il fonttondo con grazie usato per il testo ma viene usato in modo matematiconon accetta gli accenti testuali e non accetta gli spazi Esso serve percomporre i piugrave comuni simboli matematici come +minus= e pochi altri lecifre arabe maiuscole diritte ma essenzialmente serve per comporre il nomedelle funzioni matematiche come lsquosinrsquo lsquocosrsquo lsquologrsquo lsquolimrsquo eccetera

bull La famiglia per le lettere (tabella 116) essa contiene lrsquoalfabeto latino elrsquoalfabeto greco corsivi usati per le variabili matematiche contiene anchenumerosi altri simboli binari o di relazione e le cifre arabe minuscole Ilcorsivo matematico latino non riconosce le legature percheacute ogni letterarappresenta una variabile e in matematica le variabili moltiplicate fra diloro sono generalmente scritte una dopo lrsquoaltra senza segni interposti Sipuograve scrivere ff = f2 e le due f non devono legarsi nella solita legaturatestuale ff Usare questi font per scrivere Veff per indicare la tensioneefficace produce una composizione orrenda Si egrave giagrave detto come scriverecorrettamente pedici eo apici testuali usati come apposizioni delle variabilimatematiche

bull La famiglia per i simboli (tabella 117) contiene lrsquoalfabeto maiuscolocalligrafico e moltissimi altri segni per gli operatori binari eo di relazione

bull La famiglia dei simboli estensibili (tabella 118) cioegrave i segni di radice e diintegrale e le parentesi di vari tipi che cambiano dimensioni a seconda delcontenuto su cui devono operare

Siccome le famiglie di font matematici in senso stretto che TEX puograve usaresono al massimo sedici non egrave il caso di caricare altre famiglie senza tenere contodi questo limite quando si carica direttamente o indirettamente il pacchettoamsfonts vengono definite altre due famiglie di segni matematici (tabelle 101e 102) Egrave raro raggiungere il limite di 16 famiglie ma a chi scrive egrave capitato

6Il nome famiglia qui egrave usato in modo un porsquo diverso da solito per TEX una famiglia di fontmatematici egrave un gruppo di font con lo stesso disegno ma usabili in tre corpi distinti quellonormale quello per i pedici e gli apici di primo livello e quello per i pedici e gli apici di secondolivello Questo egrave uno dei motivi per i quali la gestione dei font matematici egrave decisamente piugraveelaborata di quella per i font testuali

115 I FONT PER LA MATEMATICA 217

Per inserire variabili composte con altri alfabeti mediante i comandi mathsfo mathtt o mathit o simili LATEX2ε ricorre a delle dichiarazioni che usano ifont testuali in modo matematico (senza accenti e senza spazi) ma senza caricareeffettivamente altre famiglie di font matematici I dettagli sono abbastanza deli-cati per cui si rimanda alla guida fntguidepdf nella cartella doclatexbase che dedica una lunga sezione ai comandi per gestire i font matematiciPer vedere in azione quei comandi si puograve esaminare il file fontmathltx nellacartella texlatexbase dove sono usati tutti gli speciali comandi percaricare i font matematici di default

Il consiglio che si puograve dare in merito alla gestione dei caratteri matematiciegrave quello di cercare di avere sempre i font testuali e quelli matematici che siaccordino fra di loro armoniosamente come minimo devono avere lo stesso occhiodelle lettere minuscole e devono avere la stessa nerezza I pacchetti txfonts epxfonts caricano correttamente sia i font testuali sia quelli per la matematicama per esempio se si volessero usare il font Utopia per il testo basterebbeusare il pacchetto utopia questo pacchetto perograve imposta solo i font testualiconservando i font di default per la matematica Il risultato che si otterrebbe egravepessimo lrsquoocchio dei font Utopia e la loro nerezza contrasta vistosamente conlrsquoocchio e la nerezza dei font Computer Roman per cui lrsquouso di quel pacchettosarebbe accettabile solo per comporre un documento privo completamente dimatematica

Il pacchetto mathdesign specificando lrsquoopportuna opzione permette invecedi caricare font testuali e matematici che si accordano fra di loro armoniosamenteDando il comando

usepackage[utopia]mathdesign

si possono usare infatti i font Utopia anche per testi contenenti della matematicapercheacute i font matematici sono scelti in modo da accordarsi con i font per il testo

Il pacchetto mathdesign accetta come opzioni utopia (Adobe Utopia) char-ter (Bitstream Charter) garamond (URW Garamond) e ne sono previsti alcunialtri Bisogna usare qualche piccola cautela (per esempio non si deve contempo-raneamente caricare il pacchetto amsmath con i suoi font se non altro percheacutemathdesign ha giagrave ridefinito tutti i comandi) e per questo egrave necessario leggere conattenzione il file di documentazione mathdesign-docpdf in doclatexmathdesign Anche il pacchetto fourier consente di usare il font Utopia con icaratteri matematici congruenti il file di documentazione fourier-doc-enpdfegrave in docfontsfourier

Con alcune classi vengono di default usati font testuali e matematici chepossono venire facilmente modificati e sostituiti con altri In particolare talvoltaviene usato il pacchetto euler il file della documentazione eulerpdf si trova indoclatexeuler e va letto attentamente fra lrsquoaltro vi si dice che questotipo di font matematico si accorda abbastanza bene con diversi font vettorialima bisogna fare attenzione sulla sequenza delle chiamate ai vari pacchetti Ilpacchetto accetta anche diverse opzioni che vanno usate con attenzione Tuttaviabencheacute i singoli caratteri siano bellissimi e siano una imitazione (disegnatadal grande Hermann Zapf) dei segni che un matematico con bella calligrafiascriverebbe sulla lavagna essi sono sostanzialmente diritti e non hanno unaforma corsiva o comunque inclinata per questo motivo essi sono da preferireper comporre un documento di tipo prettamente matematico e non risultanoadatti ad un documento scritto da un fisico o un tecnologo Naturalmente egrave una

218 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

questione di gusti ma egrave opportuno ricordare che le norme ISO per la scritturadella matematica per la fisica e la tecnologia sono piuttosto stringenti e hannouna loro precisa ragion drsquoessere

114 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17

000 0

1

2

3

4

5

6

7

8

9

10

11

1213

13 14 1500

02016 17

18 19 20

21

22

23

24

25

26

27

28

29 30

3110

040 32 33 34 35

$36 37 38

39 40 41

42 43

44

-45

46

4720

060 048

149

250

351

452

553

654

755

856

957 58 59

lt60

=61

gt62 63

30

10064 65 66 67 68 69 70 71 72 73 74 75 76

M77 78

O7940

12080 81 82 83 84 85 86

W87 88 89 90

[91 92

]93

^94

_9550

140 `96 97

b98

c99

d100 101 102 103 104 105 106 107

l108

m109

n110 111

60

160112 113 114 115 116 117 118 119 120 121 122 123 124 125

~126

127

70

200 128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

80

220 144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

90

240 160

iexcl161

cent162

pound163

curren164

yen165

brvbar166

sect167

uml168

copy169

ordf170

laquo171

not172

shy173

reg174

macr175

A0

260 deg176

plusmn177

sup2178

sup3179

acute180

micro181

para182

middot183

cedil184

sup1185

ordm186

raquo187

frac14188

frac12189

frac34190

iquest191

B0

300192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207

C0

320208 209 210 211 212 213

Ouml214 215 216 217 218 219 220 221 222 223

D0

340224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239

E0

360240 241 242 243 244 245

ouml246 247 248 249 250 251 252 253 254 255

F0

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430450 ptspazio interparola 333251 pt larghezza del quadrato 999755 ptallungamento interparola 166625 pt spazio extra 111083 ptaccorciamento interparola 111083 pt corpo nominale 1000000 pt

Figura 116 Il Text Companion Font con codica TS1Tabella 119 Il Text Companion Font con codifica TS1

116 Il Text Companion FontLATEX consente di usare un numero enorme di simboli specialmente in mate-matica ma da solo LATEX non offre i simboli che si usano nel testo dai segnidelle unitagrave monetarie ad altri segni che possono trovare posto in scritti di variogenere

Cosigrave quando furono prodotti i primi font latini con la codifica T1 fu sentitaimmediatamente la necessitagrave di un certo numero di segni o comandi non coperticon i simboli di nessun altro font e fu predisposto il Text Companion Font i cuisimboli sono riportati nella tabella 119 ritorna per lrsquoennesima volta il segno delmho M il cui unico pregio egrave quello di poter essere scritto in modo testo con ilcomando textmho Ahimegrave trattandosi di un segno bandito dalle norme ISOquesto segno appare per la terza volta ma inutilmente percheacute non puograve essereusato7

Il Text Companion Font viene caricato e reso utilizzabile invocando il pacchet-to textcomp Per altro se si usa il pacchetto mathdesign egrave superfluo caricare il

7In realtagrave egrave ancora usato negli Stati Uniti dove le norme ISO hanno meno seguito che inEuropa In Europa invece non dovrebbe piugrave esserci nessuno che lo usi

117 GLI ALFABETI DIVERSI DA QUELLO LATINO 219

pacchetto textcomp percheacute tutti i simboli disponibili con i font Utopia Chartere Garamond sono giagrave tutti definiti

117 Gli alfabeti diversi da quello latinoPer scrivere in altre lingue bisogna avere invocato il pacchetto babel avendoindicato fra le opzioni le lingue che si vogliono usare lrsquoultima lingua indicatanellrsquoelenco delle opzioni diventa la lingua di default per lrsquointero documento

Quando si invoca una qualsiasi lingua che si scriva con lrsquoalfabeto cirillico(russo bulgaro ucraino eccetera) il pacchetto babel imposta direttamenteanche lrsquouso dellrsquoalfabeto cirillico Una versione a 128 caratteri egrave riportata nellatabella 113 perograve con alcune di quelle lingue puograve venire scelto un altro encodingmagari a 256 caratteri

1171 Caratteri cirilliciCome giagrave detto i font cirillici sono solitamente preinstallati in ogni distribuzionenon minimale del sistema TEX Le codifiche cirilliche oltre alla giagrave citata OT2a 128 caratteri sono tre diverse versioni a 256 caratteri T2A T2B e T2C einfine la codifica X2

In che cosa differiscono queste codifiche Nel fatto che la codifica a 128caratteri richiede espressamente di essere attivata quando si usa il cirillico esi scrive esclusivamente in russo Le codifiche T2x hanno i primi 128 carattericoincidenti con quelli della codifica T1 quindi sono caratteri latini mentre isecondi 128 caratteri sono quelli cirillici validi per scrivere in russo anche conortografie lsquoprerivoluzionariersquo Ma la variante A serve per scrivere oltre che incaratteri latini anche con il cirillico usato nei paesi dellrsquoEuropa orientale (UcrainaBulgaria Russia) La variante B serve per comporre con i segni cirillici usatinelle repubbliche della Siberia Orientale La variante C serve per scrivere inabcazio

Egrave chiaro che queste tre codifiche permettono di scrivere contemporaneamentenelle lingue dellrsquoEuropa occidentale e in una o lrsquoaltra delle lingue dellrsquoEuropaorientale e dellrsquoex Unione Sovietica Non tutte le collezioni di font perograve conten-gono sia il latino sia il cirillico dellrsquouna o dellrsquoaltra specie eo sono disponibili siain forma vettoriale come sarebbe desiderabile sia in forma a matrice di punti

Per scrivere testi cirillici senza i vincoli delle polizze e delle codifiche appenaviste si puograve usare la codifica X2 la cui matrice di segni egrave mostrata nellatabella 1110 Si noti che la distribuzione normale del sistema TEX almeno finoalla distribuzione di TEX Live 2009 conteneva questi font adatti alla codifica X2solo a matrici di punti non in formato scalabile Se si fosse dovuto avere bisognodi questi font non sarebbe stato un problema trasformarli in formato scalabileusando la procedura esemplificata nel paragrafo 11825 con la distribuzioneTEX Live 2010 non egrave piugrave necessario ricorrere a questa trasformaione

Va notata infine una cosa i font cirillici con codifica OT2 sono disponibilisia a matrici di punti sia in formato scalabile questi font sono adatti a scrivereparole russe semplicemente cambiando codifica e impedendo la sillabazione unatastiera latina egrave perfettamente in grado di immettere il testo russo ricorrendoalle sole lettere latine un porsquo come saragrave descritto nel paragrafo 11822 perscrivere in greco in altre parole la disposizione dei segni cirillici nella tabella 113

220 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 `0

acute1

ˆ2

˜3

uml4

˝5

˚6

ˇ7

˘8

macr9

˙10

cedil11

˛12

sbquo13

lsaquo14

rsaquo15

00

rsquo020 ldquo16

rdquo17

bdquo18

laquo19

raquo20

ndash21

mdash22

23

permil24

ı25

26

ff27

fi28

fl29

ffi30

ffl31

10

rsquo040 32 33 34 35 $ 36 37 amp 38 rsquo 39 ( 40 ) 41 42 + 43 44 - 45 46 47 20

rsquo060 048

149

250

351

452

553

654

755

856

957

58

59

lt60

=61

gt62

63

30

rsquo100 64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O79

40

rsquo120 P 80 Q 81 R 82 S 83 T 84 U 85 V 86 W 87 X 88 Y 89 Z 90 [ 91 92 ] 93 ^ 94 _ 95 50

rsquo140 lsquo96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p 112 q 113 r 114 s 115 t 116 u 117 v 118 w 119 x 120 y 121 z 122 123 | 124 125 ~ 126 shy 127 70

rsquo200 Ă128

Ą129

Ć130

Č131

Ď132

Ě133

Ę134

Ğ135

Ĺ136

Ľ137

Ł138

Ń139

Ň140

Ŋ141

Ő142

Ŕ143

80

rsquo220 Ř144

Ś145

Š146

Ş147

Ť148

Ţ149

Ű150

Ů151

Ÿ152

Ź153

Ž154

Ż155

IJ156

İ157

đ158

sect159

90

rsquo240 ă 160 ą 161 ć 162 č 163 ď 164 ě 165 ę 166 ğ 167 ĺ 168 ľ 169 ł 170 ń 171 ň 172 ŋ 173 ő 174 ŕ 175 A0

rsquo260 ř176

ś177

š178

ş179

ť180

ţ181

ű182

ů183

yuml184

ź185

ž186

ż187

ij188

iexcl189

iquest190

pound191

B0

rsquo300 Agrave192

Aacute193

Acirc194

Atilde195

Auml196

Aring197

AElig198

Ccedil199

Egrave200

Eacute201

Ecirc202

Euml203

Igrave204

Iacute205

Icirc206

Iuml207

C0

rsquo320 ETH 208 Ntilde 209 Ograve 210 Oacute 211 Ocirc 212 Otilde 213 Ouml 214 Π215 Oslash216 Ugrave217 Uacute 218 Ucirc 219 Uuml 220 Yacute 221 THORN222 d 223 D0

rsquo340 agrave224

aacute225

acirc226

atilde227

auml228

aring229

aelig230

ccedil231

egrave232

eacute233

ecirc234

euml235

igrave236

iacute237

icirc238

iuml239

E0

rsquo360 eth 240 ntilde 241 ograve 242 oacute 243 ocirc 244 otilde 245 ouml 246 œ 247 oslash 248 ugrave 249 uacute 250 ucirc 251 uuml 252 yacute 253 thorn 254 szlig 255 F0

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Font parameters

inclinazione 00pt x-height 43045ptspazio interparola 333252pt larghezza del quadrato 999756ptallungamento interparola 166626pt spazio extra 111084ptaccorciamento interparola 111084pt corpo nominale 1000000 pt

August 17 2010 1446 1

Tabella 1110 Il font cirillico esteso con la codifica X2

e un set di legature permette di usare i segni latini e la translitterazione latinadel russo secondo la norma anglosassone cosiccheacute non egrave affatto difficile inserirequalche parola russa allrsquointerno del testo scritto in caratteri latini Per esempiodopo aver definito un comando textcyrillic della forma8

newcommandciryllictexthyphenrulesnohyphenationfontencodingOT2fontfamilycmrselectfontDeclareTextFontCommandtextcyrilliccyrillictext

si puograve scrivere textcyrillicKhrushchev dentro un testo scritto in letterelatine per ottenere Hruwev Con gli altri encoding si possono fare cose analoghein particolare egrave possibile usare la codifica di entrata utf8 e disponendo di uneditor adeguato per lrsquoinput dei caratteri cirillici si puograve scrivere direttamente incirillico con la certezza che quel testo viene composto in caratteri cirillici e iltesto lsquolatinorsquo in caratteri latini Si puograve approfondire lrsquoargomento nel bellrsquoarticolodi Enrico Gregorio che espone tutte le procedure nei minimi dettagli e mostraanche le soluzioni a qualche piccolo problema che si puograve manifestare [20]

Per scrivere in russo bulgaro ucraino eccetera egrave meglio specificare la linguacome opzione a babel cosi si dispone direttamente della sillabazione specificadella lingua delle parole codificate per indicare lrsquoequivalente di lsquoCapitolorsquo lsquoFigu-rarsquo lsquoTabellarsquo eccetera e per disporre dei comandi specifici per introdurre certisegni cirillici nel testo Per la lingua russa sono utilizzabili tutte le codifichedisponibili con il sistema TEX ma quella suggerita egrave costituita dalla codifica

8Nel testo [20] lo stesso comando egrave definito in maniera molto piugrave raffinata nel senso cheprende in considerazione la possibilitagrave che la lingua nohyphenation non sia disponibile qui ilcomando egrave definito supponendo di disporre di una distribuzione sufficientemente moderna delsistema TEX

117 GLI ALFABETI DIVERSI DA QUELLO LATINO 221

T2A sebbene quella di default sembra di capire sia la codifica X2 In ogni casoognuna ha i propri vantaggi la codifica suggerita egrave particolarmente utile pergli utenti russi che operano con tastiere russe nelle quali con un semplice clicksi passa dai caratteri latini a quelli cirillici (e viceversa) Cosiccheacute lrsquoeventualecambio di lingua avviene al livello della tastiera Infatti sopra si egrave spiegato che iprimi 128 caratteri della codifica T2A coincidono con i caratteri latini secondola codifica ASCII (a 7 bit) mentre i secondi 128 caratteri contengono i carattericirillici validi per il russo quindi comporre in modo misto non coinvolge il cambiodel font di uscita Ovviamente i caratteri ASCII non sono raccomandabili altroche per scrivere in inglese forse lrsquounica lingua moderna occidentale priva diaccenti

1172 Caratteri greciQuando si invoca invece la lingua greca senza ulteriori specificazioni vieneanche impostato lrsquoalfabeto greco riportato nella tabella 1111 ma predispostoper la scrittura monotonica moderna cioegrave con gli accenti ridotti al solo accentoacuto nelle parole polisillabiche e dove sono eliminati gli spiriti con questesemplificazioni diventa piugrave frequente lrsquouso della dieresi per indicare gruppi divocali che non formano dittonghi Se si specifica invece lrsquoattributo polutonikoper la lingua greca ecco che diventano disponibili tutti i segni indicati nellatabella 1111 Per usare il greco bisogna leggere attentamente la documentazionebabel relativa a questa lingua per usare correttamente la transcodifica dellatastiera USA (o anche italiana) nei caratteri greci si noti che per la moltitudinedi accenti e altri segni diacritici presenti con molte vocali sono previste numeroselegature cosigrave la sequenza gt~a| produce il segno

116 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

questo segno appare per la terza volta ma inutilmente percheacute non puograve essereusato3

Il Text Companion Font viene caricato e reso utilizzabile caricando il pac-chetto textcomp

116 Gli alfabeti diversi da quello latinoPer scrivere in altre lingue bisogna avere invocato il pacchetto babel avendoindicato fra le opzioni le lingue che si vogliono usare lultima lingua indicatanellelenco delle opzioni diventa la lingua di default per lintero documento

Quando si invoca una qualsiasi lingua che si scriva con lalfabeto cirillicorusso bulgaro ucraino eccetera il pacchetto babel imposta direttamente an-che luso dellalfabeto cirillico Una versione a 128 caratteri egrave riportata nellatabella 114 perograve con alcune di quelle lingue puograve venire scelto un altro encodingmagari a 256 caratteri

Quando si invoca la lingua greca senza ulteriori specicazioni viene ancheimpostato lalfabeto greco riportato nella tabella 117 ma predisposto per lascrittura monotonica moderna cioegrave con gli accenti ridotti al solo accento acutonelle parole polisillabiche e dove sono eliminati gli spiriti con queste sempli-cazioni diventa piugrave frequente luso della dieresi per indicare gruppi di vocali chenon formano dittonghi Se si specica invece lattributo polutoniko per la lin-gua greca ecco che diventano disponibili tutti i segni indicati nella tabella 117Per usare il greco bisogna leggere attentamente la documentazione babel rela-tiva a questa lingua per usare correttamente la transcodica della tastiera USA(o anche italiana) nei caratteri greci si noti che per la moltitudine di accenti ealtri segni diacritici presenti con molte vocali sono previste numerose legaturecosigrave la sequenza gt~a| produce il segno

Per produrre testi greci nemente commentati con le notazioni lologiche delsettore si puograve estendere la funzionalitagrave di LATEX con il pacchetto teubner checonsente di introdurre una grande varietagrave di segni specici di usare una seriedi font greci inclinati particolarmente leggibili sviluppati preso la tipograaTeubner di Lipsia e in onore della quale egrave stato scelto il nome del pacchettoTuttavia va fatto osservare che pacchetti di vario genere possono collidere inparticolare il pacchetto teubner sembra collidere con i pacchetti amsmath ecompagni egrave vero che dicilmente in un lavoro di lologia classica greca cegravebisogno di usare matematica avanzata tuttavia questo problema esiste e inquesti casi lutente che si scontra con problemi derivanti dal conitto di pacchettidovrebbe avere `il senso civico di avvisare i curatori dei pacchetti come avvieneregolarmente con tutto il software libero il cui progresso avviene proprio graziea questa interazione fra programmatori e utenti

117 La gestione dei fontGestire la moltitudine di font sul proprio elaboratore puograve talvolta risultarefaticoso bisogna tenere presente che i font classici di LATEX sono per lo piugravedistribuiti sotto forma di sorgenti scritti con i linguaggio di programmazione

3In realtagrave egrave ancora usato negli Stati Uniti dove le norme ISO hanno poco seguito InEuropa non dovrebbe piugrave esserci nessuno che lo usi

Per ulteriori informazionicirca lrsquouso normale dei font greci si veda piugrave avanti il paragrafo 11822

Per produrre testi greci finemente commentati con le notazioni filologiche delsettore si puograve estendere la funzionalitagrave di LATEX con il pacchetto teubner checonsente di introdurre una grande varietagrave di segni specifici di usare una seriedi font greci inclinati particolarmente leggibili sviluppati preso la tipografiaTeubner di Lipsia e in onore della quale egrave stato scelto il nome del pacchettoTuttavia va fatto osservare che pacchetti di vario genere possono collidere inparticolare il pacchetto teubner inizialmente collideva con i pacchetti amsmathe compagni questo comportamento egrave stato corretto nel febbraio 2008 grazie alleindicazioni di un utente Egrave vero che difficilmente in un lavoro di filologia classicagreca crsquoegrave bisogno di usare matematica avanzata tuttavia questo problema esistee in questi casi lrsquoutente che si scontra con problemi derivanti dal conflitto dipacchetti dovrebbe avere lsquoil senso civicorsquo di avvisare i curatori dei pacchetticome avviene regolarmente con tutto il software libero il cui progresso avvieneproprio grazie a questa interazione fra programmatori e utenti

Recentemente il pacchetto teubner egrave stato arricchito di altre funzionalitagraveche permettono di comporre i testi filologici in modo tipograficamente miglioreIn particolare diversi segni che era stato necessario creare con soluzioni nonmolto azzeccate sono stati corretti sfruttando le proprietagrave grafiche del motoredi composizione pdflatex allo stesso tempo le crenature dei segni accentati checon le macro precedenti richiedevano non poca ingegnositagrave per essere applicatecorrettamente ora possono essere affrontate con macro che sfruttano meglioi comandi interni di LATEX Speriamo dunque che i filologi si possano trovaremeglio con la nuova versione

222 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

117 LA GESTIONE DEI FONT 117

00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17

000 mdash0

1

2

3

4

5

6

7

8

9

10

11

12

1313

14

1500

020 16

17

18

19

20

21

22

23

euro24

25

ə26

27

28

29

30

macr3110

040 32

33

34

΅35

$36

37

amp38

΄39

(40

)41

42

+43

44

-45

46

4720

060 048

149

250

351

452

553

654

755

856

957

58

59

lt60

=61

gt62

6330

100 64

Α65

Β66

C67

∆68

Ε69

Φ70

Γ71

Η72

Ι73

Θ74

Κ75

L76

Μ77

Ν78

Ο7940

120 Π80

Χ81

Ρ82

Σ83

Τ84

Υ85

V86

Ω87

X88

Ψ89

Ζ90

[91

92

]93

^94

_9550

140 `96

α97

β98

c99

δ100

ε101

φ102

γ103

η104

ι105

θ106

κ107

l108

micro109

ν110

ο111

60

160 π112

χ113

ρ114

σv115

τ116

υ117

v118

ω119

ξ120

ψ121

ζ122

123

ͺ124

125

~126

―127

70

200 128

129

130

131

132

133

134

135

ά136

137

138

139

140

141

142

143

80

220 144

145

146

147

148

149

150

151

152

153

154 155

156

157

158

159

90

240 ή160

iexcl161

cent162

pound163

curren164

yen165

brvbar166

sect167

uml168

copy169

ordf170

laquo171

not172

shy173

reg174

macr175

A0

260 deg176

plusmn177

sup2178

sup3179

acute180

micro181

para182

middot183

ώ184

sup1185

ordm186

raquo187

frac14188

frac12189

frac34190

iquest191

B0

300 Agrave192

Aacute193

Acirc194

Atilde195

Auml196

Aring197

AElig198 199

Egrave200

Eacute201

Ecirc202

Euml203

Igrave204

Iacute205

Icirc206

Iuml207

C0

320 ί208

Ntilde209

Ograve210

Oacute211

ύ212

Otilde213

Ouml214

times215

Oslash216

Ugrave217

Uacute218

Ucirc219

Uuml220

Yacute221

THORN222

szlig223

D0

340 agrave224

aacute225

acirc226

atilde227

auml228

aring229

aelig230

ccedil231

έ232

eacute233

ecirc234

euml235

ό236

iacute237

icirc238

iuml239

E0

360 eth240

ntilde241

ograve242

oacute243

ocirc244

otilde245

ouml246

divide247

oslash248

ugrave249

uacute250

ucirc251

uuml252 253

thorn254

yuml255

F0

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430450 ptspazio interparola 333251 pt larghezza del quadrato 999755 ptallungamento interparola 166625 pt spazio extra 111083 ptaccorciamento interparola 111083 pt corpo nominale 1000000 pt

Figura 117 Il font greco a 256 caratteri con codica LGRTabella 1111 Il font greco a 256 caratteri con codifica LGR

1173 Scrivere con altri alfabeti

Egrave interessante vedere come il sistema TEX disponga di una miriade di caratterianche per lingue insolite e consenta di comporre i lingue che fanno uso di questialfabeti

Nella figura 117 vi egrave rappresentato il Credo cristiano come stabilito nelConcilio di Nicea esso egrave composto in latino in greco e in copto nella varietagravebohairica quella che viene usata nei testi liturgici della chiesa copta Il latinoaccentato egrave la normale versione del latino ecclesiastico per il quale esiste ilpacchetto ecclesiastic Per il greco si egrave giagrave detto Per il copto esiste il pacchettocoptic che perograve consente di comporre quella lingua nella varietagrave sahidica ilpacchetto bohairic esiste ma oggi (2010) non egrave ancora disponibile per la generalitagravedegli utenti Le due versioni differiscono solo per la presenza delle lettere accentateche per la liturgia copta svolgono piugrave o meno la stessa funzione delle lettereaccentate usate per il latino ecclesiastico

Non si ritiene opportuno di riportare il codice sorgente percheacute sarebbe moltocomplicato e di scarsissimo interesse per la maggior parte dei lettori Per altro sipotrebbero portare esempi anche con scritti in arabo o in ebraico si potrebberoportare esempi con brevi testi in cinese o giapponese o coreano in lingue deltutto esotiche come la lingua inuhit degli esquimesi e tanto altro Ogni linguadispone o puograve disporre di font adatti alla sua composizione e questa egrave una delleforze del sistema TEX e dei suoi vari motori di composizione

117 GLI ALFABETI DIVERSI DA QUELLO LATINO 223

Il Credo di Nicea in tre lingueCredo in unum Deum Pa- Πιστέυω εἰς ἕνα Θεόν Πα- Τ$amp o(o(amp )o(τ -

trem omnipoteacutentem Factoacuterem τέρα Παντοκράτορα ποιητήν o(amp -τ π-π$τo0$τ0 fi1-caeligli et terraelig visibiacutelium oacutemnium ουρανοῦ καὶ γῆες ὁρατῶν τε τ$23$4-ograve )5fi 4 6$- 1-et invisibiacutelium πάντων καὶ ἀοράντων τo($( 0o( 4 1τ )7$(

0o( $Et in unum Doacuteminum Ie- Καὶ εἰς ἕνα Κύριον ᾿Ιησοῦν Τ$amp o(8o-7 )o(τ 91-

sum Christum Fiacutelium Dei Uni- Χριστόν τὸν Ψἱὸν Θεοῦ τὸν μο- 7o(7 Π-0-7τo7 lt=10- gto(ampgeacutenitum et ex Patre natum an- νογενῆ τὸν ἐκ τοῦ Πατρὸς γε- π-4ooγ17 π-4-7- oABte oacutemnia saeligcula Deum de νηθέντα πρὸ πάντων τῶν αἰώνων -τ B$Co( )- τ10o( o(-Deo lumen de luacutemine Deum ve- φῶς ἐκ φωτός Θεὸν ἀληθινὸν ἐκ o(-- oAB o(o(-- o(o(amprum de Deo vero geacutenitum non Θεοῦ ἀληθινοῦ γεννηθέντα οὐ )τ$D41- oAB o(o(amp )τ$D-factum consubstantiaacutelem Patri ποιηθέντα ὁμοούσιον τῷ Πατρί 41- o(4-7- π o(3$4-ograve $ πper quem oacutemnia facta sunt δι΄ οὗ τὰ πάντα ἐγένετο o(4oo(7-o7 π 4 -τ fi1τ$

- =π- oA-τoτ2Qui propter nos hoacutemines Τὸν δι΄ ἡμᾶς τοὺς ἀνθτρώ- E$- τ 31τ Fo B$ --

et propter nostram saluacutetem de- πους καὶ διὰ τὴν ἡμετέραν σω- 04- 4 3 πo(C$- $2G -sceacutendit de caeliglis Et incarnaacutetus τηρίαν κατελθόντα ἐκ τῶν οὐρα- π71τ oAB 5fi $28-7$0H -est de Spiacuteritu Sancto ex Mariacutea νῶν καὶ σαρκωθέντα ἐκ Πνεύμα- oAB Π-6(4$ 3o($ 4 -Viacutergine et homo factus est τος Αγίου καὶ Μαρίας τῆς Παρ- oAB I$0-F ampπ$03o7 o(o

θένου καὶ ἐνανθτρωπήσαντα $2004-Crucifiacutexus eacutetiam pro nobis Σταυρωθέντα τε ὑπέρ ἡμῶν ἐ- O(o $(0Jτ$(0- gt4o2

sub Poacutentio Pilaacuteto passus et πὶ Ποντίου Πιλάτου καὶ παθόν- K01- C $0 Πoτ-o7 Π--sepuacuteltus est et resurreacutexit teacuter- τα καὶ ταφέντα Καὶ ἀναστάντα A$τo7 $2=π4$ o(o $(-tia die secuacutendum Scriptuacuteras et τῇ τρίτῃ ἡμέρᾳ κατὰ τὰς Γραφάς o72 O(o $2τ2 oABasceacutendit in caeliglum sedet ad deacutex- Καὶ ἀνελθόντα εἰς τοὺς οὐρανοὺς 134o(τ B π-oo( gt4$-teram Patris Et iacuteterum ventuacute- καὶ καθεζόμενον ἐκ δεξιῶν τοῦ =o4τ $τ$ -L0$fi1 M2=$2rus est cum gloacuteria iudicaacutere vivos Πατρός Καὶ πάλιν ἐρχόμενον με- 6=- -fi1o(G $247- 7$o(G-et moacutertuos cuius regni non erit τὰ δόξης κρῖναι ζῶντας καὶ νε- $4 gtπ2-τ N π$A- O1o(nis κρούς οὖ τῆς βασιλείας οὐκ ἔ- B π2Po( amp$π 1τoB 4

σται τέλος 134o(τ fi1τ τ24τo(0oo($34o( τ

Et in Spiacuteritum Sanctum Καὶ εἰς τὸ Πνεῦμα τὸ ῞Αγιον Q τ$amp Π-6(4$ 3o(-Doacuteminum et vivicaacutentem qui τὸ κύριον τὸ ζωοποιόν τὸ ἐκ τοῦ $ lt8o-7 )02amp gt6B fi13-ex Patre (Filioacuteque) proceacutedit Πατρὸς ἐκπορευόμενον τὸ σὺν 1o( oAB -τ 7o(=τ gt-Qui cum Patre et Fiacutelio simul Πατρὶ καὶ Ψἱῷ συμπροσκυνούμε- 4o2 7ampPo( $2 4 -τ 4adoraacutetur et congloricaacutetur qui νον καὶ συνδοξαζόμενον τὸ λα- lt=10- fi1τ$27$C- B -60ofi1-locuacutetus est per propheacutetas Et λῆσαν διὰ τῶν προφητ῀τον Εἰς τ17 Ro(G )Fγ-F )$3oA-1 )F-unam sanctam cathoacutelicam et μίαν Αγίαν Καθολικὴν καὶ Α- πo7τoA-1 )SA17-$ Τ0ograve-apostoacutelicam Eccleacutesiam Confiacute- ποστολικὴν ᾿Εκκλησίαν ῾Ομολο- 4oAoγ- )o(47 )o(τ 6T -teor unum baptiacutesma in remis- γῶ ἓν βάπτισμα εἰς ἄφεσιν ἁμαρ- oA )τ -o- ΤCo(=τ -sioacutenem peccatorum Et expecto τιῶν Προσδοκῶ ἀνάστασιν νε- oA B$51 )ampF$7τ$7-7 )τ --resurrectionem mortuorum et κρῶν Καὶ ζωὴν τοῦ μέλλοντος 024o(τ 4 π-B )τ π-vitam ventuacuteri saeligculi Amen αἰῶνος Αμήν 31o( F41

1

Figura 117 Il Credo di Nicea in tre lingue che fanno uso di alfabeti diversi

224 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

118 La gestione dei fontGestire la moltitudine di font sul proprio elaboratore puograve talvolta risultarefaticoso bisogna tenere presente che i font classici di LATEX sono per lo piugravedistribuiti sotto forma di sorgenti scritti con il linguaggio di programmazioneMETAFONT e che tutti i programmi delle distribuzioni del sistema TEX sonoin grado di lanciare METAFONT il programma in modo da generare al volo ifont in formato bitmapped adatti al tipo di schermo e di stampante che si sonoconfigurati durante lrsquoinstallazione del sistema

Tuttavia mentre su carta i font bitmapped creati per la densitagrave di stampadella stampante in uso danno luogo ad un risultato perfetto quegli stessi font nonsono il meglio che si possa usare per leggere il testo sullo schermo specialmentese si desidera leggere il testo con ingrandimenti diversi

Sarebbe meglio disporre dei font in formato outline ma questi sono difficilida ottenere dai file sorgente METAFONT quindi bisogna scaricarli dalla rete lsquogiagravefattirsquo Inoltre crsquoegrave la miriade di font che si possono comperare o che si trovano comefreeware sia in formato Adobe Type 1 (PostScript) sia in formato TrueType ein formato OpenType La loro installazione non egrave banale per i seguenti motivi

LATEX per lavorare non ha bisogno dei disegni dei font ma delle loro caratte-ristiche geometriche queste sono raccolte in file con lrsquoestensione tfm (TEX FontMetrics) se si usa LATEX saragrave poi il driver che trasforma il file DVI in formaleggibile quello che avragrave bisogno dei disegni che in formato bitmapped hannoestensioni del tipo 〈dpi〉pk in formato PostScript pfb (PostScript Font inBinary format) in formato TrueType ttf (TrueType Font) Se invece si usapdfLATEX esso ha bisogno simultaneamente sia dei file metrici sia dei file outlineo in mancanza dei file bitmapped

I font bitmapped di origine METAFONT vengono generati insieme con il filetfm quindi non crsquoegrave bisogno drsquoaltro

I font PostScript ottenuti dal mercato o dalla rete (non ottenuti trasformandoi font bitmapped che ne sono giagrave dotati) sono disponibili con il file metrico cheha formato diverso dal tfm ed ha estensione afm (Adobe Font Metrics)

I font TrueType non dispongono di un file metrico separato percheacute leinformazioni metriche sono giagrave contenute nel file ttf

In questa situazione bisogna leggere attentamente le guide che accompa-gnano il sistema TEX della propria distribuzione e seguirle scrupolosamente iprogrammi per le debite conversioni di formato dei file metrici fanno giagrave partedella distribuzione ma le operazioni da fare devono esser svolte dallrsquoutenteamministratore del PC con grande cura

La raccomandazione di leggere la documentazione in questo caso egrave piugrave cheuna raccomandazione egrave un obbligo

Perograve questa difficoltagrave egrave compensata dal fatto che il sistema TEX contrariamen-te a quel che si mormora da parte di coloro che non leggono la documentazionenon egrave affatto vincolato ai suoi font METAFONT ma puograve lavorare con qualunquefont esista al mondo

Infine va ricordato che lrsquoultimo nato della famiglia dei programmi di compo-sizione del sistema TEX X ETEX consente di lavorare con i font con la codificaUNICODE e apparentemente sa trovare da solo le informazioni metriche dicui necessita sia nei file tfm o afm sia allrsquointerno dei file ttf e quindi lrsquousodei font e degli alfabeti piugrave disparati (compresi quelli ad ideogrammi) diventadecisamente semplificata specialmente se si dispone di uno shell editor che possa

118 LA GESTIONE DEI FONT 225

scrivere il testo sorgente facendo uso direttamente della codifica UNICODEAnche ConTeXt-mk-iv oggi contiene LuaTeX ed egrave capace di lavorare con i fontOpenType in codifica UNICODE

Va fatta una precisazione il sistema TEX viene distribuito dalla rete omediante dischi di installazione ma generalmente lrsquoutente installa solo la versionebase arricchita dai pacchetti di estensione di cui necessita via via che usa questosistema di composizione

Lrsquoutente non necessariamente installa tutto percheacute il sistema e lrsquointeracollezione di estensioni egrave enorme e quindi piuttosto ingombrante sul disco

Questo egrave particolarmente vero per i pacchetti di estensione che arricchisconole potenzialitagrave compositive del sistema mediante una grande collezione di font idiversi formati perograve fanno sigrave che siano necessarie delle conversioni percheacute nontutti i programmi usano lo stesso formato

Inoltre come si egrave avuto occasione di commentare piugrave volte le codifiche deifont possono essere diverse spesso lo sono ma TEX conosce solo le sue codifichequindi talvolta egrave necessario anche provvedere al cambiamento di codifica Perquesto scopo si usano sia i lsquofont virtualirsquo sia i lsquovettori di codificarsquo Il discorsocome si vede puograve diventare assai complicato e non si procede oltre

Tuttavia per rendersi conto percheacute certe cose non sono fatte come unosi aspetterebbe bisogna ricordare che i file DVI possono essere mostrati suschermo da programmi come YAP o xdvi e questi quando devono rappresentaregraficamente i singoli segni dei font ricorrono di default alle loro immaginibitmapped

Altri programmi non facenti parte in senso stretto del sistema TEX come peresempio dvips (che trasforma i file dal formato DVI al formato PostScript) oppuredvipdfm (che trasforma i file dal formato DVI al formato PDF) preferiscono usarei font di tipo outline e ricorrono a quelli bitmapped solo in caso di necessitagraveHanno perciograve bisogno di sapere quali font outline siano disponibili e dove sitrovino percheacute questa informazione non egrave contenuta nel file DVI Il programmapdfLATEX invece ha bisogno di conoscere subito quali font siano disponibili inche formato e dove si trovino questi font percheacute nel file sorgente non crsquoegrave nessunaccenno a questa informazione E attenzione non dimentichiamo che quantoegrave disponibile su una macchina non egrave necessariamente disponibile su unrsquoaltrapercheacute il suo amministratore non ha caricato gli stessi pacchetti eo non hacomperato gli stessi prodotti commerciali

Ecco allora che sono necessari tre file per svolgere le funzioni appena descritteessi si chiamano psfontsmap dvipdfmmap e pdftexmap sono collocati in trecartelle diverse dellrsquoalbero di sistema o dellrsquoalbero personale delle cartelle diTEX essi contengono le opportune informazioni rispettivamente per dvips o perdvipdfm o per pdftex

Ogni volta che si installa una nuova collezione di font outline o anche dei filesorgente per la creazione di ulteriori font METAFONT di tipo bitmapped bisognaaggiornare il contenuto di psfontsmap e compagni Questa egrave una operazionedelicata e va eseguita esattamente come dicono le istruzioni che accompagnanola distribuzione del sistema TEX percheacute ovviamente tutto ciograve dipende dallaparticolare macchina e dal suo sistema operativo anche se dal lato TEX sicerca di fare in modo che le operazioni da eseguire siano il piugrave possibile similipossibilmente uguali

Ma durante la lavorazione di questo testo le persone che hanno contribuitosi sono rese conto che la loro configurazione bencheacute fortemente personalizzata

226 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

e piuttosto ricca di estensioni tuttavia rendeva difficile il lavoro di gruppo equalche volta lo rendeva impossibile Per questo inizialmente si egrave scelto di usarei font Computer Modern con codifica OT1 anche se non egrave la scelta ottimaleper le lingue con gli accenti come lrsquoitaliano ma egrave sicuramente presente su ogniinstallazione In realtagrave da diversi numeri di versione di questa Guida si usanoi font Latin Modern con la codifica T1 ma il master file dice esattamente checosa fare se questi font non fossero installati Finora nessun collaboratore si egravelamentato di questi font ed egrave un bene percheacute significa che persino le distribuzionibase fortemente personalizzate sono in grado di essere uniformi con questifont vettoriali forse persino un poco piugrave belli dei font Computer Modern macertamente piugrave adatti alla lingua italiana che fa uso relativamente spesso didiversi accenti

1181 Altri font giagrave disponibiliPrima di descrivere la delicata operazione dellrsquoinstallazione di nuovi font valela pena di descrivere i pacchetti che fanno riferimento a font giagrave disponibili inogni distribuzione del sistema TEX Talvolta egrave necessario scaricare da ctan edinstallare pacchetti giagrave predisposti con tutto il necessario ma spesso i pacchettifanno parte della dotazione ordinaria del sistema

Fra questi pacchetti si sono giagrave segnalati quelli corrispondenti ai txfonts eai pxfonts essi permettono di usare rispettivamente i font Times estesi e i fontPalatino estesi Lrsquoaggettivo lsquoestesorsquo si riferisce al fatto che le collezioni dei segniusabili sono piugrave ampie (estese) rispetto allrsquoinsieme di segni forniti ordinariamentedai font delle collezioni CM EC e TS arricchite dai segni delle collezioni fornitedallrsquoAmerican Mathematical Society

Il documento Using common PostScript fonts with LATEX reperibile nel filedoclatexpsnfsspsnfss2epdf descrive tutti i font PostScript con irelativi pacchetti e le rispettive opzioni giagrave predisposti per usare i font Palatino(font diversi e con prestazioni inferiori a quelle del pacchetto pxfonts) i Times(anche questi con prestazioni inferiori a quelle fornite dal pacchetto txfonts)Helvetica Avant Garde Courier Zapf Chancery Bookman New Century School-book Charter Il documento descrive anche i limiti di ogni pacchetto e segnalai pacchetti obsoleti da non usare se non per comporre vecchi documenti chericorrevano ad alcuni di questi font

Il documento segnala anche alcuni pacchetti per esempio Pifonts da caricareper disporre dei simboli e dei lsquodingbatsrsquo forniti dalle polizze che offrono soloquesto genere di segni Diventa cosigrave abbastanza semplice disporre di tutti queglilsquoideogrammirsquo usati nel mondo occidentale per segnalare luoghi specifici (telefonoluoghi di culto aeroporti ) delle manine che indicano e attraggono lrsquoattenzionesu un oggetto o una parola motivi di decorazione cifre da 0 a 10 variamentestilizzate molti tipi di frecce eccetera La figura 118 presenta una di questepolizze di segni speciali

Va segnalato che con alcuni di questi font e per altri non indicati il pacchettomathdesign consente di associare i font matematici e le collezioni di simboli inmodo che molte delle limitazioni e degli inconvenienti segnalati dal documento inquestione possono venire eliminati Questo pacchetto consente di estendere i fontUtopia Charter e Garamond esso consente quindi di personalizzare fortementelrsquoaspetto grafico dei propri lavori di composizione senza perograve rinunciare a nessunadelle prerogative di LATEX Chi scrive per altro ha raramente usato questi altri

118 LA GESTIONE DEI FONT 2271

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo0000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

00

rsquo02016 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

10

rsquo040 32

33

34

35

$36

37

amp38

39

(40

)41

42

+43

44

-45

46

4720

rsquo060 048

149

250

351

452

553

654

755

856

957

58

59

lt60

=61

gt62

6330

rsquo100 64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

rsquo120 P80

Q81

R82

S83

T84

U85

V86

W87

X88

Y89

Z90

[91

92

]93

^94

_9550

rsquo140 `96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

123

|124

125

~126 127

70

rsquo200128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143

80

rsquo220144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159

90

rsquo240160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

A0

rsquo260 176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

B0

rsquo300 192

193

194

iexcl195

cent196

pound197

curren198

yen199

brvbar200

sect201

uml202

copy203

ordf204

laquo205

not206

shy207

C0

rsquo320 reg208

macr209

deg210

plusmn211

sup2212

sup3213

acute214

micro215

para216

middot217

cedil218

sup1219

ordm220

raquo221

frac14222

frac12223

D0

rsquo340 frac34224

iquest225

Agrave226

Aacute227

Acirc228

Atilde229

Auml230

Aring231

AElig232

Ccedil233

Egrave234

Eacute235

Ecirc236

Euml237

Igrave238

Iacute239

E0

rsquo360240

Icirc241

Iuml242

ETH243

Ntilde244

Ograve245

Oacute246

Ocirc247

Otilde248

Ouml249

times250

Oslash251

Ugrave252

Uacute253

Ucirc254 255

F0

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 399998 ptspazio interparola 277999 pt larghezza del quadrato 1000000 ptallungamento interparola 300000 pt spazio extra 000000 ptaccorciamento interparola 100000 pt corpo nominale 1000000 pt

Figura 118 I dingbats creati da Hermann Zapf

font non percheacute egli li consideri inadatti ma percheacute si egrave decisamente trovatomeglio con i font Latin Modern anche se i suoi scritti sembrano lsquomonotonirsquo permancanza di varietagrave di font

1182 Esempio di installazione di una collezione di font11821 Installare i font greci

Qui si cercheragrave di chiarire il procedimento di installazione con un esempio praticoci accingiamo a configurare il sistema per poter scrivere in greco Abbiamo bisognodi babel per poter gestire le lingue ma in particolare abbiamo bisogno che siaattrezzato per il greco oppure abbiamo bisogno di completarlo con le cose cheriguardano questa lingua Abbiamo bisogno dei file sorgente dei font METAFONTanche se preferiremmo usare i font outline Abbiamo perciograve bisogno dei fileoutline dei font greci della loro mappa e visto che ci siamo anche dei file metrici

Verifichiamo dapprima se il pacchetto babel installato nel nostro sistemasia giagrave attrezzato per il greco potremmo semplicemente lanciare LATEX con unsemplice file sorgente del tipo di questo

Testo di prova per il grecodocumentclassminimalusepackage[greek]babelbegindocumentQarsquoire

228 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

enddocument

Se LATEX esegue la compilazione e i font METAFONT sono giagrave disponibili sulloschermo del previewer appare la parola Χαίρε Ma se la lingua greca non disponedi tutto ciograve di cui necessita allora possono essere successe diverse cose

1 Subito allrsquoinizio LATEX si ferma dicendo che non dispone del file greekldfquesto indica che babel non egrave attrezzato per niente ai fini del greco Bisognainstallare una versione piugrave recente e ben configurata

2 LATEX si lamenta che la codifica LGR gli egrave sconosciuta babel egrave malconfigurato per il greco nel senso che ne conosce le specificitagrave ma ne ignorai font bisogna caricare i font greci con i vari file fd di descrizione delleloro famiglie

3 LATEX completa il suo lavoro senza messaggi drsquoerrore ma il previewer nonegrave in grado di rappresentare i font greci e forse scrive sullo schermo lsquoQaiacuterersquoo qualcosa del genere Vuol dire che LATEX ha trovato i file tfm dei fontgreci ma il previewer non ha trovato neacute i file dei font rasterizzati neacute hatrovato i file sorgente con estensione mf per crearli bisogna evidentementecaricare questi file sorgente

4 Invece di usare LATEX si egrave usato pdfLATEX tutto egrave andato bene ma ilpreviewer del file PDF mostra la parola Χαίρε con contorni mal definitioppure essi appaiono definiti se li si guarda senza ingrandimento maappaiono tutti scalettati se li si guarda attraverso la lente di ingrandimentodel previewer Questo significa che mancano i font outline oppure che ilfile psfontsmap e i suoi compagni non sono configurati correttamente

Come si vede le possibilitagrave che inizialmente ci sia qualcosa che non vadasono tante non egrave un caso frequente ma puograve succedere Allora bisogna cercarei file mancanti eo configurare correttamente il pacchetti esistenti o i file diconfigurazione Dopo ogni pacchetto installato non ci si dimentichi mai diaggiornare il database dei nomi dei file lanciando texhash sui sistemi di tipoUNIX o lanciando lrsquoapposito wizard della distribuzione MiKTEX sulle macchineWindows Questa operazione egrave essenziale se il database dei nomi dei file nonegrave aggiornato e completo nessun programma del sistema TEX puograve funzionarecorrettamente

1 Il pacchetto babel fa normalmente parte della distribuzione del sistema TEXquindi se non egrave in grado di gestire il greco vuol dire che egrave molto vecchio ose ne installa una versione nuova oppure egrave meglio controllare che tutto ilsistema TEX che si sta usando non sia troppo vecchio il greco dovrebbeessere gestibile correttamente dagli ultimi anni rsquo90 diciamo 1998 quindiil lettore valuti se la sua distribuzione egrave piugrave vecchia e nel caso reinstallicompletamente il sistema TEX Non sembra possibile che una versionerecente non sia in grado di gestire il greco tuttavia non si puograve escludere chescaricando il pacchetto qualche file si sia corrotto allora egrave meglio ricaricaretutto il pacchetto cercando su ctan lrsquoultima versione lrsquoindirizzo in cuicercare egrave wwwctanorgtex-archivemacroslatexrequiredbabelda questo sito si puograve scaricare lrsquointero pacchetto compresso in formatozip oppure si possono scaricare le singole componenti del pacchetto se si

118 LA GESTIONE DEI FONT 229

sceglie di scaricare lrsquointero pacchetto basta decomprimerlo e poi seguirele istruzioni del file README per sapere in quali cartelle mettere i vari filese si sceglie di scaricare solo le componenti per il greco basta scaricaregreekdtx greekfdd greekins e se si vuole athnumdtx LanciandoLATEX su greekins si estraggono tutti i file necessari mentre lanciandoLATEX sui file con estensione dtx e fdd se ne ottiene la documentazioneSi devono poi spostare i file cosigrave ottenuti nelle cartelle di babel per avere ifile mancanti oppure per sostituire i file corrotti

2 Nel sito precedentemente indicato si trova anche il file GreekFontstxtche contiene istruzioni varie per scaricare i font greci in particolare i filesorgente per il programma METAFONT e giagrave pronti i file metrici tfmSe si seguono le indicazioni contenute in quel file si puograve scaricare tutta lacollezione dei font greci rasterizzati o lsquorasterizzabilirsquo in realtagrave non vengonoscaricati i file pk ma scaricando i file sorgente il programma METAFONT

egrave in grado di creare i file rasterizzati lsquoon demandrsquo cioegrave quando occorrono

3 Se si vogliono usare i font outline bisogna scaricare anche i file pfb relativiai font greci Beccari e Syropoulos inizialmente avevano predisposto tuttii file pfb corrispondenti a tutti i corpi dei font rasterizzati Nel 2005Syropoulos ha deciso che lrsquoinsieme dei font pfb era troppo ingombranteed ha pensato che sarebbero bastati i font di corpo 10 pt tanto essendofont outline questi possono essere ingranditi o rimpiccioliti a piacere Egliquindi ha chiesto di eliminare dal sito ctan tutti i font di corpo diversoda quello di 10 pt e ha dato istruzioni di usare nel preambolo il pacchettotype1ec e di specificare nella chiamata del pacchetto

usepackage[10pt]type1ec

In questo modo i vari font greci da 10 pt vengono scalati secondo necessitagraveTrattandosi di un font da usare essenzialmente solo per le parti testua-li di un documento e non per le parti matematiche questa decisione egraveforse un porsquo discutibile ma certamente accettabile Sicuramente consentedi scaricare dalla rete molte decine di megabyte in meno Il sito ctantex-archivefontsgreekcbfonts consente di scaricare tutto quantoconcerne i font greci in particolare la cartella ctantex-archivefontsgreekcbfontstype1 contiene tutti i file dei font pfb mentre la car-tella ctantex-archivefontsgreekcbfontsfontsmap contiene ilfile cbgreek-fullmap necessario per configurare i file psfontsmap ecompagniNei sistemi TEX aggiornati al 2007 conformi quindi alla nuova strutturadelle cartelle a cui la distribuzione TEX Live si adegua cosigrave come gli altrisistemi piugrave o meno derivati da TEX Live nel proprio albero personale egraveconveniente creare una cartella fontsmapgreek e qui copiarvi il filecbgreek-fullmap cosigrave nelle operazioni successive aggiornato il databasedei nomi dei file il file viene trovato senza difficoltagraveAnalogamente i file metrici e i file dei font verranno collocati nelle cartellefontstfmlocalgreek e fontstype1localgreek se que-ste cartelle non esistessero ancora basta crearle con i comandi in linea

230 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

disponibili con ogni sistema operativo oppure ricorrendo alle opportuneinterfacce grafiche per la gestione delle cartelleVa notato che se il PC su cui si lavora egrave usato da un solo utente quantodetto sopra va bene se invece il PC viene usato da diversi utenti e tutti oalmeno alcuni di loro fanno uso del sistema TEX allora egrave bene scaricarequei file pfb tfm e map nellrsquoalbero locale mostrato dalla variabile disistema TEXMFLOCAL basta eseguire il comando

kpsewhich -var-value=TEXMFLOCAL

Sul portatile sul quale chi scrive sta lavorando quel comando mostra ilpercorso

usrlocaltexlive2010texmf-local

che di fatto significa

usrlocaltexlivetexmf-local

In altre parole la radice dellrsquoalbero locale egrave dentro la cartella texlive maallo stesso livello della cartelle contrassegnata con lrsquoanno questo significache se lrsquoanno successivo si aggiorna il sistema viene creato un altro alberocon un anno diverso per cui lrsquoalbero locale non viene toccato Quandoviene inserito qualcosa dentro lrsquoalbero locale bisogna aggiornare il databasedei nomi dei file anche sui sistemi Mac

4 Scaricati i file suddetti nelle opportune cartelle e aggiornato il database deinomi dei file bisogna procedere a configurare le mappe dei font outlineCi sono vari metodi ma con un sistema TEX recente egrave opportuno creare intexmf-localweb2c il file updmap-localcfg nel quale si inseriscela riga

Map cbgreek-fullmap

oltre ad eventuali altre righe di altre mappe locali di font che non sianodistribuiti con il sistema TEX Secondo chi scrive egrave anche opportuno inserirela riga

dvipsDownloadBase35 true

percheacute il sistema di default viene distribuito con questa variabile impostataal valore false questa impostazione egrave utile se si desiderano compilaredei documenti in formato PDFA (vedi il capitolo 21) questi file infattidevono contenere tutti i font usati nel documento compresi quelli chesolitamente non vengono inclusi percheacute fanno giagrave parte della dotazionestandard di ogni stampante PostScript e di ogni driver PostScript perstampanti qualsiasi questa esigenza egrave spiegata meglio nel capitolo 21Come si egrave giagrave detto ma egrave opportuno ripeterlo avendo creato un file inuno degli alberi gestiti dal sistema egrave necessario generare o rigenerare il

118 LA GESTIONE DEI FONT 231

database dei nomi dei file con il comando mktexlsr specificando eventual-mente che si desidera solo rigenerare il database solo per lrsquoalbero radicatoin texmf-local ovviamente questa operazione on egrave necessaria se il fileesisteva giagrave e lo si egrave solamente modificato per aggiungere altre righe dicomandi o di specificazioni In alcuni sistemi per rigenerare il database deinomi dei file bisogna acquisire i privilegi di amministratoreEseguite queste operazioni bisogna dare a mano come administator o rooti seguenti due comandi

tlmgr generate updmapupdmap-sys

Il primo comando genera un file updmapcfg con le informazioni di sistemacompletate con le informazioni contenute nel file locale updmap-localcfgil secondo genera i file pdffontsmap e compagni sulla base del file diconfigurazione generato nel passo precedenteSe si usa MiKTEX29 bisogna procedere come viene spiegato nel manualedi MiKTEX stesso bisogna cioegrave editare il file updmapcfg facendo uso delcomando

initexmf --edit-config-file updmap

che crea un nuovo file updmapcfg in una opportuna cartella dellrsquoutente inquesto nuovo file si possono aggiungere le righe corrispondenti alle mappedei font locali la specificazione true per la variabile dvipsDownloadBase35Dal manuale di MiKTEX non si evince una procedura diversa da questaper cui quando si esegue

initexmf --makemaps

si dovrebbe ottenere una mappa aggiornata per pdftex e compagni Ovvia-mente la cosa va a buon fine se il database dei nomi dei file egrave aggiornatoanche per quel che riguarda le mappe specifiche dei singoli font da aggiun-gere Con MiKTEX sembrerebbe che non esista la possibilitagrave di aggiungerenuovi font e le relative mappe a livello di ldquoAll Usersrdquo in modo che tuttigli utenti li possano usare senza bisogno di eseguire un loro installazionepersonale degli stessi fontDurante lrsquoesecuzione del programma updmap-sys sullo schermo scorronodiversi messaggi che conviene poi eventualmente andare a rileggere selrsquooperazione non fosse andata a buon fine Supponendo invece che tutto sisia svolto correttamente in un opportuna cartella compaiono ora tre nuovifile

fontsmapdvipdfmupdmapdvipdfmmap

fontsmapdvipsupdmappsfontsmap

fontsmappdftexupdmappdftexmap

Aprendo uno qualunque di questi file con un editor testuale vi si devonoritrovare tra gli altri ma in ordine alfabetico tutti i nomi dei font greci informato pfb insieme aalle altre informazioni che il programma ha trovatonel file cbgreek-fullmap

232 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

a b c d e f g h i j k l m n o p q r s t u w x y zα β ς δ ε φ γ η ι θ κ λ μ ν ο π χ ρ σ4 τ υ ω ξ ψ ζ

gt lt rsquo lsquo ˜ rdquo rdquo | (( ))᾿ ῾ ΄ ` ῀ uml4 rsquo ͺ laquo raquo

Tabella 1112 Corrispondenze fra i tasti della tastiera latina e i segni dellrsquoalfabetogreco

5 Eseguite tutte queste operazioni ogni programma eseguibile che produca lacompilazione o la trasformazione del file sorgente tex deve poter trovarei font greci e deve poter lavorare con i file di descrizione dei font greci ebabel non puograve lamentarsi di non conoscere la codifica LGR Insomma tuttodeve filare liscio se ciograve non succedesse bisogna ripetere scrupolosamente ipassi indicati eliminando gli errori che sono stati commessi

11822 Scrivere in greco

Vale la pena a questo punto aggiungere poche righe per ricordare come si fa acomporre in greco usando la tastiera latina Innanzi tutto il file sorgente deveinvocare babel indicando (solo o) anche la lingua greca se perograve si vuole scriverein greco moderno con lrsquoortografia monotonica non occorre altro se si vuolescrivere in greco classico o in greco moderno con lrsquoortografia politonica bisognaaggiungere una dichiarazione di attributo per la lingua greca cosigrave

usepackage[greekitalian]babellanguageattributegreekpolutonikousepackage[10pt]type1ec

Volendo si potrebbe caricare anche il pacchetto teubner

usepackage[greekitalian]babelusepackage[10pt]teubner

ma di solito se non occorrono speciali strutture filologiche lrsquouso del pacchettoteubner egrave eccessivo

Si noti ancora che specificare il pacchetto type1ec con lrsquoopzione 10pt oppurequella stessa opzione al pacchetto teubner serve solo e solamente se non si egravecaricata lrsquointera collezione di font greci ma ci si egrave accontentati della installazionedi default a 10 pt per le versioni PostScript

Le corrispondenze fra i tasti della tastiera lsquolatinarsquo con le lettere greche sonoriportate nella tabella 1112 Gli accenti e gli spiriti vanno preposti in unasequenza qualunque alle vocali (o al ρ) senza nessun uso di backslash lo iotasottoscritta va inserita invece posponendo il segno | alla vocale che la deveaccogliere Il segno seguito da uno spazio si traduce in un apostrofo mentre seprecede un iota o un upsilon vi colloca la dieresi in questa funzione la dieresipuograve essere anche preceduta o seguita dal segno di accento grave o acuto ocirconflesso Lrsquounica difficoltagrave che si incontra a scrivere con la tastiera italiana egraveche da questa manca una combinazioni di tasti per generare lrsquoaccento grave elrsquoaccento tilde che funziona da circonflesso per il greco la tastiera italiana delMac consente di ottenere questi segni con lrsquoaiuto del tasto lsquocomandorsquo ma conWindows egrave necessario ricorrere al tasto Alt e alla digitazione dei numeri 96 e126 rispettivamente sul tastierino numerico su un laptop Windows egrave una vera

118 LA GESTIONE DEI FONT 233

beginquotebeginotherlanguagegreekitshape

Torsquoutou qrsquoarin gtaprsquoeliprsquoon se gten Krrsquohth| ltrsquoina tlsquoa lersquoiponta

gtepidiortrsquowsh| kalsquoi katastrsquohsh|s katlsquoa prsquoolin presbitrsquoerous ltws

gtegrsquow soi dietaxrsquoamen egtrsquoi trsquois gtestin gtanrsquoegklhtos mi~as

gunaiklsquoos gtanrsquohr trsquoekna gtrsquoeqwn pistrsquoa mlsquoh gten kathgorrsquoia|

gtaswtrsquoias gtlsquoh gtanuprsquootakta de~i glsquoar tlsquoon gteprsquoiskopon

gtanrsquoegklhton egt~inai ltws Jeo~u ogtikonrsquoomon mlsquoh agtujrsquoadh

mlsquoh gtorgrsquoilon mlsquoh prsquoaroinon mlsquoh plrsquohkthn mlsquoh agtisqrokerd~h

gtalllsquoa filrsquooxenon filrsquoagajon srsquowfrona drsquoikaion ltrsquoosion

gtenkrat~h gtanteqrsquoomenon to~u katlsquoa tlsquohn didaqlsquohn pisto~u lrsquoogou

ltrsquoina dunatlsquoos lt~h| kalsquoi parakale~in gten t~h| didaskalrsquoia| t~h|

ltugiainorsquoush| kalsquoi tolsquous gtantilrsquoegontas gtelrsquoegkein

nullhfillupshapeT 15-9

endotherlanguage

endquote

Τούτου χάριν ἀπέλιπόν σε ἐν Κρήτῃ ἵνα τὰ λείποντα ἐπιδιορτώσῃ καὶκαταστήσῃς κατὰ πόλιν πρεσβιτέρους ὡς ἐγώ σοι διεταξάμεν εἴ τίςἐστιν ἀνέγκλητος μιᾶς γυναικὸς ἀνήρ τέκνα ἔχων πιστά μὴ ἐν κατη-γορίᾳ ἀσωτίας ἢ ἀνυπότακτα δεῖ γὰρ τὸν ἐπίσκοπον ἀνέγκλητον εἶναιὡς Θεοῦ οἰκονόμον μὴ αὐθάδη μὴ ὀργίλον μὴ πάροινον μὴ πλήκτηνμὴ αἰσχροκερδῆ ἀλλὰ φιλόξενον φιλάγαθον σώφρονα δίκαιον ὅσιονἐνκρατῆ ἀντεχόμενον τοῦ κατὰ τὴν διδαχὴν πιστοῦ λόγου ἵνα δυνατὸς ᾗκαὶ παρακαλεῖν ἐν τῇ διδασκαλίᾳ τῇ ὑγιαινούσῃ καὶ τοὺς ἀντιλέγονταςἐλέγκειν Τ 15-9

Figura 119 Esempio di composizione in greco

contorsione ma se lo shell editor lo consente questi segni possono essere ottenuticon un semplice click del mouse in una apposita tabellina proposta dallrsquoeditor

Scrivere in greco diventa ora abbastanza facile anche se sullo schermo apparela versione traslitterata in lettere latine Si prenda ad esempio il piccolo fileseguente

documentclassbookusepackage[greekitalian]babelusepackage[10pt]teubnerbegindocumentbeginquotebeginotherlanguagegreekitshapeTorsquoutou qrsquoarin gtaprsquoeliprsquoon se gten Krrsquohth| ltrsquoina tlsquoa lersquoipontagtepidiortrsquowsh| kalsquoi katastrsquohsh|s katlsquoa prsquoolin presbitrsquoerous ltwsgtegrsquow soi dietaxrsquoamen egtrsquoi trsquois gtestin gtanrsquoegklhtos mi~asgunaiklsquoos gtanrsquohr trsquoekna gtrsquoeqwn pistrsquoa mlsquoh gten kathgorrsquoia|gtaswtrsquoias gtlsquoh gtanuprsquootakta de~i glsquoar tlsquoon gteprsquoiskopongtanrsquoegklhton egt~inai ltws Jeo~u ogtikonrsquoomon mlsquoh agtujrsquoadhmlsquoh gtorgrsquoilon mlsquoh prsquoaroinon mlsquoh plrsquohkthn mlsquoh agtisqrokerd~hgtalllsquoa filrsquooxenon filrsquoagajon srsquowfrona drsquoikaion ltrsquoosiongtenkrat~h gtanteqrsquoomenon to~u katlsquoa tlsquohn didaqlsquohn pisto~u lrsquoogoultrsquoina dunatlsquoos lt~h| kalsquoi parakale~in gten t~h| didaskalrsquoia| t~h|ltugiainorsquoush| kalsquoi tolsquous gtantilrsquoegontas gtelrsquoegkeinnullhfillupshapeT 15-9endotherlanguageendquoteenddocument

Dopo averlo elaborato con pdfLATEX si ottiene il risultato mostrato nellafigura 119 (dove fra lrsquoaltro il testo egrave composto con il font Lipsiano) Si noti ancheche il testo sorgente non usa mai la traslitterazione lsquocrsquo per il sigma terminalema la lettera lsquosrsquo questo egrave voluto per agevolare chi scrive in greco ma questa nonegrave la sua lingua madre tanto che ha bisogno di usare la tastiera latina Scrivendoabitualmente in una lingua occidentale sarebbe troppo facile sbagliarsi nelloscrivere il sigma terminale per questo il font egrave congegnato in modo da rendersiconto da solo di quanto il sigma cade in posizione terminale e automaticamente

234 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

esegue una legatura di sostituzione introducendo un sigma terminale bencheacutenel file sorgente comparisse una lsquosrsquo Questo meccanismo egrave talmente robusto chediventa difficile scrivere un σ iniziale o mediale isolato per questo scopo bisognaintrodurre nel file sorgente sv dove la lsquovrsquo serve per far credere al meccanismo disostituzione che la lsquosrsquo introdotta non sia terminale per altro come si vede dallatabella 1112 la lettera latina lsquovrsquo non corrisponde a nessun segno greco

Se si deve scrivere a lungo in greco e si dispone di una tastiera bilingueo meglio ancora di mezzi comodi per scrivere direttamente in greco nel filesorgente si puograve usare la codifica utf8 nella variante utf8x in questa maniera

documentclassbookusepackage[T1]fontencusepackagelmodernusepackageucsusepackage[utf8x]inputencusepackage[greekitalian]babellanguageattributegreekpolutoniko

begindocument

beginotherlanguagegreek

Τούτου χάριν ἀπέλιπόν σε ἐν Κρήτῃ ἵνα τὰ λείποντα

ἐπιδιορτώσῃ καὶ καταστήσῃς κατὰ πόλιν πρεσβιτέρους ὡς

ἐγώ σοι διεταξάμεν εἴ τίς ἐστιν ἀνέγκλητος μιᾶς

γυναικὸς ἀνήρ τέκνα ἔχων πιστά μὴ ἐν κατηγορίᾳ

ἀσωτίας ἢ ἀνυπότακτα δεῖ γὰρ τὸν ἐπίσκοπον

ἀνέγκλητον εἶναι ὡς Θεοῦ οἰκονόμον μὴ αὐθάδη

μὴ ὀργίλον μὴ πάροινον μὴ πλήκτην μὴ αἰσχροκερδῆ

ἀλλὰ φιλόξενον φιλάγαθον σώφρονα δίκαιον ὅσιον

ἐνκρατῆ ἀντεχόμενον τοῦ κατὰ τὴν διδαχὴν πιστοῦ λόγου

ἵνα δυνατὸς ᾗ καὶ παρακαλεῖν ἐν τῇ διδασκαλίᾳ τῇ

ὑγιαινούσῃ καὶ τοὺς ἀντιλέγοντας ἐλέγκειν

nullhfillupshapeT 15-9endotherlanguage

Altro testo in italianoenddocument

11823 Altri font outline

In questo testo sono stati usati tra gli altri i font della famiglia Text CompanionFont i suoi file pfb non sono caricati di default ma lrsquoinstallazione del sistemacarica solamente i file sorgente per METAFONT

Nel solito archivio ctan nella cartella ctantex-archivefontsps-type1cm-super si trovano i font della collezione CM-super che contengono sia la colle-zione Text Companion Font in formato outline sia i font testuali della collezioneEC sia anche i font cirillici Scaricare lrsquointera collezione sarebbe pesantissimocome lo sarebbe stato per i font greci comunque egrave una via percorribile anchepercheacute alcune distribuzioni Linux consentono di scaricare e installare il tutto conapt-get senza bisogno di preoccuparsi drsquoaltro

118 LA GESTIONE DEI FONT 235

Nella cartella ctantex-archivefontslm si trovano i font Latin Modern(LM) che pur non essendo definitivamente fissati offrono una migliore collezionedi segni outline apparentemente migliori dei CM-super secondo gli intenditoriCertamente se non si ha bisogno di usare il cirillico questa collezione egrave moltopiugrave parca per quel che riguarda lo spazio sul disco

I font della collezione Latin Modern comprendono anche i file di ricodificaconformi alle norme Adobe per i font PostScript e permettono di servirsi dicodifiche diverse dalle solite Tuttavia nel momento di caricare il file di mappasi consiglia di inserire nella propria versione personale del file updmapcfg ilnome del file lmmap (eventualmente decommentandolo visto che di solito vi egravegiagrave inserito) Si consiglia di non inserire il nome specifico corrispondente ad unaparticolare codifica percheacute questi ultimi file specificano solo le transcodifichedei font testuali mentre non danno nessuna informazione sui font matematicial contrario il file di mappa lmmap contiene tutte le informazioni relative allacollezione Latin Modern con riferimento a tutte le codifiche esistenti e senzadimenticare i font matematici

Tra le codifiche con cui possono essere usati i font Latin Modern crsquoegrave anche lacodifica LY1 egrave una codifica interessante percheacute consente di evitare il caricamentodei font Text Companion a meno che non si debbano usare simboli moltoparticolari per esempio ora egrave necessario usare il simbolo dellrsquoeuro il comandotexteuro richiederebbe lrsquouso di font Text Companion se per il testo si usa lacodifica T1 mentre se si usa la codifica LY1 non ce nrsquoegrave bisogno lo stesso valeper altri pochi segni egrave meglio verificare sulla tabella 1113 per vedere che cosa egravedisponibile e che cosa manca

Nella cartella ctantex-archivesystemsvtexcommon si trovano diversifile compressi in formato zip che contengono diverse collezioni di font tra lrsquoaltrosono presenti anche i font greci lsquoabbastanza completirsquo cioegrave non solo quelli dicorpo 10 pt tuttavia la collezione manca di molte famiglie serie e forme percheacutecontiene poco meno di 300 file mentre la collezione completa ne contiene 944

Ma sempre nella stessa cartella si trova il file compresso vtex-fonts2zipche contiene davvero i font EC e TS la cui installazione dovrebbe risultare moltosemplice anche se nel file compresso la documentazione (per altro interessante)fa riferimento ancora ai font DC (i font EC in versione sperimentale) i file pfbe i rispettivi file tfm sono nelle apposite sottocartelle del file compresso Lagenerazione delle mappe non presenta difficoltagrave percheacute nel file updmapcfg lerighe relative ai font EC e ai font TS esistono giagrave salvo che eventualmente sonocommentate quindi non appaiono attive

11824 Installare un set di font da zero

Supponiamo di voler usare i font per i lettori ottici di caratteri i font OCR Sene possono scaricare dagli archivi ctan i file sorgente per METAFONT questisono i font da ocrb5mf a ocrb10mf piugrave i file di servizio non egrave difficile nelproprio albero di cartelle creare una nuova cartella fontssourceocr edepositarvi i sorgenti mf naturalmente avendo modificato le cartelle eo i lorocontenuti bisogna aggiornare il database dei nomi dei file

Se ci si accontenta dei file rasterizzati questo egrave tutto quel che serve Se sivogliono usare le versioni outline bisogna crearsele

236 CAPITOLO 11 LATEX I CARATTERI DA STAMPA1

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo0000euro

1 2 3frasl

7fl

8 9

10ff

11fi

12 13ffi

14ffl

1500

rsquo020 ı16

17

`18

acute19

ˇ20

˘21

macr22

˚23

cedil24

szlig25

aelig26

œ27

oslash28

AElig29

Œ30

Oslash3110

rsquo040 32

33

34

35

$36

37

amp38

rsquo39

(40

)41

42

+43

44

-45

46

4720

rsquo060 048

149

250

351

452

553

654

755

856

957

58

59

lt60

=61

gt62

6330

rsquo100 64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

rsquo120 P80

Q81

R82

S83

T84

U85

V86

W87

X88

Y89

Z90

[91

92

]93

ˆ94

_9550

rsquo140 lsquo96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

123

|124

125

˜126

uml127

70

rsquo200 Ł128

129

sbquo130

ƒ131

bdquo132

hellip133

dagger134

Dagger135

ˆ136

permil137

Š138

lsaquo139

Œ140

Ž141

^142

minus143

80

rsquo220 ł144

lsquo145

rsquo146

ldquo147

rdquo148

bull149

ndash150

mdash151

˜152

trade153

š154

rsaquo155

œ156

ž157

~158

Ÿ159

90

rsquo240 160

iexcl161

cent162

pound163

curren164

yen165

brvbar166

sect167

uml168

copy169

ordf170

laquo171

not172

-173

reg174

macr175

A0

rsquo260 deg176

plusmn177

2178

3179

acute180

micro181

para182

middot183

cedil184

1185

ordm186

raquo187

frac14188

frac12189

frac34190

iquest191

B0

rsquo300 Agrave192

Aacute193

Acirc194

Atilde195

Auml196

Aring197

AElig198

Ccedil199

Egrave200

Eacute201

Ecirc202

Euml203

Igrave204

Iacute205

Icirc206

Iuml207

C0

rsquo320 ETH208

Ntilde209

Ograve210

Oacute211

Ocirc212

Otilde213

Ouml214

times215

Oslash216

Ugrave217

Uacute218

Ucirc219

Uuml220

Yacute221

THORN222

szlig223

D0

rsquo340 agrave224

aacute225

acirc226

atilde227

auml228

aring229

aelig230

ccedil231

egrave232

eacute233

ecirc234

euml235

igrave236

iacute237

icirc238

iuml239

E0

rsquo360 eth240

ntilde241

ograve242

oacute243

ocirc244

otilde245

ouml246

divide247

oslash248

ugrave249

uacute250

ucirc251

uuml252

yacute253

thorn254

yuml255

F0

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

Parametri

inclinazione 000000 x-height 430549 ptspazio interparola 333332 pt larghezza del quadrato 1000000 ptallungamento interparola 166665 pt spazio extra 111111 ptaccorciamento interparola 111111 pt corpo nominale 1000000 ptalfabeto maiuscolo 18618060 pt alfabeto minuscolo 12758364 pt

Tabella 1113 Il font latino con codifica LY1

11825 Creare i font vettoriali con mftrace

Bisogna installare nel proprio calcolatore nelle apposite cartelle che conservano iprogrammi specifici della macchina i file mftrace potrace e FontForge tutti e trepossono essere scaricati dalla rete si possono trovare i luoghi da cui scaricareil tutto cercandoli con un motore di ricerca a piacere Esistono versioni perogni piattaforma tranne che per le macchine Windows su queste perograve si puograveinstallare un ambiente di simulazione di UNIX che si chiama CygWin e allrsquointernodi questo si possono installare i programmi suddetti come se la piattaformaWindows fosse una piattaforma UNIX

Dalla finestra comandi terminal console o xterm che dir si voglia si lanciaprima lrsquoapplicativo per creare il file metrico mktextfm e poi il programmamftrace seguito dalle opzioni e dal nome del file da trasformare per esempio

mktextfm ocrb5mftrace -f PFB --simplify --potrace ocrb5

Spesso sarebbe desiderabile specificare anche un file di codifica con lrsquoestensioneenc se non si specifica nulla mftrace assume il file di codifica tex256encche corrisponde alla codifica T1 se si convertono al formato vettoriale dei fontin alfabeti diversi o con un numero di caratteri diverso da 256 si puograve semprepredisporre il vettore di codifica con lo stesso schema del file tex256enc ma

118 LA GESTIONE DEI FONT 237

ovviamente con contenuti diversi Egrave opportuno usare per i nomi dei caratteriquelli che si trovano nei file afm (Adobe Font Metrics vedi piugrave avanti) oppure inomi della codifica UNICODE Per questa operazione si puograve usare direttamenteil programma FontForge lrsquooperazione non egrave complicata ma si rinvia il lettorealla documentazione dello stesso programma FontForge

Se le variabili di environment anche per CygWin sono a posto mftraceproduce i font pfb al massimo quel che resta da fare consiste nello spostarei file prodotti nelle opportune cartelle eventualmente creandole apposta nelnostro esempio nelle cartelle fontstfmocr e fontstype1ocr esi aggiorna il solito database dei nomi dei file

Se si vuol sapere che cosa succede durante lrsquoesecuzione di mftrace si sappia chedapprima viene lanciato METAFONT sul file sorgente ocrb5mf con un fortissimoingrandimento il file di uscita di METAFONT viene convertito in un altro formatoi cui dettagli non ci interessano e questo file viene passato a potrace Questo deter-mina i poligoni che descrivono al meglio i contorni delle lettere rasterizzate di cuiegrave necessario determinare le spline9 di Beacutezier componenti il lavoro viene ripetutoper ogni carattere nel font e tutti questi poligoni vengono utilizzati per determi-nare i nodi e i punti guida delle curve di Beacutezier osculatrici dei contorni da definirecon queste informazioni e altre tratte dal file tfm che era stato precedentementegenerato da mktextfm nel primo passo viene costruito un file temporaneo cheviene poi inviato a FontForge con lrsquoordine di semplificare le curve che descrivono icontorni e di costruire il file ocrb5pfb Certo egrave piugrave complicato da dire che da fare

Creati i file pfb di tutta la collezione si crea una semplice mappa in questocaso i font sono pochi e si puograve procedere a mano in condizioni diverse condecine o centinaia di font bisogna sfruttare le potenzialitagrave del proprio sistemaoperativo La mappa saragrave dunque nel nostro semplice caso

ocrb5 ocrb5 ltocrb5pfbocrb6 ocrb6 ltocrb6pfbocrb7 ocrb7 ltocrb7pfbocrb8 ocrb8 ltocrb8pfbocrb9 ocrb9 ltocrb9pfbocrb10 ocrb10 ltocrb10pfb

e la si puograve chiamare ocrbmap mettendola in una cartella dove updmap la puogravetrovare cioegrave nellrsquoalbero locale nella cartella fontsmap come egrave giagrave statodescritto per i font greci al punto 3 nella pagina 229 in ogni caso bisognaaggiornare il database dei nomi dei file Ovviamente bisogna poi aggiungere lariga10

Map ocrbmap9La parola spline indica in inglese quello strumento di disegno formato da un curvilinee

flessibile che consente di adattarlo a determinati profili Serviva ai disegnatori per eseguiredei raccordi molto ben fatti nel disegno di linee curve nei disegni tecnici Le curve spline diBeacutezier svolgono in un certo senso la stessa funzione nel senso che se ne puograve fissare il punto dipartenza e il punto di arrivo specificandone anche la tangente e la curvatura Esempi di curvedel secondo e del terzo ordine sono mostrati nella figura 72

10Se si vuole consentire sia lrsquouso dei font vettoriali sia quello dei font a matrici di puntiinvece di Map basta specificare MixedMap Percheacute questo funzioni correttamente bisogna che sulparticolare calcolatore siano disponibili sia i sorgenti mf sia i file binari pfb Egrave per questoche il file updmapcfg distribuito con il sistema TEX si incontrano spesso delle righe con ilcomando iniziale MixedMap

238 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

al file updmap-localcfg e procedere come si egrave spiegato con i font greci nellapagina 229 e successive

11826 I file di descrizione dei font

Bisogna ancora creare il file fd per poter accedere a questi font da latex e dapdflatex Detto file molto semplice appare cosigrave

ProvidesFileuocrfd[20070805 v10 Custom OCR font definitions]

DeclareFontFamilyUocrhyphencharfont-1DeclareFontShapeUocrmn

lt5gtlt6gtlt7gtlt8gtlt9gtgenocrlt10-gtocr10

endinput

Lrsquoencoding di questo font egrave dichiarato lsquounknownrsquo non percheacute sia del tuttosconosciuto ma percheacute esso non egrave completo come quello dei font che rispettanoper esempio la codifica OT1 Viene specificato il codice -1 per la lineetta dilsquoa caporsquo siccome nessun carattere ha lrsquoindirizzo -1 questo significa che le parolescritte con questo font non possono venire divise in sillabe

La famiglia viene definita con un nuovo nome cosiccheacute egrave necessario definireanche un comando per poter scegliere questa famiglia Egrave conveniente allorapredisporre un piccolo file di estensione che contenga tutto il necessario

ProvidesPackageocrsty[20070805 v10 Extension package for using OCR fonts]

inputuocrfdDeclareRobustCommandocrfamily

fontencodingUfontfamilyocrselectfontDeclareTextFontCommandtextocrocrfamilyendinput

In questo modo la dichiarazione ocrfamily dichiara di voler usare i font perlettura ottica mentre il comando textocr esegue la stessa operazione sul suoargomento provvedendo anche se occorre allrsquoinserimento della correzione italica

Si noti che nel file fd i corpi da 5 pt a 9 pt sono ricavati ciascuno dal suofile specifico mentre i corpi da 10 pt in su sono tutti ricavati per (eventuale)ingrandimento del font disegnato per il corpo di 10 pt Per maggiori delucidazionisulla manipolazione dei font e dei loro file di definizione il lettore egrave invitato ariferirsi al file doclatexbasefntguidepdf

A questo punto il proprio sistema se non si sono commessi errori egrave prontoper usare senza problemi i nuovi caratteri per lettura ottica

1183 Installare font commercialiLrsquoinstallazione di font commerciali font Type1 o TrueType giagrave presenti sulproprio calcolatore corrisponde a fare operazioni simili a quelle viste nel paragrafoprecedente ma in un certo senso piugrave facili

I font Type1 sono disponibili insieme ai rispettivi file metrici con estensioneafm i font TrueType non ne hanno bisogno percheacute le informazioni metrichesono giagrave contenute nel file ttf che li descrive

118 LA GESTIONE DEI FONT 239

Ogni sistema TEX contiene giagrave alcuni file eseguibili fra i quali spiccanoafm2tfm e ttf2pt1 Il primo programma accetta numerose opzioni da rilevaredalla documentazione e produce un file tfm adatto al sistema TEX partendo daun file in formato afm esso produce anche il file con il vettore di codifica enc eil file virtuale vf che consentono a ogni programma di composizione del sistemaTEX di trattare il font come se fosse un normale font generato con METAFONTnel momento in cui si tratta di generare un file di uscita in formato PostScripto PDF gli eseguibili appositi sanno dove trovare le mappe e le informazioni diricodifica per mettere i segni giusti nel file di uscita

Il programma ttf2pt1 invece trasforma il font TrueType in un font PostScriptType1 generando anche il file afm a questo si puograve applicare la procedura delcapoverso precedente

Come al solito bisogna fare attenzione ad aggiornare sempre il database deinomi dei file se i programmi non lo fanno da soli bisogna provvedere a creare lamappa specifica per ogni font trasformato e inserirne la riga apposita in un filemap da far leggere a updmap per generare i soliti tre file generali che verrannousati dai programmi destinati a produrre i file di uscita nel formato finale

Talvolta questi programmi specificando le opzioni giuste sono in grado diprodurre anche il file di descrizione fd per definire le nuove famiglie altrimentiegrave necessario provvedere a mano in modo autonomo

1184 Riassunto delle operazioni di gestione dei font edella loro connessione con lrsquointero sistema TEX

Vale la pena di riassumere graficamente il modo di operare del sistema TEXquando si usi LATEX o pdfLATEX Molte delle informazioni sono sparse in diversialtri capitoli ma qui dove si parla di font sembra il posto giusto per collegaretutto assieme

Nelle figure 1110ndash1114 i simboli grafici hanno i significati seguenti

Font I file che si riferiscono ai font in senso stretto sono rappresentati da cerchigialli

Programmi di sistema Sono rappresentati da rettangoli rosso chiaro

Programmi esterni Sono rappresentati da rettangoli azzurri

File accessori per la gestione dei font Sono rappresentati da cerchi verdi

File finali Sono rappresentati da cerchi marroncino chiaro lsquofile finalersquo indica ilfile che contiene un documento giagrave composto

Risorse esterne Sono gruppi di file di programmi eo di font da reperiregratuitamente in rete o onerosamente presso i rivenditori specifici Sonorappresentati da ellissi blu chiaro

Uscite Lrsquouscita su schermo su carta su lastre per fotolitotipografia o su altrisupporti sono rappresentati mediante ellissi arancione

Nella figura 1110 sono rappresentati i due processi di composizione descrittiin questo testo quello attraverso LATEX e quello attraverso pdfLATEX Si noti lasemplicitagrave del processo attraverso LATEX a confronto con la relativa complicazioneattraverso il processo pdfLATEX Il primo richiede solo il file sorgente e il file

240 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

CBeccari

ndashti

kzpi

cture

1

TEX system

PostScript

TrueType ttf

pfb

afm

mf

ttf2pt1

pfb

afm afm2tfm

enc

vf

tfm

map

METAFONT

mftrace

editor map

pfb

tfm

pk

map1

mapn enc

editorupdmapcfg

updmap

dvipdfmmap

dvipsmap

pdftexmap

tex

vf tfm pfb ttf

pdfLATEX pdf

pdftexmap

tex LATEX dvi

tfm

Figura 1110 Schema grafico del processo di composizione

CBeccari

ndashti

kzpi

cture

2

vf

tfm

dvi

pfb dvipdfmmap

dvipdfm pdf

vf

tfm

dvi

pfb

psfontsmap

dvips ps pstopdf pdf

pdf

pdfdriver

schermostampa

ps

psdriver

schermostampa

dvipk vf

dvidriver

schermostampa

Figura 1111 Presentazione allrsquoesterno dei risultati della composizione

metrico dei font usati e in uscita presenta il risultato lsquofinalersquo mediante un filedvi Questo file egrave finale solo in senso logico percheacute comunque per essereutilizzato ha ancora bisogno di trasformazioni specialmente se vi sono stateincluse delle immagini ottenute da file esterni

Al contrario il processo di composizione mediante pdfLATEX egrave completo e ilfile finale si puograve considerare definitivo per fare ciograve perograve esso ha bisogno di tuttii file concernenti i font specialmente quelli di tipo outline

Il file dvi puograve essere visualizzato eo stampato direttamente mediantesoftware che solitamente fa giagrave parte del corredo del sistema TEX saragrave il visua-lizzatore YAP di MiKTEX oppure xdvi di Linux oppure altri programmi similiLo stesso puograve dirsi del file pdf in uscita da pdfLATEX cosigrave come del file psin uscita dal convertitore dvips nel caso che sia richiesto questo formato perlrsquouso successivo Nella figura 1111 sono rappresentati graficamente i processi dipresentazione mediante i vari programmi specifici e sono messi in evidenza i filedi cui necessitano con particolare rilievo per quelli che riguardano i font

Generalmente perograve il file dvi ha bisogno di essere trasformato o in filepdf o in file ps questrsquoultimo a sua volta puograve richiedere la trasformazioneulteriore in file pdf il processo di conversione egrave rappresentato graficamentenella figura 1112 ancora evidenziando lrsquoimportanza dei file concernenti i font

Come si vede da queste figure i file direttamente o indirettamente legati

118 LA GESTIONE DEI FONT 241CBeccari

ndashti

kzpi

ctur

e

2

vf

tfm

dvi

pfb dvipdfmmap

dvipdfm pdf

vf

tfm

dvi

pfb

psfontsmap

dvips ps pstopdf pdf

pdf

pdfdriver

schermostampa

ps

psdriver

schermostampa

dvipk vf

dvidriver

schermostampa

Figura 1112 Processi di conversione dei vari formati di uscita dai programmi dicomposizione

ai font sono tanti e spesso bisogna crearli apposta con il supporto delle utilityfornite con il sistema TEX o con lrsquoausilio di programmi esterni La figura 1113mostra in forma schematica le risorse esterne da cui trarre i font necessari e cometrasformare questi ultimi in modo da renderli usabili con il sistema TEX Si vedechiaramente che i font in formato METAFONT sono i piugrave facili da usare il che egravelogico visto che TEX e METAFONT sono programmi lsquofratellirsquo entrambi concepitida Donald Knuth e sono sempre distribuiti assieme e completi di una buonacollezione di file sorgente di tipo mf Ma i font outline distribuiti secondo lostandard Adobe (PostScript Type1) oppure i font TrueType nati da un progettocomune della Adobe e dalla Microsoft richiedono ulteriori trattamenti se nonaltro percheacute non sono dotati dei file tfm che bisogna quindi generare ma spessohanno anche codifiche diverse certamente diverse da quelle che TEX si aspettae quindi sono necessarie conversioni a diversi livelli I programmi che operanoqueste conversioni e il loro modo di procedere sono illustrati schematicamentenella figura 1113 in questa figura per altro egrave indicata anche la conversione deifont mf in font di tipo vettoriale (mediante il programma mftrace) che sonocosigrave utili specialmente per la visualizzazione su schermo dove egrave necessario poteringrandire o rimpicciolire la schermata e quindi il suo contenuto secondo lenecessitagrave di lettura

In particolare le mappe parziali dei font disponibili sulla macchina particolaresulla quale viene eseguita la composizione vanno unite in modo coerente fino

242 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

CBeccari

ndashti

kzpi

ctur

e

1

TEX system

PostScript

TrueType ttf

pfb

afm

mf

ttf2pt1

pfb

afm afm2tfm

enc

vf

tfm

map

METAFONT

mftrace

editor map

pfb

tfm

pk

map1

mapn enc

editorupdmapcfg

updmap

dvipdfmmap

dvipsmap

pdftexmap

tex

vf tfm pfb ttf

pdfLATEX pdf

pdftexmap

tex LATEX dvi

tfm

Figura 1113 Trasformazioni di formato dei font e generazione dei file ausiliari

CBeccari

ndashti

kzpi

ctur

e

1

TEX system

PostScript

TrueType ttf

pfb

afm

mf

ttf2pt1

pfb

afm afm2tfm

enc

vf

tfm

map

METAFONT

mftrace

editor map

pfb

tfm

pk

map1

mapn enc

editorupdmapcfg

updmap

dvipdfmmap

dvipsmap

pdftexmap

tex

vf tfm pfb ttf

pdfLATEX pdf

pdftexmap

tex LATEX dvi

tfm

Figura 1114 Gestione delle mappe dei font

a formare le mappe generali di cui necessitano i programmi di conversione deifile finali Il procedimento egrave indicato schematicamente nella figura 1114 ilprogramma indicato con il nome lsquoeditorrsquo egrave un qualunque programma di gestionedi file testuali ASCII potragrave essere Notepad dei sistemi Windows oppure vimdei sistemi Linux ma va benissimo anche lo shell editor usato per gestire i filesorgente da comporre con il sistema TEX

119 CONCLUSIONI 243

119 ConclusioniTutte queste operazioni descritte forse con troppo dettaglio possono impaurire ilneofita tuttavia ci si puograve consolare pensando che lrsquoinstallazione di un nuovo fontnon egrave una operazione da eseguirsi tre volte al giorno drsquoaltra parte se cosigrave fossequeste operazioni finirebbero per venire eseguite in modo del tutto automatico enon apparirebbero cosigrave intricate

Ci si potrebbe domandare percheacute il sistema TEX che egrave dotato di un grannumero di font accessori non sia dotato anche di un programma che consenta dieseguire tutte le operazioni indicate in questi ultimi paragrafi in modo automaticoBuona domanda Una risposta possibile egrave che per ogni font o collezione di fontbisogna agire in modo diverso da ogni altro font o collezione I nomi le codificheil contenuto dei file che contengono le informazioni che descrivono i vari fontpotrebbero essere forse oggetto di un programma o di uno script in linguaggiobash oppure python oppure perl oppure java oppure ma le possibilitagrave dierrore sono cosigrave numerose che il lavoro del programmatore diventerebbe troppooneroso specialmente in relazione al fatto che lrsquoinstallazione di nuovi font nonavviene come si egrave detto tre volte al giorno

Chi scrive generalmente reinstalla i propri font non standard una voltaallrsquoanno quando aggiorna il suo sistema talvolta aggiunge un nuovo font di cuicrea a mano la mappa e di cui aggiunge il nome ad un file locale localmap etutto il resto si ripete di anno in anno senza bisogno di avere un comportamentodiverso per ogni nuovo font Chi scrive spende diciamo cinque minuti allrsquoannoper reinstallare i propri font vecchi e nuovi egli opera a mano senza bisogno dinessuno script in linguaggio arcano e lo fa percheacute si egrave organizzato bene con ilproprio albero personale e con le proprie impostazioni locali in modo da nondover ogni volta ristudiare come si fa Al massimo fra un aggiornamento e ilsuccessivo del sistema TEX il TEX Live Team ha deciso qualche cambiamentoin merito alla struttura standard delle cartelle del sistema TEX il TDS TEXDirectory System per cui bisogna spostare qualche file da qualche cartella aqualche altra11 ma non egrave un problema

11Egrave successo in questi ultimi anni dal 2007 per la grande vitalitagrave del sistema TEX non egravequindi il caso di lamentarsi

Capitolo 12

LATEX le presentazioni

121 IntroduzioneNon egrave possibile tralasciare nemmeno in una guida introduttiva lrsquoargomentodelle presentazioni

Per lsquopresentazionirsquo si intendono quelle proiezioni che accompagnano unaconferenza un discorso pubblico un seminario una lezione eccetera

Se il contenuto delle schermate da proiettare egrave prevalentemente o completa-mente testuale al massimo include delle figure vanno benissimo i programmiliberi oppure commerciali i quali spesso producono proiezioni molto accatti-vanti ricche di effetti speciali e piene di parti colorate spessissimo anche losfondo della schermata contiene delle parti disegnate o delle fotografie o il logodellrsquoistituzione di appartenenza dellrsquooratore percheacute non disturbino la letturaqueste immagini di sfondo dovrebbero essere molto chiare o comunque alterareil meno possibile il colore dominante dello sfondo

Tuttavia preparare delle belle presentazioni egrave unrsquoarte se poi la presentazionedeve contenere dello scritto tecnico (formule matematiche schemi filologici oaltre cose non facenti parte della prosa lsquonormalersquo) allora egrave opportuno usareLATEX il che comporta la necessitagrave di saper usare LATEX al meglio delle suepotenzialitagrave bisogna conoscere lrsquoarte di comporre con LATEX oltre che lrsquoarte dipredisporre delle schermate efficaci per il trasferimento sintetico dellrsquoinformazionedallrsquooratore allrsquoascoltatore

122 Le classi per le presentazioniLATEX nasce con una semplicissima classe per le presentazioni slides nonostantela sua semplicitagrave estensibile facilmente con i vari pacchetti di estensione descrittianche negli altri capitoli essa contiene alcuni elementi importanti da tenerepresente

1 Poicheacute lrsquoascoltatore recepisce e ricorda meglio quello che legge che sente eche vede sullo schermo egrave importante che ogni slide o schermata contengaun solo concetto e che lrsquoascoltatore non sia sottoposto a piugrave di un nuovoconcetto al minuto

245

246 CAPITOLO 12 LATEX LE PRESENTAZIONI

In realtagrave un concetto puograve essere svolto anche su due o tre slide ma egravepreferibile essere sintetici e non egrave il caso di sommergere lrsquoascoltatore sottouna valanga di slide ognuna necessariamente proiettata per poco tempoPer questo scopo egrave quindi necessario essere molto sintetici

2 I due elementi illustrati sopra implicano che ogni slide non deve contenerepiugrave di una dozzina di righe di testo (e 12 forse sono giagrave tante) contandoanche le righe occupate da espressioni matematiche o da testi in alfabetispeciali o contenenti segni speciali ognuna di queste righe va forse contataper due

3 Perciograve se la slide viene stampata su fogli di metacrilato (i lucidi chiamatianche impropriamente lsquotrasparenzersquo) allora i font lsquonormalirsquo devono essereoltre che facilmente leggibili anche di corpo molto grande La classe slidesusa di default per il corpo normale il corpo da 20 pt (per lrsquoesattezza19907 pt) della famiglia senza grazie per migliorare la leggibilitagrave questafamiglia in realtagrave egrave una famiglia speciale con lrsquoaltezza delle minuscolemaggiore del solito abcdefg lrsquoesempio ha lo stesso corpo usato nel restodel testo ma come si vede le sue minuscole sembrano decisamente piugravegrandi in realtagrave egrave piugrave grande la x-height ma sono piugrave corti gli ascendenti

4 Tenendo conto che lo schermo di proiezione ha solitamente il rapporto4 3 fra base ed altezza anche il foglio di metacrilato o la slide vienestampata facendo riferimento alla base come il lato lungo del foglio ebisogna usare nella dichiarazione di classe lrsquoopzione landscape in questomodo aumenta un poco la giustezza ma diminuisce lrsquoaltezza e il numerodi righe disponibile rimane necessariamente basso non egrave possibile perciogravemettere troppa informazione in ciascuna slide

5 La classe slides non consente di eseguire animazioni specialmente si sifa uso dei lucidi di metacrilato altre classi lo consentono se e solo se nonsi usano i lucidi ma si proietta direttamente dal PC o dal laptop medianteun videoproiettorePerograve con lrsquouso del pacchetto color egrave possibile colorare lo sfondo e sceglierecolori diversi di ogni parte della slide composta con LATEX sia testo siamatematica sia disegni eseguiti con lrsquoambiente picture o altri ambientinativi del sistema TEX

123 Altre classi per le presentazioniOgni distribuzione del sistema TEX contiene diverse classi per predisporre ottimepresentazioni si possono citare i pacchetti prosper e il suo successore powerdotseminar pdfscreen pdfslide ppower4 texpower per finire con beamer

Ognuno di questi pacchetti produce slide bellissime e le presentazioni didimostrazione che accompagnano ogni pacchetto fra la sua documentazionesono tutte accattivanti

Ogni pacchetto offre una o piugrave classi per la predisposizione di vari tipi dipresentazione ognuno finisce poi per affezionarsi ad un particolare pacchettoma le possibilitagrave di personalizzazione sono tali e tante che non si corre il rischiodi eseguire presentazioni con lo stesso stile standard

124 LA CLASSE BEAMER 247

124 La classe beamer

In inglese beamer significa videoproiettore Il pacchetto beamer mette a dispo-sizione del compositore sia la classe beamer sia una serie di file di estensionemodulari con i quali egrave possibile personalizzare le proprie presentazioni e le mo-dalitagrave per attribuire valori diversi ai diversi parametri che caratterizzano sia illayout delle slide sia i tipi di comandi o di segni particolari che appaiono nelleslide

Queste sono concepite con file PDF interattivi per cui ogni slide contieneanche disegnati in colore molto tenue tanto da non disturbare la letturaanche i lsquopulsantirsquo per muoversi nella sequenza di slide che costituiscono lapresentazione Inoltre egrave possibile avere a disposizione una specie di indice generaledella presentazione sempre visibile cosigrave che gli ascoltatori possano seguire ilcambiamento di colore del titoli delle lsquosezionirsquo che costituiscono la presentazionequesti stessi titoli costituiscono degli hyperlink utili allrsquooratore per navigarerapidamente attraverso la propria presentazione senza avere la necessitagrave di farscorrere la presentazione fino a trovare la slide giusta

La classe prevede lrsquouso dei pacchetti pgf e xcolor cosigrave che si possano sfruttarele molteplici funzionalitagrave del pacchetto pgf per quel che riguarda la possibilitagravedi eseguire dei bellissimi disegni o per inserire le funzionalitagrave di quel pacchettoper lrsquoinserimento delle immagini esterne

Invece il pacchetto xcolor consente di gestire molto semplicemente i coloriper ottenere sia colori misti sia gradienti di colore lineari o sferici il tutto concomandi di alto livello molto semplici per il compositore

Le slide possono avere il loro contenuto esposto incrementalmente vale a direche per esempio la dimostrazione di un teorema puograve essere fatta esponendouna dopo lrsquoaltra le frasi che ne costituiscono la sequenza logica senza che iltesto giagrave esposto cambi posizione via via che nuovo testo viene esposto Unodei vantaggi per lrsquooratore egrave che quanto verragrave esposto in slide successive apparescritto in colore chiarissimo anche sulle slide precedenti cosigrave che lrsquoascoltatorequasi non se ne accorge ma lrsquooratore ne trae un notevole aiuto percheacute sa giagrave inanticipo vedendola quale saragrave la slide successiva

Ovviamente la classe beamer consente di eseguire delle transizioni fra unaslide e lrsquoaltra agevolando lrsquoascoltatore nel capire sia i collegamenti fra una slidee la successiva sia con transizioni diverse nel capire quando si passa da unasezione allrsquoaltra della presentazione

La predisposizione delle slide egrave piuttosto semplice ognuna corrisponde ad unambiente frame ogni frame accetta un titolo e il testo della slide se la slide deveessere presentata in fasi successive il file di uscita conterragrave diverse lsquopaginersquo mail frame resta invariato semplicemente i comandi per lrsquoesposizione incrementaledelle varie parti della slide fanno parte nel file sorgente del testo contenuto nelframe

Non egrave possibile in un testo stampato presentare questi effetti dinamici ma siinvita il lettore ad esaminare con attenzione uno dei file lsquodemorsquo che accompagnail pacchetto beamer si trovano tutti in doclatexbeamerexamplessuggerisco beamerexample5pdf ma certi file sono solo per presentare alcunidettagli altri sono per presentazioni complete Un altro esempio egrave formato dallacoppia di file beamerexample2articlepdf e beamerexample2beamerpdfderivati dal medesimo file sorgente a seconda di quali parametri vengono stabilitinel preambolo dallo stesso sorgente si possono ricavare sia la presentazione sia

248 CAPITOLO 12 LATEX LE PRESENTAZIONI

un articolo che puograve costituire direttamente il materiale lsquocartaceorsquo da distribuireallrsquouditorio

125 La documentazioneTutti i pacchetti nominati dispongono della loro propria documentazione sulpercorso doclatex〈pacchetto〉 Il file di documentazione di beamer sichiama beameruserguidepdf ed egrave particolarmente interessante non solo per-cheacute contiene una documentazione molto ben fatta tenendo conto anche dellaversatilitagrave del pacchetto e quindi della moltitudine di comandi e ambienti cheesso fornisce ma anche per le preziose informazioni sulla preparazione di presen-tazioni professionali questo genere di informazioni non egrave facilmente reperibile inaltra documentazione o in altri libri

La sostanza egrave che quasi tutto quello che egrave opportuno fare da un punto di vistatecnico-compositivo egrave disponibile con LATEX e con i comandi messi a disposizionedai pacchetti di servizio pgf e xcolor ma quello che deriva dalla professionalitagravee dal buon gusto non puograve e non egrave solitamente descritto da nessuna parte tranneappunto nel manuale di beamer

Egrave sorprendente notare come la maggior parte delle presentazioni compostecon noti programmi dedicati sia commerciali sia freeware pur essendo queiprogrammi del tutto validi per lo scopo peccano percheacute gli autori non conoscevanoe non avevano nessun modo di ricavare dalla documentazione le regole di stilee di buon gusto per la predisposizione di slide efficaci queste sono efficaci sesono prive di quegli elementi lsquodecorativirsquo che invece di favorire la trasmissionedella comunicazione distraggono lo spettatoreascoltatore il quale alla fine dellaconferenza o della lezione si ricorda di queste animazioni ma non si ricorda diquello che ha detto lrsquooratore

Egrave quindi assai raccomandabile leggersi attentamente il manuale di beamersi impareranno moltissime cose che permetteranno di usare lo strumento com-positivo al meglio per ottenere lo scopo di una presentazione cioegrave quello ditrasmettere un messaggio allrsquoascoltatore nel modo piugrave efficace possibile

126 Una breve presentazioneNella figura 121 sono rappresentate 8 slide corrispondenti a 5 frame di unabrevissima presentazione Esse sono disposte in verticale la prima colonnacontiene le slide da 1 a 4 e la seconda colonna da 5 a 8

Il codice per produrre queste slide egrave il seguente e serve per interpretare ilrisultato ottenuto nelle slide rappresentate nella figura 121

file per produrre alcune slide per GuidaGuitdocumentclassbeamer PreambolousethemeAnnArboruseoutertheme[right]sidebarsetbeamercoloralerted textfg=red90blackusepackage[T1]fontencusepackage[latin1]inputencusepackagepgf

126 UNA BREVE PRESENTAZIONE 249

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

I numeri complessiConferenza internazionale

del Gruppo Italiano degli utenti di TEX

Mario Rossi

guIt

Pisa 2022 ottobre 2015

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 1 5

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

I numeri complessi nascono nel 500

1 Nel XVI secolo Tartaglia e Cardano introducono la radicequadrata di minus1

2 Il nome di unitagrave immaginaria viene creato da ReacuteneacuteDescartes nel 1637

3 Gauss nel 1799 contribuisce con i suoi scritti a diondere inumeri complessi

4 Hamilton nel 1833 pubblica la teoria dei numeri complessi

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 4 5

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

Indice

1 Introduzione storica

2 Nascita dei numeri complessi

3 I numeri complessi in pict2e

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 2 5

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

I numeri complessi nascono nel 500

1 Nel XVI secolo Tartaglia e Cardano introducono la radicequadrata di minus1

2 Il nome di unitagrave immaginaria viene creato da ReacuteneacuteDescartes nel 1637

3 Gauss nel 1799 contribuisce con i suoi scritti a diondere inumeri complessi

4 Hamilton nel 1833 pubblica la teoria dei numeri complessi

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 4 5

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

Una breve storia dei numeri

Allinizio del vii secolo gli Indiani inventarono la notazioneposizionale e le nove cifre dall1 al 9 lo zero veniva detto avoce ma non aveva ancora un suo segno

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 3 5

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

I numeri complessi nascono nel 500

1 Nel XVI secolo Tartaglia e Cardano introducono la radicequadrata di minus1

2 Il nome di unitagrave immaginaria viene creato da ReacuteneacuteDescartes nel 1637

3 Gauss nel 1799 contribuisce con i suoi scritti a diondere inumeri complessi

4 Hamilton nel 1833 pubblica la teoria dei numeri complessi

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 4 5

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

I numeri complessi nascono nel 500

1 Nel XVI secolo Tartaglia e Cardano introducono la radicequadrata di minus1

2 Il nome di unitagrave immaginaria viene creato da ReacuteneacuteDescartes nel 1637

3 Gauss nel 1799 contribuisce con i suoi scritti a diondere inumeri complessi

4 Hamilton nel 1833 pubblica la teoria dei numeri complessi

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 4 5

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

I numeri complessi come operatori geometrici

x

y

a

b

ϕ

m

vettore unitarioVisto come operatore geometrico il numero complessomeiϕ = a + ib agisce su un vettore in questa gura agisce sulvettore unitario blu lo scala tramite il fattore m e lo ruotadellangolo ϕ producendo il vettore rosso

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 5 5

Figura 121 Otto slide per una presentazione di cinque frame Vale la penadi osservare che i comandi usati per il diagramma dellrsquoultima slide sono statieseguiti con i comandi definiti nella versione del 2004 del pacchetto pict2e

250 CAPITOLO 12 LATEX LE PRESENTAZIONI

usepackagepict2ecurve2eusepackage[color]guitusepackage[italian]babel

beamertemplatetransparentcovereddynamic

titleI numeri complessisubtitleConferenza internazionaledel~Gruppo~Italiano~degli~utenti~di~TeXauthorMario RossiinstituteGuIT

datePisa 20--22 ottobre 2015

pgfdeclareimage[width=textwidth]CifreIndianeCifreIndianeVIIsecolo

pgfdeclareimage[width=155mm]guitlogoGuITlogo

logopgfuseimageguitlogo Fine del preambolo

begindocument Inizio della presentazione

beginframe Primo frame prima slidetitlepageendframe

beginframe Secondo frame seconda slideframetitleIndicetableofcontentsendframe

sectionIntroduzione storica

beginframe Terzo frame terza slideframetitleUna breve storia dei numeriAllrsquoinizio del textscvii secolo gli Indiani inventaronola notazione posizionale e le ltltnovegtgt cifre dallrsquo1 al 9lo zero veniva detto a voce ma non aveva ancora un suo segno

begincenterpgfuseimageCifreIndianeendcenterendframe

sectionNascita dei numeri complessi

126 UNA BREVE PRESENTAZIONE 251

beginframe Quarto frame diviso in quattro slideframetitleI numeri complessi nascono nel rsquo500beginenumerateitemlt1-gt Nel XVI secolo Tartaglia e Cardano introduconola radice quadrata di $-1$itemlt2-gt Il nome di emphunitagrave immaginaria viene creatoda Reacuteneacute Descartes nel 1637itemlt3-gt Gauss nel 1799 contribuisce con i suoi scrittia diffondere i numeri complessiitemlt4-gt Hamilton nel 1833 pubblica la teoria dei numericomplessiendenumerateendframe

sectionI numeri complessi in textttpict2e

beginframe Quinto frame ottava slideframetitleI numeri complessi come operatori geometricibegincenterunitlength=1mm

beginpicture(6040)put(00)vector(10)60put(601)makebox(00)[br]$x$put(00)vector(01)45put(145)makebox(00)[lt]$y$thicklinesput(00)textcolorredvector(346412)40thinlinesmultiput(40-5)(02)12line(01)1multiput(-523094)(20)20line(10)1put(411)makebox(00)[bl]$a$put(1241)makebox(00)[bl]$b$VectorArc(00)(200)30put(204)makebox(00)[bl]$varphi$put(20126)rotatebox30makebox(00)[b]$m$put(00)thicklinestextcolorbluevector(10)10put(5-1)textcolorbluemakebox(00)[t]vettore

unitarioendpicture

endcenterVisto come operatore geometrico il numero complesso$mmathsfe^mathsfivarphi=a+mathsfib$ agisce suun vettore in questa figura agisce sultextcolorbluevettore unitario blu lo scala tramiteil fattore alert$m$ e lo ruota dellrsquoangolo alert$varphi$producendo il alertvettore rossoendframe

enddocument

Nel preambolo appaiono diversi comandi alcuni dei quali sono giagrave familiariper invocare babel con lrsquoopzione italian al fine di comporre in italiano per

252 CAPITOLO 12 LATEX LE PRESENTAZIONI

invocare inputenc con lrsquoopzione latin1 per scrivere usando le lettere accentateper invocare fontenc con lrsquoopzione T1 per scrivere nel file di uscita con le lettereaccentate direttamente non ottenute per sovrapposizione del segno dellrsquoaccentosopra il segno della vocale Si invoca anche il pacchetto pgf per poter usufruiredella grafica avanzata e per la gestione delle figure il pacchetto guit per gestirei loghi del Gruppo degli utilizzatori Italiani di TEX i pacchetti pict2e e curve2eper disegnare in uno dei frame della presentazione

Ma ai fini di questo esempio sono interessanti gli altri comandi

usetheme serve per scegliere il layout generale dei frame sia come colori siacome disposizione delle informazioni che corredano la presentazione inquesto caso si egrave scelto lo stile AnnArbor che egrave uno dei vari stili messi adisposizione dellrsquoutente di beamer ovviamente questi sono predefiniti malrsquoutente puograve crearsi dei temi a suo piacimento partendo da zero oppurepuograve copiare e modificare quelli esistenti mediante gli altri comandi che sivedranno qui di seguito

useoutertheme serve per scegliere le parti che contornano i frame ai fianchiin questo caso si egrave scelto di usare la barra laterale (una striscia con uncolore di fondo nella quale appariranno certe informazioni) e si egrave scelto dimantenerla a destra

setbeamercolor serve per impostare uno dei colori che beamer usa per certitipi di testo in questo caso il colore dellrsquoallerted text il testo su cuirichiamare lrsquoattenzione viene impostato con il 90 di rosso e il restante(10) nero insomma si preferisce un rosso un porsquo piugrave scuro del normale

beamertemplatetransparentcovereddynamic egrave una dichiarazione con la qua-le si chiede che il testo da esporre in slide successive sia lsquotrasparentersquo moltochiaro in modo da intravvederlo anche quando il testo non egrave esposto

title author e date sono vecchie conoscenze ma beamer consente dispecificare anche un sottotitolo per la presentazione mediante il comandosubtitle Il modo particolare con cui egrave scritto il sottotitolo serve pergarantire che la frase sia divisa in due sottofrasi in modo che ognunacontenga le sue congiunzioni e preposizioni semplici o articolate

institution serve per inserire il nome o il logo dellrsquoistituzione a cui appartienelrsquooratore

pgfdeclareimage egrave un comando che consente di assegnare non solo certecaratteristiche allrsquoimmagine da usare in questo caso la larghezza ma ancheun nome con cui richiamarle insieme alle loro proprietagrave Attenzione non sitratta di una cosa da poco lrsquoimmagine GuITlogo viene riprodotta in ognislide quindi se ogni volta si ricaricasse il file del disegno si correrebbeil rischio di finire con file dalle dimensioni enormemente grandi usandoinvece pgfdeclareimage il particolare file che contiene lrsquoimmagine vienecaricato una sola volta grazie al fatto che il programma pdfLaTeX egrave ingrado di riutilizzare quellrsquoimmagine un numero illimitato di volte senzacopiarla ma facendovi riferimento mediante i suoi meccanismi interni digestione degli hyperlink

126 UNA BREVE PRESENTAZIONE 253

logo dice quali comandi devono venire usati per produrre lrsquoimmagine del logonel punto in cui questo deve apparire

pgfuseimage infine egrave il comando che riferendosi al nome di unrsquoimmagineprecedentemente dichiarato mediante pgfdeclareimage effettivamentecrea gli hyperlink interni che rendono visibile lrsquoimmagine nel punto voluto

Con lrsquoinizio del documento appaiono le dichiarazioni dei vari frame mediantei successivi ambienti frame Il primo frame contiene il titolo della presentazioneil comando titlepage fa sigrave che il frame sia composto in modo un porsquo differentedagli altri ma che contenga buona parte delle informazioni relative al titolo alpresentatore e alla sua istituzione di appartenenza allrsquoevento nellrsquoambito delquale si svolge la presentazione eccetera la prima slide e primo frame dellafigura 121 mostra tutti questi dettagli Nellrsquoangolo in basso a destra compareanche il numero progressivo del frame riferito al numero complessivo dei frameche compongono la presentazione nellrsquoesempio compare la frazione 15 per direche si tratta del primo di cinque frame

Il secondo frame contiene lrsquoindice della presentazione egrave utile che questo indicevenga presentato allrsquoinizio percheacute egrave un semplice mezzo per consentire allrsquooratoredi delineare allrsquouditorio il piano della sua presentazione Questo stesso elencoegrave collegato internamente agli hyperlink che consentono di navigare allrsquointernodella presentazione le stesse voci di questo indice compaiono anche nella barralaterale destra e si illuminano di un colore piugrave chiaro ogni volta che si entra adesporre le varie slide che compongono una data sezione gli ascoltatori seguendoquesta barra possono rendersi conto istante per istante del punto a cui egrave arrivatolrsquooratore senza bisogno di controllare lrsquoorologio con mosse ampie e vistose perfarsi notare dallrsquooratore affincheacute ci dia un taglio Spero che nessuno dei lettoridi queste note si trovi mai a fare o a subire queste azioni

Tra il secondo frame e il terzo egrave inserito un comando di sezionamento ilsuo contenuto consente di creare lrsquoindice ma non compare mai al di fuoridellrsquoindice egrave bene che una presentazione sia strutturata in sezioni eventualmenteanche in sottosezioni ma non si frammenti troppo lrsquoesposizione durante uncongresso egrave possibile che ogni oratore abbia a sua disposizione 20 minuti di cuicinque sono destinati alle risposte alle domande poste dagli ascoltatori quindi lapresentazione non dovrebbe contenere piugrave di 15ndash20 slide due o tre sezioni sonopiugrave che sufficienti per strutturare la presentazione Per una lezione magari didue ore egrave evidente che si puograve strutturare maggiormente ma anche in questacircostanza non egrave il caso di fare un unico file con un indice interminabile gliallievi si demoralizzerebbero specialmente tenendo conto che durante una lezioneassistita da una presentazione quanto viene detto egrave molto di piugrave di ciograve che sipotrebbe esporre con le sole parole o con lrsquoaiuto di una lavagna su cui scrivereo disegnare Una simile lunga lezione egrave meglio che sia strutturata in due parti(due distinti file) da presentare con un congruo intervallo fra le due

Si vede che nel terzo frame egrave richiamata per nome una delle due immaginiprecedentemente dichiarate e si fa uso di pgfuseimage che svolge il ruolo chenormalmente avrebbe il comando includegraphics del pacchetto graphicx

Il quarto frame corrisponde a 4 slide si vede che esso contiene una enumerazio-ne ma dopo ogni comando item compare una strana espressione due parentesilsquoacutersquo racchiudono un intervallo nel quale sono indicate le slide da proiettareil primo termine dellrsquoelencazione deve essere proiettato dalla slide 1 in poi ilsecondo elemento dalla slide 2 in poi eccetera la sintassi di questo intervallo di

254 CAPITOLO 12 LATEX LE PRESENTAZIONI

numerazione delle slide segue questa regola se le parentesi acute contengono unsolo numero senza il trattino la slide viene proiettata solo quando tocca a lei(in base al numero drsquoordine) se invece lrsquoespressione contiene un intervallo deltipo 2-3 il termine dellrsquoelencazione appare solo per le slide da 2 a 3 compresema non compare mentre viene proiettata la slide numero 1 neacute quando vieneproiettata la numero 4 Se manca un numero prima del trattino si intende ilnumero 1 se manca un numero dopo il trattino si intende fino allrsquoultima slidedi questo frame Il fatto perograve egrave che le slide dello stesso frame hanno tutte lostesso contenuto ma quelle che devono mostrare solo una parte del contenutoce lrsquohanno in colore trasparente molto chiaro quasi invisibile per chi non sa checosa crsquoegrave scritto ma non per lrsquooratore che invece intravede quanto appariragrave nellaslide successiva

Infine nel quinto frame crsquoegrave un disegno eseguito con i comandi dellrsquoambientepicture come ridefinito dal pacchetto pict2e ed esteso con i comandi definiti nelpacchetto curve2e

127 Creare un nuovo stileGli stili di presentazione nel gergo di beamer si chiamano temi piugrave precisamentecon la parola inglese theme la cartella di beamer contiene diverse sottocartelleper le configurazioni di diversi temi separati in modo modulare in modo checambiare un tema non vuol dire cambiare gli altri Se un autore vuole costruirsiuno stile di presentazione proprio puograve fare in modi diversi il piugrave semplice forseegrave quello di vedere sulla documentazione di beamer i vari temi giagrave predispostiscegliere quello che piugrave si avvicina allo stile desiderato e poi modificarlo caricandodopo quel tema gli altri moduli tematici uno per i colori uno per le barre unoper i campi da inserire nelle riga di testa e nella righe in calce eccetera

Lrsquoaltra via egrave quella di leggere con attenzione la documentazione relativa aitemi e scrivere autonomamente le macro che occorrono non egrave semplice ma nonegrave nemmeno impossibile

Il modo piugrave semplice egrave quello di ricorrere al sito httptitilogfreefrindexEnghtm in questo sito crsquoegrave solo una finestra con una slide di modello siclicca sulle varie parti che si vogliono personalizzare scegliendo dal menugrave sul latodestro sia i colori dello sfondo si quelli dei font da usare eccetera Alla fine siclicca il grosso bottone ovale contenente la scritta Finish e il gioco egrave fatto sottoalla slide modello crsquoegrave il bottone di download per scaricare direttamente il filesty contenente il tema appena creato Il nome di questo file deve cominciarecon la locuzione beamertheme e deve proseguire con una parola o locuzionemnemonica per esempio il nome del congresso durante il quale la presentazioneviene esposta ai congressisti per esempio ecoc2010 il file del tema avragrave quindi ilnome complessivo beametrhemeecoc2010sty Cliccando sul bottone Downloadsi esegue lo scaricamento del file sul proprio disco

Per usare questo nuovo tema basta inserire nel preambolo

usethemeecoc2010

Ovviamente dopo aver creato il nuovo tema nessuno vieta di eseguire delle altremodifiche agendo direttamente sul file ma il grosso egrave giagrave fatto in modo graficointerattivo quindi il tema dovrebbe essere giagrave a posto e usabile immediatamente

128 OSSERVAZIONI 255

128 OsservazioniQuesto capitolo serve per richiamare lrsquoattenzione del lettore sullrsquoopportunitagrave didocumentarsi a fondo nelle rispettive guide in merito alle potenzialitagrave dei varipacchetti citati Alcuni come beamer sono nati per produrre il risultato finaledirettamente in formato PDF altri come prosper e il suo discendente powerdotricorrono al pacchetto PSTricks e quindi devono subire due trasformazioni primadevono essere composti con LATEX per ottenere il file DVI poi questo deve esseretrasformato in formato PDF attraverso il doppio passaggio dvips e ps2pdf1 Ilgioco puograve valere la candela come si dice ma dipende dal tipo di disegni che egravenecessario inserire nelle slide

Egrave inevitabile che ognuno si affezioni ad una particolare classe anche percheacutebisogna usare molti nuovi comandi dai nomi talvolta non cosigrave facili da ricordareperciograve lrsquoabitudine diventa un fattore importante

Perograve parlando di arte di comporre con LATEX non si puograve negare che LATEXegrave uno strumento formidabile ma da solo non egrave sufficiente per predisporrepresentazioni efficaci e accattivanti La necessitagrave di documentarsi nellrsquoarte dellacomunicazione orale e visiva diventa essenziale padroneggiando bene questrsquoartediventa poi abbastanza facile usare lo strumento LATEX con i suoi pacchetti diestensione in modo da ottenere il meglio

1Il programma dvipdfm non egrave in grado di interpretare il codice PostScript complesso generatodai comandi di PSTricks

Capitolo 13

LATEX composizione di testiletterari e filologici

La composizione di testi letterari o filologici egrave forse un argomento troppospecializzato per un guida introduttiva come questa

Tuttavia dopo aver dedicato due capitoli alla matematica bisogna trattarela filologia che egrave una scienza molto esatta e che si avvale di una notazione bidi-mensionale come la matematica Nello stesso tempo sembra necessario trattaredelle classi che consentono di comporre testi letterari con stili assai diversi daquelli dei testi tecnico-scientifici Sigrave egrave vero che LATEX si egrave sviluppato inizialmentenel mondo delle scienze tecnico-scientifiche ma la sua forza compositiva egrave statariconosciuta anche da coloro che si occupano di scienze umane e non egrave un casoche fra i primi umanisti ci siano stati proprio i filologi

Talvolta egrave difficile distinguere un testo letterario da un testo filologico percheacuteil testo ha entrambe le caratteristiche quindi la suddivisione della descrizioneche ora si faragrave con sezioni distinte egrave puramente semplificativa e una sezione nonesclude lrsquoaltra

131 La composizione di testi letterariIn un certo senso la composizione di testi letterari come romanzi saggi e simili egravepiugrave semplice di quelli tecnico-scientifici in realtagrave segue delle norme e convenzionidi stile compositivo un porsquo differenti grazie al fatto che la mancanza di numerosiinserti in display permette di essere piugrave rigidi per quel che riguarda la scelta deifont la giustezza e lrsquointera geometria della pagina questa rigidezza si riflettespecialmente sullrsquoavanzamento di riga che deve assolutamente essere costante ereplicarsi esattamente sul recto e sul verso dello stesso foglio

Se non occorrono altre strutture compositive di sezionamento gerarchico lageometria della pagina egrave piuttosto semplice e permette di usare le proporzionidella gabbia descritte nei capitoli 14 e 19 Tuttavia merita citare qui alcunesemplici classi preconfezionate che consentono di comporre testi letterari moltosemplici

Fra i pacchetti che offrono queste possibilitagrave non puograve essere trascurata laclasse octavo Questa semplice classe si basa sulla classe book ma ha dei formatidi carta dai nomi molto britannici (vedi la tabella 131) ed egrave prevista per la

257

258 TESTI LETTERARI E FILOLOGICI

Formato base per altezza Formato base per altezzafoolscalp 108mm times 171mm crown 127mm times 191mmpost 122mm times 194mm largepost 137mm times 210mmdemi 143mm times 222mm medium 146mm times 229mmroyal 159mm times 254mm superroyal 171mm times 267mmimperial 191mm times 279mm

Tabella 131 Formati britannici della pagina

composizione in ottavo proprio come dice il nome I margini sono prefissatie la gabbia egrave proporzionata al corpo normale Sono disponibili tutte le strut-ture compositive della classe book ma secondo lo scrivente questa classe egraveparticolarmente indicata per i testi letterari Si richiama anzi lrsquoattenzione sulformato largepost la cui altezza corrisponde al formato A5 mentre la larghezzaegrave un poco inferiore facendo un porsquo di attenzione e sfruttando adeguatamente leindicazioni della documentazione egrave possibile stampare nellrsquoordine giusto fronteretro quattro fogli A4 per poter disporre di un fascicoletto di 8 pagine e 16facciate che puograve costituire una piccola brochure giagrave da sola oppure puograve costituireuna segnatura in ottavo di un documento piugrave vasto Stampate tutte la segnatureanche su una normale stampante per formato A4 le segnature possono esserecucite in modo da formare un libretto completo che risulta di un formato unporsquo piugrave stretto del formato A5 quando si siano rifilati i margini esterni conuna taglierina cosigrave da rispettare le dimensioni secondo il disegno originario delformato largepost

Per avere disponibile anche il formato A5 non egrave difficile modificare la classe(dopo averle cambiato il nome per esempio in ottavo ) aggiungendo le tre righerelative a questo formato

mainmattertrue Opzione a5paperDeclareOptiona5paper

setlengthpaperheight210mmsetlengthpaperwidth1485mm

DeclareOptionfoolscap

Anche la classe layaureo che verragrave descritta meglio nel capitolo 14 funzionadavvero bene per la stampa di lavori letterari in formato A4 ma con la gabbiae i margini disposti rispettando in parte la proporzione aurea Naturalmentequesta classe serve anche per i documenti tecnico-scientifici ma sempre secondolo scrivente egrave molto indicata per i testi letterari

Nel capitolo 14 viene descritta anche la classe memoir sempre secondolo scrivente questa classe egrave la piugrave versatile specialmente dopo le aggiuntepresenti nella versione del 2008 usando bene le opzioni disponibili e i comandidi personalizzazione egrave abbastanza agevole disporre di una gabbia adatta al testoletterario con una scelta assolutamente libera per i font dei titolini correntiin modo da rispettare facilmente le indicazioni fornite nel testo [41] indicateprincipalmente per i testi letterari

Se perograve si vogliono scrivere testi letterari di tipo antologico con le righenumerate sia per le parti in prosa sia per quelle in poesia allora conviene riferirsi

131 LA COMPOSIZIONE DI TESTI LETTERARI 259

al pacchetto technica il cui nome almeno nella documentazione egrave scritto ingreco τεχνικα

Si tratta di un lavoro molto completo e di largo respiro consente di comporreil testo letterario puro e semplice quello relativo ai libretti teatrali il testopoetico gli esempi allegati alla documentazione riportano testi in latino italianogreco classico inglese francese spagnolo e tedesco cosigrave da mostrare anche lepossibilitagrave compositive in lingue diverse dallrsquoitaliano Per ogni esempio egrave indicatolo stile della casa editrice eo della collana che egrave stato riprodotto con una certa(ottima) approssimazione La cosa curiosa egrave che i comandi della classe sono tuttiin latino e lrsquoautore Gianfranco Boggio-Togna afferma che lrsquoutente puograve ancheusare i casi per i nomi latini in modo da non urtare la sensibilitagrave dei latinistiche cosigrave possono scrivere dei costrutti di comandi in latino (quasi) perfetto Illdquoquasirdquo egrave drsquoobbligo percheacute buona parte dei comandi si riferisce a comandi diformattazione che certamente non hanno equivalenti latini nemmeno cercandosul vocabolario ufficiale edito dalla Tipografia Vaticana1

Quello che puograve trovare un poco stupiti egrave che gli esempi greci non fanno usodei font di default di babel e nemmeno del nome greek per lrsquoopzione per lalingua greca lrsquoautore non dice che il suo pacchetto non sia adatto ad essereusato con i font di default e con la normale opzione greek ma lui usa sempreesempi con la lingua ibycus che a sua volta fa riferimento ad un altro font grecocon una codifica chiamata Beta Code Lrsquoaspetto dei singoli caratteri egrave moltosimile anche se non proprio identico ai caratteri mostrati nella tabella 1111tuttavia la scrittura con una tastiera latina prevede una corrispondenza dei tastileggermente diversa e quel che piugrave conta i segni diacritici sono tutti indicatiinvariabilmente dopo la lettera a cui si riferiscono (tranne per le maiuscole dovevanno indicati prima) e vengono ottenuti con tasti diversi da quelli che vengonousati con i font di default Percheacute questa differenza Percheacute i grecisti molto spessofanno riferimento al Theasurus Linguae Graecae in rete e questo Thesaurus ha isuoi testi scritti in Beta Code per il letterato egrave quindi molto agevole servirsidel metodo ldquocopia e incollardquo per riportare brani giagrave presenti sul Thesaurus eper i quali sia concesso di operare in questo modo Il letterato risparmia nonpoco tempo e fatica ma principalmente risparmia un gran numero di errori dibattitura

Per altro egrave curioso che il Beta Code preveda nel file sorgente solo simboliASCII (e fin qui va bene) ma tutte le lettere devono essere maiuscole nel filesorgente gli applicativi che consentono di leggere i file sorgente giagrave resi in letteregreche rendono tutte le lettere in minuscolo a meno che la maiuscola non siamarcata con un asterisco La codifica Beta Code di ibycus egrave molto piugrave semplicenel senso che le minuscole vengono scritte con lettere minuscole e le maiuscolevengono scritte direttamente con lettere maiuscole un file sorgente scritto inlettere latine sfruttando il Beta Code non appare a prima vista molto diversodallo stesso testo scritto in lettere latine con la codifica di default del font usato

1Non crsquoegrave niente di ironico in questo riferimento la lingua latina egrave quella ufficiale nelloStato della Cittagrave del Vaticano vi egrave anche una Commissione apposita per adattare il latinocon neologismi o locuzioni inedite necessarie per riferirsi a oggetti eo a situazioni della vitacontemporanea Ricordo che ldquoaereo a reazionerdquo egrave stato reso con la locuzione ldquoaereonavis inversavi propulsardquo mentre ldquoslot machinerdquo egrave stata resa con ldquomachina nummis operatardquo Tutto ciogravedeve apparire sul vocabolario ufficiale il quale deve anche venire aggiornato piuttosto spesso acausa della velocitagrave con cui si formano nuovi concetti nelle altre lingue moderne

260 TESTI LETTERARI E FILOLOGICI

ΕΠΤΑ ΕΠΙ ΘΗΒΑΣ

ΕΤΕΟΚΛΗΣ

Κάδμου πολῖται χρὴ λέγειν τὰ καίριαὅστις φυλάσσει πρᾶγος ἐν πρύμνῃ πόλεωςοἴακα νωμῶν βλέφαρα μὴ κοιμῶν ὕπνῳεἰ μὲν γὰρ εὖ πράξαιμεν αἰτία θεοῦ

εἰ δrsquo αὖθ΄ ὃ μὴ γένοιτο συμφορὰ τύχοι᾿Ετεοκλέης ἂν εἷς πολὺς κατὰ πτόλινὑμνοῖθrsquo ὑπrsquo ἀστῶν φροιμίοις πολυρρόθοιςοἰμώγμασὶν θrsquo ὧν Ζεὺς ἀλεξητήριοςἐπώνυμος γένοιτο Καδμείων πόλει

ὑμᾶς δὲ χρὴ νῦν καὶ τὸν ἐλλείποντrsquo ἔτιἥβης ἀκμαίας καὶ τὸν ἔξηβον χρόνῳ

ὥραν τrsquo ἔχονθrsquo ἕκαστον ὥστε συμπρεπέςβλαστημὸν ἀλδαίνοντα σώματος πολύν

πόλει τrsquo ἀρήγειν καὶ θεῶν ἐγχωρίωνβωμοῖσι τιμὰς μὴ rsquoξαλειφθῆναί ποτε

Figura 131 Breve estratto dellrsquoopera di Eschilo Sette contro Tebe

da babel tuttavia le due codifiche sono profondamente diverse e incompatibililrsquouna con lrsquoaltra

Percheacute allora il font greco di default non egrave stato fatto secondo la codificaBeta Code Ci sono almeno tre spiegazioni (a) i font CBgreek sono stati fattiestendendo un font giagrave presente negli archivi ctan che aveva giagrave una sua codificae questa codifica egrave stata mantenuta (b) la codifica del font preesistente erastata definita da Sylvio Levy uno scienziato di origine greca ndash nato in Brasile eora operante negli USA ndash che sapeva usare bene sia la tastiera greca sia quellalatina se un greco aveva scelto quella codifica aveva le sue buone ragioni e nonera certo Beccari che poteva arrogarsi il diritto di mettere a disposizione di unpubblico comprendente anche tutti i greci un font incompatibile con le abitudinidi diteggiatura sulla tastiera greca dove i diacritici hanno sempre la posizioneprefissa invece che postfissa come nel Beta Code (c) in rete egrave disponibile ilpacchetto bgreek che permette di usare i font di default con la notazione del filesorgente che segue le convenzioni Beta Code

Ciograve premesso il pacchetto technica va usato con la classe book anche se nemodifica tutte le impostazioni e aggiunge un numero enorme di estensioni nonpermette ancora di comporre una edizione critica ma ci va molto vicino

Nella figura 131 egrave rappresentato un breve brano in versi della tragedia diEschilo Sette contro Tebe il parlante Eteocle egrave riportato sul margine sinistro inmaiuscolo inclinato mentre i versi sono numerati con una numerazione che ad uncerto punto presenta i versi 12 e 13 scambiati rispetto al codice originale Si notiche lrsquoesempio della figura 131 egrave stato ricomposto con lrsquoopzione greek di babelspecificando lrsquoattributo polutoniko tanto per verificare se i font di default conla loro notazione dei diacritici ldquoprefissardquo invece che ldquopostfissardquo dessero qualche

132 FONT ADATTI AI TESTI CLASSICI 261

fastidio al pacchetto technica ma non si sono osservati difetti di sorta

132 Font adatti ai testi classiciFra i font usabili con il sistema TEX (in numero sterminato) pochi in veritagravecontengono le legature presenti nei testi classici a stampa secondo la tradizionedei secoli XVI e XVII Questi font contenevano sia la s lsquolungarsquo sia la s lsquocortarsquo laprima usata come s iniziale e mediale la seconda come s finale e come secondoelemento della doppia s ss minusrarr szlig Contenevano inoltre diverse legature peresempio nei nessi lsquoctrsquo e lsquostrsquo contenevano anche le legature aelig e œ assenti nellatino classico ma entrate in uso sia nei codici tardomedievali sia negli incunabolie nelle cinquecentine assieme allrsquouso della lsquoursquo minuscola per indicare sia la lsquoursquosia la lsquovrsquo e rsquoVrsquo maiuscola per indicare sia la rsquoUrsquo sia la rsquoVrsquo La maggior parte diqueste abitudini tipografiche cessarono verso la fine del Settecento a partire daiPaesi Bassi per poi estendersi al resto drsquoEuropa e nel resto del mondo

Desiderando comporre testi classici o antichi conservando lrsquoatmosfera dellacomposizione originale si possono usare font OpenType lsquoespertirsquo che contenganoanche le numerose legature A questo proposito conviene segnalare il lavoro diMassimiliano Dominici [12] che ha usato i font FellType per usare i quali hadovuto creare lrsquoinsieme di file di descrizione di questi font ricodificandoli inmodo da poterli usare con LATEX che non gestisce i font OpenType direttamenteanche i TrueType usati da Dominici si estendevano ben oltre i 256 caratterigestibili con LATEX

Probabilmente ne esistono altri ma qui si segnalano i font chiamati conla sigla Kp-fonts2 e richiamabili nei file da comporre con pdflatex mediante ilpacchetto kpfonts Secondo la descrizione che ne ha fatto lrsquoautore ChristopheCaingnaert [5] sono direttamente derivati dal font Palatino adeguatamentereinterpretati dando loro un asse ottico distintamente obliquo La proprietagrave diquesti font egrave che dispongono delle serie chiara media e nera il maiuscoletto veropuograve essere composto con lettere lsquominuscolersquo di dimensioni piccole o medie ilmaiuscoletto chiaro medio e nero puograve essere composto anche in forma inclinataesistono le varianti che contengono oppure escludono le legature lsquoctrsquo e lsquostrsquo e usanodi default la lsquoQrsquo a coda lunga oppure la lsquoQrsquo normale nello stile veryoldstylepossono usare anche altre legature sono presenti sia la s lunga sia la s corta sonocomponibili sia con la codifica OT1 sia con quella T1 dispongono delle cifrelsquominuscolersquo consentono la composizione della matematica in vari stili moderni eantichi utili anche per le edizioni critiche di testi matematici antichi Le possibilivarianti si ottengono con opportune opzioni esplicitate durante la chiamata delpacchetto kpfonts I simboli disponibili sono moltissimi molti di piugrave che nonunendo le collezioni dei simboli matematici di LATEX e quelli della AmericanMathematical Society Questi font sono quindi raccomandabili sia per i testiletterari sia per le edizioni critiche sia per testi moderni anche se contengonomolta matematica composti con una collezione di font molto completa forseuna delle piugrave ricche fra quelle distribuite con il sistema TEX

Nella figura 114 nella pagina 202 si vede lrsquouso di questi font sia con lo stilecompositivo oldstyle sia con lo stile veryoldstyle specificati come opzioni alpacchetto kpfonts

2Forse le lettere lsquokprsquo derivano dal nome di Kepler essendo stati sviluppati per il JohannesKepler project Non hanno invece nessuna relazione con i font Kepler della Adobe

262 TESTI LETTERARI E FILOLOGICI1

Font texturabcˇfghmdashklmnopqrltuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Font frakturabcdefghijklmnopqrĆuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Font schwabacherabcdefghijklmnopqrĆuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Capilettera

Figura 132 Alcuni alfabeti gotici che includono anche i capilettera ornati

133 La composizione del tedesco classicoFra le lingue classiche e moderne solo il tedesco egrave molto noto per usare i fontgotici decisamente diversi da quelli latini anche se le lettere semanticamentesono le stesse

Dalla prima Bibbia di Gutenberg alla fine della seconda guerra mondialeil gotico egrave stato spesso usato ma anche impropriamente come simbolo di unanazione Per il nazismo era stato lrsquoalfabeto caratterizzante quel regime

I modelli della scrittura a cui in italiano ci si riferisce con lrsquoaggettivo goticosono sostanzialmente tre (a) il textur usato da Gutenberg (b) il fraktur usatonei secoli piugrave recenti e (c) lo schwabacher usato come alfabeto elegante sempredi tipo gotico ma con le lettere piugrave rotondeggianti specialmente le maiuscoleNella figura 132 sono mostrati alcuni alfabeti gotici disponibili con il sistemaTEX

In realtagrave anticamente non crsquoera nessuna distinzione fra la lsquoirsquo e la lsquojrsquo nei fontmostrati nella figura 132 le due lettere minuscole sono leggermente differenziatementre le maiuscole sono rimaste identiche

Si noti che nelle distribuzioni di TEX Live recenti certamente nella distribu-

134 LA COMPOSIZIONE DI TESTI IN LINGUE CLASSICHE 263

zione del 2010 i tre font textur fraktur e schwabacher sono disponibili come fontvettoriali e sono giagrave disponibili come tali senza bisogno di ricorrere allrsquoinstallazio-ne delle loro mappe I font corrispondenti ai bellissimi e ornatissimi capiletterasono in forma bitmapped forse la loro delicata e fitta ornamentazione impedisceloro di venire trasformati in font vettoriali ma nelle prove fatte su carta non sinota nessun difetto tipico dei font bitmapped anche sullo schermo si presentanomolto bene

Per fare uso di questi font basta impiegare il pacchetto mfnfss che defi-nisce i comandi usuali gothfamily e textgoth per selezionare il font tex-tur frakfamily e textfrak per selezionare il font fraktur swabfamily etextswab per selezionare il font schwabacher Per selezionare il font dei capilet-tera il file di documentazione suggerisce una macro che contemporaneamentesceglie il font e lo compone ribassato Qui la si riporta adeguatamente ldquocorrettardquovisto che come egrave riportata nella documentazione fa riferimento ad una macronon descritta

newcommandyinitial[1]hangindent=254cmhangafter=-4hskip-324cmlower-27mmhboxfontencodingUfontfamilyyinitselectfont 1hskip15mm

dove le misure indicate possono essere ritoccate a discrezione dellrsquoutenteI caratteri contengono le necessarie legature antiche e per le umlaut consentono

di usare sia il doppio apice (a produce auml) sia lrsquoasterisco (a produce una lsquoarsquosovrastata da una minuscola lsquoersquo) queste seconde legature sono specificamentedescritte per lo schwabacher

In sostanza se si dovesse riprodurre una pagina della Bibbia di Gutenberglo si potrebbe fare in modo quasi identico compresi i capilettera anche se questihanno un disegno di un paio di secoli successivi a quelli usati da Gutembergstesso

134 La composizione di testi in lingue classicheIn questo breve paragrafo si accenna alla scrittura in latino e in greco che siritiene che siano le lingue classiche piugrave diffuse fra gli umanisti italiani Non siscende nei dettagli di che cosa sia necessario fare con scritture molto particolarisi segnala solo che fra i font del sistema TEX compare anche il Lineare A peresempio al fine di riportare testi molto antichi

1341 Scrivere in latinoScrivere in latino non richiede altro che specificare lrsquoopzione latin a babeltuttavia se si desidera estendere la funzionalitagrave alla marcatura della lunghezzadelle sillabe bisogno provvedere alla specificazione dellrsquoattributo della lingua

usepackage[latin]babel

264 TESTI LETTERARI E FILOLOGICI

languageattributelatinwithprosodicmarks

Un altro attributo che si puograve specificare egrave quello relativo allrsquoortografia medievale

usepackage[latin]babellanguageattributelatinmedieval

La differenza egrave che in lettere minuscole le lettere lsquoursquo e lsquovrsquo si scrivono entrambelsquoursquo mentre in lettere maiuscole esse vengono scritte entrambe lsquoVrsquo Di per seacute nonsarebbe un problema per il tastierista a scriverle come appena detto ma quandoci sono delle trasformazioni automatiche in minuscolo o in maiuscolo i comandiMakeUppercase e MakeLowercase devono operare correttamente anche conlrsquoortografia medievale

Una cosa che va osservata attentamente egrave che la divisione in sillabe sia conlrsquoortografia moderna sia con quella medievale funziona bene in modo foneticobuona parte dei suffissi e dei prefissi sono riconosciuti correttamente in mododa dividerli etimologicamente ma lrsquoinsieme di pattern per la sillabazione latinanon garantisce una divisione corretta in ogni caso Per questo diventa particolar-mente importante lrsquouso del carattere attivo che introduce un punto di cesurafacoltativo senza impedire la divisione del resto della parola Si scriveragrave pertantotransierat per consentire la divisione dopo la lsquoirsquo senza impedirla negli altripunti leciti

Le date vengono composte con il calendario gregoriano ma i numeri relativiai giorni e agli anni vengono scritti con la numerazione romana sottrattiva inmaiuscoletto il numero dei giorni in maiuscolo quello degli anni Un tentativodi trasformare la data gregoriana in una data ldquoab urbe conditardquo non ha avutoseguito (per ora)

1342 Scrivere in grecoSi egrave giagrave detto molto sia in questo capitolo sia nel paragrafo 11822 Non siripeteranno quelle cose qui ma si sottolinea lrsquouso opportuno e consigliabiledel pacchetto teubner nella versione 3x Infatti in questa versione sono statiaumentati molto i comandi per gestire le varie forme dei font greci (CBgreek)tenendo conto che in un testo letterario o filologico verosimilmente si passaattraverso unrsquoalternanza di testo in lingua greca con altro testo in una linguaoccidentale

La gestione dei segni diacritici egrave anche molto migliorata e permette di evitaredi usare le decine di macro strane per comporre i caratteri marcati con i lorodiacritici senza ricorrere al meccanismo delle legature questo si rende necessariospecialmente quando si usa il font Lipsiano i cui segni hanno disegni dalle formedelicate che richiedono crenature accurate

Quando il testo greco egrave abbondante sarebbe desiderabile che lrsquoumanistadisponesse di una tastiera bilingue oppure di comodi mezzi software per disporredi una tastiera virtuale su cui comporre il testo greco In queste condizioni illsquotastieristarsquo puograve comporre direttamente in greco senza doversi ricordare nessunacorrispondenza fra la tastiera con caratteri latini e quella con i caratteri greciPerograve necessita dellrsquoopzione utf8x per la codifica di entrata questa particolare

135 LA COMPOSIZIONE DI TESTI FILOLOGICI 265

opzione permette di tradurre i segni greci UNICODE che appaiono sullo schermoquando si compone il file sorgente nei corrispondenti comandi interni che pdflatexusa e che solo in fase di scrittura del file di uscita trasforma nei caratteri presentipoi per il font specificato con la codifica di uscita si veda anche lrsquoappendice D

Per il greco esistono almeno tre metodi di divisione in sillabe corrispondentialle tre ortografie o varietagrave della lingua la sillabazione per lrsquoortografia monotonicaquella per lrsquoortografia politonica moderna e quella per lrsquoortografia politonicaantica Si tenga presente che di default le impostazioni per la sillabazione grecacon qualunque ortografia prevede una lunghezza minima della prima e dellrsquoultimasillaba di qualunque parola formata da una sola lettera quando in italiano essedevono essere di almeno due lettere e nelle altre lingue occidentali con molteparole che finiscono in consonante la prima sillaba deve essere di almeno duelettere e lrsquoultima sillaba di almeno tre lettere Queste vistose differenze fannosigrave che la prosa normale possa avere capoversi che terminano con un righinocontenente una sola lettera tipograficamente molto brutto LATEX pone unafortissima penalitagrave alla cesura nella penultima riga di un capoverso ma questonon impedisce che possa verificarsi quellrsquoevento

I vari esempi di testo greco classico scritti in questa guida sono stati tutticomposti usando il pacchetto teubner e lrsquoattributo polutoniko e senza avvalersidi una tastiera greca neacute della codifica utf8x A questo proposito visto che oggi glielaboratori con schermo touch screen diventano sempre piugrave diffusi disponendodi un tale dispositivo non egrave impossibile scrivere direttamente in greco toccandolo schermo in corrispondenza dei tasti virtuali corrispondenti alla tastiera grecabasta aver installato il driver della tastiera greca ed aver toccato la sua iconanella barra opportuna dello schermo Ecco allora che i sistemi touch screen chelo scrivente considera validi solo per certi usi che nulla hanno a che far con lacomposizione dei testi diventano utili proprio a questo scopo quando si debbanousare alfabeti diversi o disposizioni diverse dei tasti

Va poi sottolineato che per scrivere agevolmente con alfabeti diversi daquello latino egrave utile (o necessaria) una tastiera apposita come detto sopra madiventa utilissimo anche usare il programma di composizione xelatex e il mark-upX ELATEX come giagrave spiegato questo programma consente di usare la codificaUNICODE e di gestire direttamente i font OpenType cosiccheacute la scelta dei fontlatini greci cirillici eccetera non egrave piugrave legata a quanto offre di default il sistemaTEX ma si estende alla moltitudine di font che formano la dotazione del sistemaoperativo della macchina che si sta usando Esso apre le porte allrsquoimpiego diqualsiasi font commerciale gratuito o a pagamento senza bisogno di ricorrerealle procedure di installazione necessarie con pdfLATEX che per altro non puogravegestire direttamente i font OpentType Per il resto il programma di composizionexelatex ha un mark-up che differisce da quello di LATEX solo per qualche dettaglioriguardante la gestione dei font ma per il resto un file sorgente concepito peressere elaborato con pdfLATEX spessissimo viene compilato senza modificheanche da X ELATEX

135 La composizione di testi filologiciLa pubblicazione di scritti filologici include le edizioni critiche e include scrittiin prosa o in versi in lingue scritte non necessariamente in caratteri latini Essisono scritti letterari ma in piugrave richiedono diversi apparati critici formati da

266 TESTI LETTERARI E FILOLOGICI

annotazioni composte in varie maniere Questi apparati di note spesso compaionoassieme nella stessa pagina ma devono venire distinti in modo inequivocabile gliuni dagli altri e chiaramente non basta solo un filetto orizzontale per distinguerli

Serve anche una numerazione delle singole righe sia per i testi in prosa siaper quelli in poesia generalmente i numeri sono nel margine esterno e sonoesplicitati quelli multipli di 5 le note invece che legate a richiami come numerinia esponente possono essere legate al numero di riga per cui nel richiamo bisognaripetere una breve sequenza di testo a cui la nota si riferisce

Chiaramente LATEX non egrave in grado da solo di svolgere questi compiti e bisognaricorrere a pacchetti di estensione

Il piugrave noto pacchetto di estensione si chiama ledmac ed egrave in grado di comporreogni aspetto delle edizioni critiche esso egrave documentato in doclatexledmacledmacdvi

Lrsquoautore Peter Wilson ha cercato con ledmac di implementare le capacitagravesviluppate dai pacchetti di macro per Plain TEX edmac tabmac e edstanzaaggiungendovi del suo

Esso egrave particolarmente indicato per le edizioni critiche e il suo forte sono lenumerazioni marginali e gli apparati di note sia a piegrave di pagina sia come notefinali a fine capitolo o a fine documento Egrave possibile legare le note finali al numerodi pagina e di riga invece che a richiami numerici ad esponente Anche per quelche riguarda lrsquoindice analitico egrave possibile fare riferimento anche al numero diriga invece che solamente alla pagina

Altri pacchetti per edizioni critiche sono endnotes specializzato nelle notefinali e poemscol destinato alle forme poetiche ai testi in versi

Va per esempio citato il pacchetto di estensione opcit che dispone di un suoparticolare file di stile per la composizione della bibliografia con BIBTEX il pac-chetto consente di scrivere i riferimenti bibliografici in nota invece che in elencoa fine capitolo o a fine documento le citazioni successive alla prima vengonoripetute in forma abbreviata nella forma ldquoAutore op citrdquo se la precedentecitazione corrisponde alla stessa opera il comando di citazione riporta solamenteldquoIbidem p 33rdquo (dove lrsquoindicazione della pagina la post-citazione costituisce lrsquoar-gomento facoltativo del comando cite) Sono possibili diverse personalizzazionicosigrave che gli umanisti possano continuare ad usare il loro metodo tradizionale dicitazione in nota Lrsquouso di LATEX e dei suoi pacchetti assicura lrsquoaspetto omogeneodelle citazioni in modo da garantire la massima professionalitagrave compositiva Ladocumentazione del pacchetto si trova in doclatexopcitopcitpdf

Quando si va nella filologia vera e propria le cose si possono fare molto dureanche percheacute i filologi delle varie discipline hanno notazioni diverse per renderegli stessi concetti

Chi scrive ha collaborato con un filologo di greco classico e con un filologodi lingua copta altomedievale ovviamente i due filologi non erano drsquoaccordosu come esprimere i concetti comuni alle due lingue questa non egrave una criticama una osservazione anchrsquoio che scrivo usando molta matematica ho dovutoarrangiarmi con i simboli disponibili percheacute certi concetti che dovevo esprimeremalgrado le norme ISO non avevano un simbolo specifico cosigrave alla fine hodovuto usare simboli che in altre branche della matematica hanno significatidiversi Succede in ogni scienza e anche allrsquointerno della stessa scienza

Per quanto concerne il greco classico come giagrave detto esiste il pacchettoteubner scaricabile dalla rete e abbastanza ben documentato mediante il filedoclatexteubnerteubner-docpdf

135 LA COMPOSIZIONE DI TESTI FILOLOGICI 267

Con la pubblicazione della versione 3x del pacchetto teubner egrave disponibileuna nuova funzionalitagrave oltre a macro per gli accenti che rendono inutile il ricorsoa quel centinaio di macro per accedere per nome ai caratteri accentati inveceche con le comode legature permette di far convivere i font con codifica LGRvirtualmente con tutti i font disponibili sullrsquoelaboratore che si sta usando Giagravela versione 29 era compatibile sia con i fonte CM EC e CM-super sia con ifont Latin Modern tutti con la codifica T1 Con la versione 3x il pacchettoriconosce da solo se si stanno usando i font Times o Palatino eXtended e si creada solo i necessari file di descrizione dei font necessari per questa convivenza Ilpacchetto mette a disposizione anche il comando ifFamily che crea le necessarieassociazioni anche con famiglie di font diverse da quelli sopra menzionati

Per esempio se si volessero usare in font Helvetica come font latini propor-zionali senza grazie allora basterebbe dare i seguenti comandi

renewcommandsffamilyphv Font latini senza grazieifFamilyphvcmss Font greci senza grazie

In questo modo teubner genera i file di descrizione dei font che sostituiscono agliinesistenti Helvetica codificati con la codifica LMR i font greci della collezioneCBgreek con la codifica giusta certo i segni grafici sono diversi ma se egrave possibile isegni greci sono meno vistosi e ingombranti dei segni lineari con lo stile HelveticaNessuno vieta poi di usare X ELATEX come mostrato alla fine di questo capitolocosigrave da evitare le piccole acrobazie necessarie per poter usare il programmapdflatex che non egrave in grado di gestire da solo i font codificati in UNICODE

Il pacchetto consente di accentare ogni lettera con qualsiasi segno diacriticopersino con accenti impilati collocandoli correttamente tenendo conto dellrsquoin-clinazione dei caratteri Esso puograve inserire segni speciali sopra o sotto singolelettere o gruppi di lettere puograve racchiudere gruppi di lettere con delimitatorispeciali per indicare la lectio incerta o altre simili indicazioni per interpolazionio omissioni puograve numerare i versi di poemi anche con due serie di numerazionicontemporaneamente puograve disegnare le metre dei vari versi con una notevolericchezza di segni che consentono anche di specificare per esempio se una sillabaancipite egrave piugrave sovente lunga invece che breve eccetera

Va detto che Gianfranco Boggio-Togna ha prodotto anche il pacchetto metreche svolge alcune funzioni svolte dal pacchetto teubner I due pacchetti differi-scono per la loro estensione ma anche quando si tratta delle metre le notazioniritmiche dei versi per come sono prodotti i simboli da usare teubner usa unfont particolarmente disegnato allo scopo mentre metre usa segni costruiticomponendoli con i simboli dei vari font giagrave disponibili per esempio usandosimboli tratti dalle polizze per la matematica

Per quanto concerne il copto oltre ai font necessari per scrivere con i caratterialtomedievali crsquoegrave una certa varietagrave di simboli e segni che permettono di annotareil testo antico si puograve scaricare il tutto da ctanlanguagecopticcopticzipIl file README contenuto nel file compresso spiega come decomprimere il pacchettoe dove sistemare ogni componente del pacchetto per altro con le distribuzionirecenti di TEX Live anche il pacchetto coptic egrave giagrave preinstallato

Certamente esistono altri pacchetti in rete destinati a risolvere problemispecifici di composizione filologica tuttavia ogni lavoro di filologia richiede lapredisposizione di comandi particolari per problemi particolari lo scrivente egraveal corrente che da alcuni anni a Pisa si sta costruendo lrsquoedizione critica delleopere del matematico Maurolico sono giagrave disponibili diverse parti ma lrsquoopera

268 TESTI LETTERARI E FILOLOGICI

non egrave finita si capisce bene che nonostante il Maurolico scrivesse in latinoegli scriveva di matematica e di geometria quando le convenzioni a cui siamooggi abituati non esistevano ancora non parliamo delle norme ISO I curatoridi questa edizione critica stanno lavorando con passione ma devono inventarsisoluzioni nuove per problemi di composizione che finora non sono mai statiaffrontati meno che mai risolti

In Italia oltre che a Pisa si egrave al corrente che anche alla Pontificia Universitagravedi Santa Croce di Roma crsquoegrave un gruppo di utenti che si occupa di filologia e diedizioni critiche Essi hanno anche predisposto un corso e un CD-ROM per gliutenti del corso

136 Un esempio di composizione con X ELATEXSi vuole qui presentare un breve esempio di composizione in greco classicopolitonico facendo uso del programma xelatex Si presenta dapprima il filesorgente e dopo qualche commento il risultato della composizione

Dividiamo lrsquoempio in due parti (a) lrsquoesempio vero e proprio e (b) alcunicommenti in merito alla selezione dei font

Unrsquoutile introduzione a X ELATEX scritta in modo relativamente semplice egravecostituita dal testo di Enrico Gregorio [21] permette di verificare e di approfon-dire molti degli argomenti esposti qui e di studiarne diversi altri Esiste ancheun manuale iniziale e piugrave o meno ufficiale di X ETEX [18] che perograve deve essereancora considerato sperimentale almeno non cosigrave approfondito come gli altrimanuali della serie ldquoThe [ ] Companionrdquo Unrsquoaltra breve guida per X ETEX egravestata predisposta da Will Robertson [40] uno dei collaboratori piugrave importantialla squadra che si occupa della diffusione di questo programma

1361 Esempio di composizione in grecoIl file sorgente egrave stato predisposto con lo shell editor TEXShop su una piattaformaMac nella quale era installato anche il driver per la tastiera greca politonica leparti in greco sono state scritte direttamente usando la tastiera greca

Il prologo egrave il seguente

TEX encoding = UTF-8 UnicodeTEX TS-program = xelatex

documentclass[b5paper11pttitlepage]book

setmainfont[Ligatures=TeXNumbers=OldStyle]TeX Gyre Bonumsetsansfont[Ligatures=TeXScale=MatchUppercase]Futura

newfontfamilygreekfontOld Standard

Scelta delle lingue

usepackagepolyglossiasetmainlanguageitaliansetotherlanguage[variant=ancient]greek

136 UN ESEMPIO DI COMPOSIZIONE CON X ELATEX 269

begindocument

Le prime due righe del file specificano a TEXShop lrsquoencoding con cui egrave statoscritto il file sorgente e il nome del programma con il quale cliccando il pulsanteTypeset egli deve agire indipendentemente dalle impostazioni predefinite Nonsi insisteragrave mai abbastanza sulla comoditagrave ed opportunitagrave della presenza delle duerighe suddette TEXShop e TeXworks interpretano queste righe ed eventualmentemodificano temporaneamente le proprie impostazioni gli altri editor possonomancare di questa funzionalitagrave o possono averla ma con una sintassi diversaLa persona che ricevesse questo file da altri vedrebbe subito non appena apre ilfile se eventualmente deve riconfigurare il suo shell editor per poter comporre ildocumento

Le tre righe dopo la dichiarazione di classe (che egrave del tutto normale) specificanoil modo di dichiarare i font Opentype da usare nel documento Per il testo incaratteri latini si usa un facsimile del font Bookman attraverso il font dellacollezione TEX Gyre giagrave presenti nella distribuzione del sistema TEX Le opzionichiedono di usare le legature standard del sistema TEX (comprese per esempiolsquolsquo e rsquorsquo e le lineette medie e lunghe) e chiedono di usare le cifre arabe minuscole(old style)

Il secondo font Futura viene usato solo per i caratteri senza grazie lrsquoopzioneserve per scalarlo un pochino affincheacute le sue lettere minuscole senza ascendenti ediscendenti abbiano la stessa grandezza di quelle del font con grazie Il terzo fontOld Standard di per seacute potrebbe essere usato anche come ldquomainfontrdquo percheacutecontiene i caratteri latini greci e cirillici oltre a una quantitagrave di altri segni maqui lo si definisce solo come famiglia di caratteri da assegnare alla composizioneper la lingua greca poicheacute il suo nome greekfont comincia con il nome dellalingua esso viene usato automaticamente come font di default quando si scrive inquella lingua Lo stesso espediente puograve essere usato per differenziare con la formao lo stile del font la lingua in cui si sta scrivendo per esempio si potrebberovoler usare i caratteri fraktur per comporre in tedesco brani di periodi storici incui quella tipologia di font era normalmente usata per quella lingua

Seguono poi i tre comandi per la scelta delle lingue il pacchetto polyglossiasostituisce babel in realtagrave xelatex accetta anche di usare il pacchetto babel eil suo modo di specificare le lingue ma egrave preferibile usare polyglossia percheacute egravegiagrave costruito per lavorare con xelatex e inoltre usa giagrave i caratteri UNICODE perspecificare i nomi infissi nei comandi di sezionamento e negli altri comandi chegenerano anche del testo in lingua Inoltre egrave chiaro qual egrave la lingua di default illdquomainlanguagerdquo e quali sono le lingue accessorie qui in particolare si specifica ilgreco e gli si specifica anche una opzione e cioegrave che si tratta della variante delgreco antico

Come si vede il preambolo egrave piuttosto semplice (oltre che esuberante per ilpiccolo esempio che si sta mostrando)

Il corpo del documento contiene le righe contenute nel medaglione dellafigura 133Lanciando xelatex su questo piccolo file sorgente si ottiene il risultatomostrato nella figura 134

Come si vede chiaramente il font TEX Gyre Bonum propone dei caratterimolto scuri mentre il greco tratto dal font Old Standard egrave della serie media chesi accorderebbe benissimo con i font Latin Modern usati in questo testo Lrsquoac-coppiata egrave quindi infelice ma la si egrave mostrata lo stesso per indicare nellrsquoesempioquali generi di font si possono usare con il programma xelatex

270 TESTI LETTERARI E FILOLOGICI

Figura 133 Completamento del file sorgente

1362 X ELATEX i font Opentype e i font Type 1Nel paragrafo precedente abbiamo visto come specificare i font per il testo comescegliere diversamente i font per una diversa famiglia (sans serif rispetto ai fontcon grazie) o per una lingua diversa Quel modo di specificare i font vale ancheper i font TreueType se contengono le tabelle con le specificazioni delle varianticome gli OpenType Secondo gli standard e lrsquouso corrente I font Type 1 hannosolo 256 caratteri per polizza senza varianti e hanno i contorni dei vari segnidescritti mediante spline di Beacutezier di terzo grado I font TrueType hanoo polizzecon un numero di segni non limitati a 256 ma possono rispettare le specificheUNICODE hanno i contorni dei segni descritti da spline di secondo grado

Talvolta potrebbe essere necessario specificare lrsquouso di font Type 1 di questibosogna specificare la codifica e chiamarli con il loro nome vero non quello cheusa pdflatex questi nomi sono indicati nel file pdftexmap come seconda vocedi ogni riga bisogna stare attenti che possono essere costituiti da diverse parolePer esempio se un desiderasse usare i font URW Avant Garde Light Book lariga corrispondente nel file pdftexmap serabbe

pagk8r URWGothicL-Book TeXBase1Encoding ReEncodeFont lt8rencltuagk8apfb

dove pagk8r egrave il nome del file pagk8rpfb che contiene i disegni dei segni diquesto particolare font a cui si riferisce il file pagfd di descrizione dei fontinvocato in definitiva dal pacchetto avant Questo font Type 1 deve esserericodificato percheacute nativamente non ha la codifica T1 ecco percheacute la riga del filepdftexmap egrave cosigrave relativamente complessa Per il nostro caso quello che importaegrave il nome vero del font da dedurre del nome compresso URWGothicL-Book ilnome completo egrave URW Gothic L e questo bisogna usare nei comandi accettatidal programma xelatex

136 UN ESEMPIO DI COMPOSIZIONE CON X ELATEX 271

Figura 134 Risultato della composizione con X ELATEX

272 TESTI LETTERARI E FILOLOGICI

In particolare bisogna assicurare che xelatex conosca lrsquoencoding T1 e chesappia cercare correttamente lo stesso file di descrizione die fonnt che userebbepdflatex Per far questo bisogn specificare attentamente nella giusta successione icomandi seguenti

usepackage[T1]fontencusepackagefontspecrenewcommandsfdefaultpagusepackageetoolboxcspretosffamily fontencodingT1

dove

usepackage[T1]fontencrenewcommandsfdefaultpag

sono gli stessi comandi che si darebbero a pdflatex ma dop il primo lrsquoencodingdi default sarebbe lrsquoencoding T1 se non si specificasse la chiamata a fontspecnon si potrebbero usare i font OpenType per cui egrave necessario chiamare questopacchetto ma a questo punto lrsquoencoding di default diventerebbe quello dei fontOpenType cioegrave la codifica UNICODE EU1 Allora bisogna caricare il pacchettoetoolbox che mette a disposizione lrsquoultimo comando cspreto che permette diassociare lrsquoencoding T1 al font specificato per la famiglia senza grazie tramitecomando sfdefault

Sembra complicato e forse la spiegazione lo egrave davvero ma in fondo si trattasolo di aggiungere due righe nellrsquoordine giusto a quelle che andrebbero comunquespecificate per usare sia i font OpenType in generale sia i font Type 1 particolariche si desiderano

137 ConclusioneSulla composizione di testi letterari e filologici ci sarebbe da scrivere molto dipiugrave di quanto si egrave esposto in questo capitolo tutto sommato introduttivo nelvastissimo territorio della composizione di questo tipo di documenti

Si sono indicati pacchetti e programmi di composizione che possono aiutaremolto lrsquoumanista nel procedere lungo questo particolare sentiero di composizionetipografica I pochi esempi mostrati indicano moltissime possibilitagrave di azioneSta dunque allrsquoumanista che tanto cura i suoi studi a curare anche lrsquoaspettocompositivo dei suoi lavori I programmi pdflatex e xelatex gli offrono deglistrumenti potentissimi di composizione gli resta quindi il compito di usarli apiena potenza

Capitolo 14

LATEXi vari tipi di documentie stili di composizione

141 IntroduzioneI file di classe che servono per definire i parametri compositivi del particolaredocumento che si intende comporre sono il cuore di LATEX e sono proprio loroche interpretano il mark-up di LATEX per eseguire la composizione in accordocon questo mark-up

142 Classi standardLATEX viene distribuito con una piccola dotazione di file di classe abbastanzagenerici da poter affrontare la composizione di qualunque documento tuttaviaquesta genericitagrave ha favorito lo sviluppo di classi particolari di cui si diragravebrevemente nei prossimi paragrafi

book egrave la classe con cui egrave stato composto questo testo Essa prevede di usare didefault tutte le strutture di sezionamento da chapter fino alla piugrave minutasuddivisione del testo costituita da subparagraph prevede la composi-zione sul recto e sul verso dei fogli prevede la pagina contenente il titolocome pagina a seacute stante il disegno grafico prevede uno spostamento dellagabbia verso il margine interno le testatine contengono il titolo correntee il numero della pagina il titolo corrente egrave scritto in caratteri maiuscoliinclinati il documento puograve essere suddiviso in materiale iniziale corpodel testo e materiale finale con caratteristiche compositive adeguatamentediverse eccetera

report egrave la classe con cui si scrivono i rapporti lsquotecnicirsquo testi relativamentebrevi di solito non superiori ad una cinquantina di pagine con il titolofacente parte della prima pagina dove comincia anche il testo di defaultsono composti sul recto delle pagine per cui la gabbia del testo egrave centrataNon prevede la definizione dei comandi frontmatter mainmatter e

273

274 CLASSI ED ESTENSIONI

backmatter percheacute un rapporto non egrave cosigrave strutturato come un libro maper il resto la classe assomiglia abbastanza alla classe book

article egrave la classe con cui vengono composti brevi articoli di solito di lun-ghezza non superiore alla decina di pagine con il titolo sulla stessa paginadove comincia il testo spesso sono scritti su due colonne hanno esplici-tamente lrsquoambiente abstract per redigere un breve sunto del contenutonon egrave definito il comando chapter anche se continua ad essere definitoil comando part nessuno vieta di dividere un articolo in parti ma lastruttura di sezionamento piugrave alta egrave section spesso gli articoli sonosenza indice generale neacute indice analitico ma dispongono quasi sempre diuna bibliografia

letter serve per comporre lettere commerciali lo stile egrave molto americano manon egrave cosigrave difficile personalizzarlo per conformarsi allo stile italiano dellelettere commerciali consente volendo di scrivere lettere con il medesimotesto ad una moltitudine di destinatari cosigrave come consente di scriverediverse lettere a destinatari diversi inserendole nello stesso file sorgente

ltnews serve per comporre una semplice newsletter di solito di una sola paginacomposta su due colonne

ltxdoc serve per comporre la documentazione dei file sorgente dei pacchettiche vengono distribuiti questi file sorgente contengono simultaneamente ladocumentazione e il codice e possono servire per produrre diverse classi eofile di estensione il loro formato egrave molto particolare ma sono preziosi per iprogrammatori per poter scrivere dei programmi in linguaggio TEX o LATEXin una forma ben documentata senza che questi commenti disturbino illavoro del motore TEX quando deve comporre un documento

ltxguide serve per comporre le guide di documentazione dei vari aspetti diLATEX si tratta delle guide incluse in ogni distribuzione e si trovano gene-ralmente nella cartella doclatexbase queste guide sono la fonteprincipale di informazione che lrsquoutente dovrebbe consultare e lsquoconoscere amemoriarsquo

minimal egrave una classe minima fatta apposta per avere una classe che garantisca ilminimo di performance essenzialmente pensata per collaudare la definizionedi nuovi comandi o lo sviluppo e le prestazioni di nuovi pacchetti diestensione quando il programmatore li sta costruendo

proc egrave una classe simile ad article che serve per produrre degli articoli secondouno stile da proceedings (atti di una conferenza)

slides serve per predisporre dei lucidi di presentazione di un discorso o diuna conferenza In realtagrave una volta si usavano le lavagne luminose oggisi usano i videoproiettori con questi ultimi non si producono lucidi ma siproietta direttamente dal calcolatore le prestazioni di slides sono adatteproprio ai lucidi su fogli di metacrilato Per le presentazioni oggi si possonousare diversi programmi ma restando in ambito LATEX esistono delleclassi come beamer ottenuta con il pacchetto beamer che produconodelle presentazioni a colori bellissime con animazioni finalizzate alla pre-sentazione e con la qualitagrave della composizione della matematica e della

143 LA CREAZIONE DI NUOVE CLASSI 275

gestioneimportazione di immagini efficaci come quelle che solo LATEX puograveoffrire

143 La creazione di nuove classiLrsquoutente puograve crearsi nuove classi con due approcci (in veritagrave non mutuamenteesclusivi) molto semplici (a) modificare le prestazioni di una classe esistente e(b) creare una classe ex novo

Il primo approccio egrave decisamente il piugrave semplice ed egrave affrontabile da chiunqueil file clsguide che si trova nella solita cartella doclatexbase contienele indicazioni per seguire questa via e presenta non pochi esempi

Il secondo approccio egrave decisamente molto piugrave complesso ma consente unapersonalizzazione maggiore A questo proposito puograve essere interessante legge-re la documentazione relativa alla classe octavo in doclatexoctavooctavopdf Questa classe egrave un rifacimento della classe book dove perograve sonostate fatte scelte particolari sia nel dimensionamento della gabbia e delle altreinformazioni lsquogeometrichersquo per la composizione ma sono stati anche ridefinitinumerosi comandi per ottenere risultati particolari usando la classe octavo alposto della classe book il compositore non deve imparare nessun comando nuovoal massimo deve familiarizzarsi con le nuove opzioni per il formato della cartache si riferiscono alla terminologia tradizionale britannica Se nel preambolo diun documento da comporre con la classe book si sostituisce la parola book conla parola octavo la composizione risulta assai simile salvo la giustezza e ladensitagrave delle righe che risultano perfettamente adattate al corpo dei caratteriusati ma se si specifica qualche opzione scelta fra quelle nuove lrsquoaspetto dellacomposizione cambia in modo abbastanza significativo La documentazione egravemolto istruttiva e spiega sia i motivi delle scelte fatte sia come queste sianostate rese nel linguaggio di programmazione di TEX il compositore che vuolecimentarsi nella creazione di nuove classi ha molto da imparare dalla lettura diquesta documentazione

Una via di mezzo egrave quella di utilizzare classi non standard ma fortementepersonalizzabili come si vedragrave nel prossimo paragrafo

Infine la via maestra egrave quella di non creare nessuna classe nuova a menoche non sia fortemente indispensabile Esistono infiniti pacchetti di estensioneper modificare le prestazioni delle classi esistenti qui se ne citeranno solamentealcuni quelli piugrave usati e considerati piugrave utili

fancyhdr serve per personalizzare le testatine ed i piedini di ognuno si puogravepersonalizzare quello che compare nella pagina di sinistra oppure nellapagina di destra di ognuno si puograve specificare che cosa scrivere nel centroa sinistra oppure a destra cosigrave da avere sei posizioni in ogni pagina perinserire informazioni che in definitiva aiutano a navigare nel testo e quindisono particolarmente indicate nei documenti molto strutturati Mentre letestatine lsquoordinariersquo per esempio della classe book oltre al numero dellapagina possono contenere solo il titolo (corto) del capitolo o del paragrafocorrenti con fancyhdr si riesce anche a inserire informazioni di terzo livelloper esempio il titolo dei sottoparagrafi

caption e ccaption servono per personalizzare la composizione delle didascalie

276 CLASSI ED ESTENSIONI

geometry serve per personalizzare il layout della pagina la sua geometriasecondo schemi tradizionali o moderni sempre parametrizzati in modo daessere completamente liberi nella definizione dei margini dei contrografismifra testatina o piedino e il corpo della pagina per scegliere la giustezzain modo da avere il numero (medio) ottimale di caratteri in ogni riga inrelazione al font usato e al suo corpo lsquonormalersquo Sotto molti aspetti questopacchetto agisce come typearea ma egrave decisamente piugrave agile e consente dipersonalizzare in modo piugrave esteso

Ovviamente questi pacchetti sono utili anche nel creare nuove classi percheacute bastacaricarli allrsquoinizio della nuova classe specificando loro i parametri desiderati cosigraveche spesso la creazione di una nuova classe si riduce veramente a poco

144 Alcune classi non standard

Il sistema TEX viene distribuito con una enorme quantitagrave di file aggiuntivicompresi i file di classe che alcuni autori hanno predisposto e messo a disposizionedegli utenti

1441 Le classi Komascript

Markus Kohm (da cui il prefisso lsquoKomarsquo) ha messo a disposizione le quattroclassi fondamentali per la composizione di libri rapporti articoli e lettere rispet-tivamente scrbook scrreprt scrartcl e scrlettr (recentemente sostituitada scrlttr2) Le caratteristiche e i comandi disponibili sono reperibili nelladocumentazione del pacchetto koma-script

Ma la componente di questo pacchetto certamente piugrave utile egrave il pacchettotypearea richiamabile esplicitamente dai file di classe che permette di disegnarsia proprio piacimento la griglia di scrittura secondo i criteri piugrave diffusi il pacchettotypearea egrave richiamabile anche da altri file di classe non egrave una esclusiva dei filedi classe di Markus Kohm

In questa collezione di classi la classe scrlttr2 egrave molto interessante percheacutedescrive il layout delle lettere in una maniera piugrave adatta alle tradizioni europeeuna caratteristica particolare egrave la sua capacitagrave di adattare il formato della cartae quello della busta persino delle buste con finestra trasparente molto usatenella corrispondenza burocratica e commerciale La documentazione spiega anchecome predisporre nuove opzioni eo configurazioni locali adatte a formati di cartee di buste non conformi alla norme ISO anche nella versione molto dettagliatadelle norme ISO adattate al Giappone Per quel che riguarda lrsquoItalia esistonodelle norme relative allrsquoabbinamento della carta con la busta ma apparentementenon esistono delle norme per le buste con finestra

Le classi della collezione Komascript sono alla base anche di classi o dipacchetti molto in voga fra i frequentatori del forum di GuIT in particolare peril pacchetto ClassicThesis Questo fatto discende anche dalla facilitagrave con cui egravepossibile configurare il layout della pagina e gli stili compositivi di tutte le partidi sezionamento dai titoli correnti di ogni livello alle didascalie dalle testatineai piedini

144 ALCUNE CLASSI NON STANDARD 277

1442 La classe memoir

Peter Wilson ha scritto questa unica classe con la quale egrave possibile comporrequasi tutto quello che si puograve comporre con le classi standard ma offre possibilitagravedi personalizzazione difficili da realizzare se ci si appoggia alle classi standard

Una parte pregevole di questo lavoro egrave costituita dal file contenente il manualedi documentazione assai lungo e dettagliato contenente anche una buona dosedi consigli stilistici e una discreta storia del disegno grafico del libro e deldocumento1 la lettura egrave decisamente interessante anche in queste parti menotecniche per le parti tecniche il manuale egrave essenziale percheacute lrsquoestensione di LATEXe delle sue classi che la classe memoir offre egrave decisamente importante

La classe permette di personalizzare qualunque aspetto del documento daldisegno grafico della pagina alla scelta dei font per scrivere qualunque testospeciale compresi i titolini delle sezioni le testatine e i piedini Qualunquecosa possa essere personalizzata e che egrave difficile personalizzare usando LATEXstandard con memoir puograve essere fatta facilmente e con poche istruzioni

Lrsquoutente che si rivolge a memoir finisce con restarci affezionato per semprema deve fare molta attenzione con le personalizzazioni percheacute queste sono utilicertamente ma come si puograve migliorare qualunque cosa la si puograve anche peggiorareIn altre parole questa classe egrave decisamente piugrave adatta ad un utente esperto cosache riesce a chiunque abbia un minimo di sensibilitagrave estetica ed abbia spiritodi osservazione per imparare e valutare i pregi e i difetti di ciograve che viene fattoda altri Dagli altri si dovrebbe prima di tutto imparare ad evitare gli erroricercando di imitare il meglio e di avvicinarsi il piugrave possibile alle realizzazionidegli artisti grafici piugrave quotati con lo strumento memoir ci si puograve riuscire

Lrsquoautore di memoir nel suo manuale drsquouso racconta anche cose che hanno ache vedere con la cultura tipografica e con il book design Vale la pena di citarequesto brano tradotto in italiano da Luciano Battaia

Lrsquoessenza di un libro ben stampato egrave che non si fa notare al primoo addirittura al secondo o successivo sguardo di chiunque non abbiaun occhio allenato Se la vostra prima reazione nello sfogliare unlibro egrave di fare unrsquoesclamazione di meraviglia osservando il layoutallora il libro egrave molto probabilmente mal progettato se mai egrave statoprogettato La stampa di qualitagrave egrave raffinata non stridente

Con lrsquoavvento del desktop publishing molti autori hanno la ten-tazione di progettare da soli i loro testi Sembra molto facile farloBasta scegliere alcune delle migliaia di font disponibili usarne unoper i titoli uno per il testo principale un altro per le didascaliedecidere le dimensioni dei caratteri e la cosa egrave fatta

Tuttavia come scrivere egrave unrsquoabilitagrave che bisogna apprendere anchecomporre tipograficamente un testo egrave unrsquoarte che si deve apprenderee su cui bisogna esercitarsi Ci sono centinaia di anni di esperienzaracchiusi nel buon design di un libro Essi non possono essere tra-scurati con leggerezza e molti autori che progettano i loro libri nonconoscono alcune delle conquiste piugrave importanti per non parlaredel fatto che quello che fanno egrave esattamente in antitesi con esse Un

1Questo in veritagrave appariva sul manuale di memoir fino a qualche anno fa ora il manua-le egrave molto piugrave tecnico e chiarisce ogni possibile dubbio di programmazione ma in veritagravequellrsquoexcursus storico era molto interessante

278 CLASSI ED ESTENSIONI

esperto puograve infrangere le regole ma allora sa che ha delle buoneragioni per farlo

[ ] Se un libro grida lsquoguardamirsquo questo egrave un avviso e un pessimoavviso per chi lrsquoha progettato

1443 La classe ncc

Alexander Rozhenko ha predisposto una classe ncc valida per tutte le lingueaccessibili con babel ma pensata inizialmente per il russo che permette dicomporre articoli rapporti e libri semplicemente specificando opportune opzionia questa unica classe La classe egrave accompagnata da un certo numero di filedi estensione che consentono di eseguire composizioni particolari lrsquoautore nonle ha considerate di uso generale cosiccheacute ha potuto mantenere le dimensionidella classe entro limiti ragionevoli ma ha consentito di raggiungere prestazionisupplementari con moduli aggiuntivi da usarsi di volta in volta a seconda dellenecessitagrave compositive

Per altro la classe egrave estremamente versatile e consente di unire le prestazionidi molte estensioni LATEX in unrsquounica classe Cito a caso gli allineamenti diequazioni quelli di amsmath tanto per intenderci realizzati con pochi comandiassai versatili gli oggetti flottanti lsquominirsquo per minifigure e minitabelle compresele (piccole) figure e tabelle a margine del testo vari tipi di teoremi giagrave predispostisenza bisogno di ricorrere a newtheorem ovviamente ci sono anche i comandiper le dimostrazioni

Tutti i comandi dispongono di parametri facoltativi che consentono unapersonalizzazione piuttosto ampia

La documentazione egrave abbastanza dettagliata e si trova in doclatexncclatexncclatexpdf egrave opportuno studiare bene la documentazione percheacutesebbene si tratti sempre di mark-up LATEX esistono moltissimi nuovi comandie molti ambienti sono sostituiti da comandi con diversi argomenti in partefacoltativi e in parte obbligatori Bisogna insomma prenderci la mano ma nevale la pena

1444 Le tesi di laurea e la classe toptesi

Spesso gli studenti si avvicinano a LATEX quando devono scrivere la tesi dilaurea Dagli archivi ctan si possono scaricare diversi pacchetti che contengonoil necessario per comporre la tesi di laurea o di dottorato Fra i tanti si citatoptesi che contiene la classe toptesi oltre a varie utility e i loghi di numeroseuniversitagrave italiane

La classe consente di comporre tesi in italiano e in inglese per comporre ilfrontespizio in lingua diversa dallrsquoitaliano si possono usare comandi specifici chepossono essere inseriti in un file di configurazione la tesi egrave personalizzabile perogni lingua e per molti stili universitari La classe egrave stata pensata anche perscrivere le tesi completamente in lingua diversa dallrsquoitaliano in vista del fattoche gli studenti in doppia laurea con i programmi Erasmus devono scrivere latesi anche (o solo) nella lingua dellrsquouniversitagrave ospitante

Questa classe egrave una sovrastruttura della classe report che come si egrave dettonon distingue fra le parti iniziali centrali e finali del documento la classetoptesi invece lo fa automaticamente essa comincia a comporre con lo stiledella frontmatter della classe book ma nel momento in cui viene eseguito il

144 ALCUNE CLASSI NON STANDARD 279

(nuovo) comando indici vengono composti i vari indici richiesti e poi vieneeseguito lrsquoequivalente del comando mainmatter con il comando appendix difatto si passa alla composizione del materiale finale Si noti che nella classe book si prevede che il comando backmatter venga eseguito dopo le appendici nonprima Quel comando infatti eliminerebbe la dicitura lsquoAppendice 〈lettera〉rsquo primadel titolo di ogni appendice e tra lrsquoaltro cessa di numerare le strutture a livellodi lsquocapitolorsquo La classe toptesi invece prevede che le appendici facciano partedel materiale finale ma le distingue con la numerazione letterale Ovviamentela questione se le appendici facciano o non facciano parte del materiale finaleegrave una questione di gusti e di tradizione tipografica il grande e citatissimolsquobook designerrsquo Bringhurst attribuisce le appendici al materiale finale Chi hapredisposto la classe book attribuisce invece le appendici al materiale centraledel documento

Merita segnalare i pacchetto frontespizio di Enrico Gregorio esso si dedicaesclusivamente al frontespizio della tesi questo egrave completamente configurabilein ogni suo dettaglio per cui egrave possibile predisporre il frontespizio della tesivirtualmente per ogni prescrizione di segreteria di facoltagrave eo per ogni ateneoLrsquounica cosa a cui bisogna fare attenzione egrave che questo bellissimo pacchetto nonconsente di fare le lsquoporcheriersquo richieste in alcune facoltagrave evidentemente chi haredatto quelle prescrizioni o non egrave ancora passato al calcolatore e usa ancora lamacchina da scrivere o usa solamente e male un word processor (che usato beneprodurrebe anche risultati buoni) oppure ignora completamente i rudimentidella tipografia Gli studenti universitari che si accingono a scrivere la tesi nonsi scoraggino se una cosa non si puograve fare con frontespizio allora vuol dire che egravemeglio non farla

1445 Lrsquoestensione layaureo

Fabiano Busdraghi ha prodotto un pacchetto di estensione che non modifica glialtri parametri della classe in uso ma imposta il disegno grafico della paginasecondo il criterio della sezione aurea il pacchetto si chiama layaureo e nel modopiugrave semplice possibile senza ricorrere ad impostazioni di parametri o di parolechiave talvolta lsquoimmaginosersquo modifica la larghezza del testo e la sua altezzanoncheacute i margini di pagina in modo da ottenere il disegno grafico basato sullasezione aurea

In particolare allarga la giustezza in modo da coprire meglio la pagina A4 diquanto non lo facciano le classi standard questo allargamento dipende dal corponormale del font in uso Poi se il documento deve essere composto sul recto e sulverso delle pagine allora sistema il blocco del testo in modo che i margini stianofra loro come la sezione aurea Egrave possibile usare una opzione per spostare tuttoil testo di una quantitagrave fissa verso lrsquoesterno per esempio 5mm al fine di tenereconto della rilegatura

Si ricorda che la sezione aurea egrave un rapporto usato molto spesso nelle artigrafiche e lo si ritrova in moltissime strutture naturali per la sua definizione siveda in particolare lrsquoequazione etichettata (sezione aurea) nella pagina 160

Senza tenere conto dellrsquoaumento eventuale del margine interno per tenereconto della rilegatura la scelta della sezione aurea implica per esempio che ilmargine interno sia la frazione 0618 del margine esterno

280 CLASSI ED ESTENSIONI

(c)(b)(a)

CBeccari

ndashpi

ctur

e-20

09-

601

Figura 141 Tre geometrie di pagina a confronto (a) Gabbia (in grigio) e marginiper questo testo composto con la classe book su foglio in formato A4 (b) gabbiae margini in rapporto aureo fra di loro su su foglio in formato A4 (c) gabbia emargini ottenuti con lrsquoestensione layaureo su foglio in formato A4

Vale la pena di mettere a confronto tre layout di pagina nella figura 141 ilprimo layout corrisponde esattamente a questo testo composto con la classe bookalla quale non sono state apportate modifiche geometriche di nessun genere

Il secondo layout ha la pagina il testo e i margini in rapporto aureo fradi loro per essere piugrave precisi il rettangolo della pagina rappresenta in scala ilfoglio UNI A4 i cui lati hanno un rapporto di

radic2 fra di loro e non egrave quindi un

rettangolo aureo perograve la larghezza della pagina e la giustezza del testo sono inrapporto aureo cosigrave come lo sono i margini esterno ed interno fra di loro glistessi rapporti valgono per le dimensioni verticali a causa di questa regolaritagravedelle proporzioni si puograve osservare che la diagonale NWndashSE della gabbia del testocoincide con la diagonale della pagina Si noti anche che la gabbia del testo egrave unrettangolo UNI cioegrave con il rapporto

radic2 fra lrsquoaltezza e la base esso non ha le

proporzioni aureeIl terzo layout egrave quello che si ottiene con lrsquoestensione layaureo sulla pagina

UNI A4 per la quale egrave stato disegnato la giustezza egrave fissata circa 10mm piugravegrande della giustezza di default della classe book ma non egrave in rapporto aureocon la larghezza della pagina invece i margini interno ed esterno lo sono fradi loro i margini superiore e inferiore al contrario sono in rapporto di

radic2 e

il margine inferiore egrave il piugrave grande Lrsquoaltezza della gabbia egrave in rapporto aureocon la sua base e forma un rettangolo aureo A causa dei margini ristretti inparticolare quello esterno i layout basati in tutto o in parte sulla sezione aureanon sono adatti ad accogliere le note marginali

La figura 142 mostra chiaramente la differenza fra il rettangolo UNI basatosulla geometria del quadrato e il rettangolo aureo basato sulla geometria delpentagono regolare in entrambi i casi lrsquoaltezza del rettangolo egrave pari alla cordamaggiore del poligono regolare avente la base uguale a quella del rettangolo maa pari base il rettangolo aureo figura 142(b) egrave significativamente piugrave alto delrettangolo UNI figura 142(a)

Nella pagina 282 e nella successiva sono mostrate in dettaglio tutte le misureche riguardano le pagine pari e dispari di questo testo Le misure indicate inpunti tipografici sono state ricalcolate da LATEX stesso caso mai fossero statemodificate in qualche modo in realtagrave non egrave stato modificato nulla rispetto alleimpostazioni di default

145 I PACCHETTI DI ESTENSIONE 281

(a) (b)

CBeccari

ndashpi

ctur

e-20

090

601

Figura 142 Costruzioni geometriche per mettere in relazione lrsquoaltezza delrettangolo con il lato del poligono regolare sul quale egrave costruito

145 I pacchetti di estensioneAnche nel paragrafo precedente si egrave parlato di alcuni pacchetti di estensionevirtualmente se ne egrave parlato in ogni capitolo

I pacchetti di estensione spesso chiamati file di stile a causa dellrsquoestensionesty che essi hanno estendono le capacitagrave di LATEX mettendo a disposizione delcompositore nuovi comandi o nuovi stili di composizione

1451 Come invocare i file di estensioneNel preambolo di questo testo sono stati invocati diversi pacchetti di estensionedi alcuni si egrave giagrave detto nel capitolo 4 Mentre i pacchetti descritti in quel capitolosono da usarsi virtualmente ogni volta che si scrive un documento scritto conuna tastiera nazionale (probabilmente in Italia con una tastiera italiana) con unalfabeto latino che contiene lettere accentate e in una lingua diversa dallrsquoingleseora si mostrano le invocazioni degli altri pacchetti richiesti per la composizionedi questo specifico testo

usepackagepict2e[20040801]usepackagegraphicxusepackagemflogousepackageamsmathamsfontsamssymbusepackageafterpage

Il comando di invocazione egrave usepackage che segue la sintassi seguente

usepackage[〈opzioni〉]〈pacchetto〉[〈data〉]

Le 〈opzioni〉 sono quelle specifiche del pacchetto invocato per esempio perbabel il pacchetto era stato invocato nel preambolo con il comando

usepackage[italian]babel

Il 〈pacchetto〉 puograve consistere nel nome di un solo file senza la specificazionedellrsquoestensione sty ma puograve anche consistere in una lista di nomi separati lrsquounodallrsquoaltro da una virgola La 〈data〉 egrave la data scritta secondo le norme ISO nella

Testatina

Corpo

Piedino

NoteMarginali

8

7

1

3

10

9

11

24

5

6

1 un pollice + hoffset 2 un pollice + voffset3 evensidemargin = 79pt 4 topmargin = 23pt5 headheight = 12pt 6 headsep = 18pt7 textheight = 598pt 8 textwidth = 345pt9 marginparsep = 7pt 10 marginparwidth = 115pt

11 footskip = 25pt marginparpush = 5pt (non mostrato)hoffset = 0pt voffset = 0ptpaperwidth = 597pt paperheight = 845pt

Testatina

Corpo

Piedino

NoteMarginali

8

7

1

3

10

9

11

24

5

6

1 un pollice + hoffset 2 un pollice + voffset3 oddsidemargin = 28pt 4 topmargin = 23pt5 headheight = 12pt 6 headsep = 18pt7 textheight = 598pt 8 textwidth = 345pt9 marginparsep = 7pt 10 marginparwidth = 115pt

11 footskip = 25pt marginparpush = 5pt (non mostrato)hoffset = 0pt voffset = 0ptpaperwidth = 597pt paperheight = 845pt

284 CLASSI ED ESTENSIONI

forma aaaammgg (anno con tutte quattro le cifre mese indicato con duecifre anche se la prima egrave uno zero giorno indicato con due cifre anche se laprima egrave uno zero) che indica la data rispetto alla quale quella del pacchettodeve essere uguale o posteriore questa indicazione serve per essere sicuri diusare pacchetti sufficientemente aggiornati come si vede nellrsquoesempio riportatosopra si egrave richiesto il pacchetto pict2e di data successiva o uguale al 1deg agosto2004 percheacute le versioni precedenti a questa data non disponevano di certi nuovicomandi introdotti in un secondo tempo

Si fa notare che le 〈opzioni〉 indicate nellrsquoinvocazione del pacchetto sono localia quel pacchetto e se questo non le riconosce viene emesso un avvertimento cheinforma che lrsquoopzione tale-e-tale non egrave stata riconosciuta Invece le 〈opzioni〉 spe-cificate nella invocazione del file di classe attraverso il comando documentclasssono globali nel senso che esse vengono passate anche alle successive invocazionidei pacchetti lrsquoopzione italian specificata per babel invece avrebbe potutoessere indicata fra le opzioni di documentclass e cosigrave avrebbe potuto essereusata senza bisogno di ripeterla anche da altri pacchetti come per esempiovarioref o layout il primo esegue le citazioni nella forma per esempio lsquo nellafigura ldquo35 della pagina 123rdquo rsquo il secondo pacchetto serve per disegnare inuna pagina a se stante il layout grafico della pagina indicando graficamentei rettangoli che descrivono la gabbia o la testatina e a parole le indicazionimetriche che nel disegno sono riportate solo mediante delle frecce Egrave appuntoil pacchetto che egrave stato usato per disegnare i layout della pagina 282 e dellasuccessiva

1452 I vari pacchetti e gli archivi internazionaliEgrave facile comprendere che i pacchetti disponibili siano numerosissimi lrsquoarchiviointernazionale ctan (che sta per Comprehensive TEX Archive Network) necontiene diverse migliaia ottenuti come contributi dei vari utenti di LATEX checome succede con il software libero hanno realizzato qualche estensione perrisolvere qualche loro problema contingente e hanno ritenuto che fosse utile ancheper per gli altri utenti perciograve hanno caricato il pacchetto nellrsquoarchivio in modoche chiunque potesse servirsene liberamente e gratuitamente

Il sistema degli archivi ctan egrave formato da tre archivi principali uno negli USAuno nel Regno Unito e uno in Germania che sono sempre sincronizzati lrsquouno conlrsquoaltro e costituiscono la sorgente principale delle estensioni e delle distribuzionigratuite del sistema TEX Sparsi per il mondo ci sono poi innumerevoli sitiche costituiscono i mirror dei tre archivi principali questi mirror vengonosincronizzati dai loro amministratori quasi in tempo reale ma generalmente nonsono in ritardo di piugrave di una settimana rispetto ai tre archivi principali Perquesto motivo crsquoegrave sempre la possibilitagrave di avere un archivio abbastanza vicinocosigrave che le connessioni internet siano le piugrave rapide possibile

Tutti gli archivi e quasi tutti i mirror hanno una pagina interattiva chepermette di cercare o per nome o per argomento i file che interessano solitamentesono anche predisposti per permettere di scaricare intere cartelle in formatocompresso cosigrave da essere sicuri di non dimenticare nulla per la strada

Le distribuzioni migliori come MiKTEX per le macchine Windows dispongonodi un wizard altre di un assistant altre di un package manager che permettonodi avere preliminarmente il nome di tutti i pacchetti disponibili e di scaricare sulproprio calcolatore solo i pacchetti che interessano

146 COME SCRIVERE NUOVI PACCHETTI 285

Gli archivi principali sono

camctanorgdantectanorgtugctanorg

In Italia lrsquounico mirror registrato egrave quello dellrsquoUniversitagrave di Roma Tor Vergataallrsquoindirizzo

cisuniRoma2it

ma molti si lamentano della lentezza di questo mirror perciograve lingua permet-tendo si puograve accedere ai mirror francesi svizzeri austriaci e in particolareallrsquoarchivio dellrsquoassociazione Dante (httpwwwdantede) localizzato nellaGermania meridionale il mirror localizzato in Svizzera allrsquoindirizzo ftpmirrorswitchchmirrortex o quello localizzato in Austria allrsquoindirizzohttpgdtuwienacatpublishingtexCTAN sono particolarmente effica-ci Nel seguito con ctan si indicheragrave indifferentemente lrsquoinsieme degli archiviinternazionali o semplicemente lrsquoindirizzo di base di uno degli archivi principalio di un mirror

146 Come scrivere nuovi pacchettiCercando bene si puograve quasi sempre trovare il problema giagrave risolto in un qualchepacchetto presente negli archivi

Tuttavia talvolta puograve essere necessario crearsi un pacchetto di estensionepersonale per questo scopo bisogna leggere con attenzione la giagrave citata guidaclsguide nella cartella del proprio sistema dedicata alla documentazione doclatexbase si scopriragrave che la cosa di per seacute egrave facilissima se crsquoegrave qualchedifficoltagrave questa risiede nella scelta di che cosa mettere nel pacchetto personale

Crsquoegrave perograve una risposta semplicissima tutti hanno bisogno di estensioni perso-nali e prima o poi si scrivono dei nuovi comandi ad uso personale che rispecchianoil proprio stile di gestione del file sorgente Possono essere macro per inserirecerti loghi o certi marchi che hanno a che fare con lrsquoistituzione alla quale siappartiene possono essere macro per scrivere sigle o abbreviazioni frequenti neitesti che si scrivono abitualmente possono essere nuovi ambienti che riflettonole proprie necessitagrave compositive possono essere anche semplici modifiche dicomandi standard

Bene tutto ciograve puograve essere collocato in un file chiamato in una manie-ra un porsquo personalizzata diversamente dal solito myfilesty per esempioestensionedi〈iniziali〉sty dove 〈iniziali〉 puograve consistere nelle iniziali del pro-prio nome e cognome o quantrsquoaltro personalizzi il vostro file Lrsquoestensione delnome del file deve essere sty

Seguendo le istruzioni della Guida il file deve cominciare con due righeimportantissime

NeedsTeXFormat〈formato〉[〈data〉]ProvidesPackage〈nome-del-pacchetto〉[〈data versione e descrizione〉]

Il 〈formato〉 se usate LATEX2ε come si suppone saragrave LaTeX2e la 〈data〉 saragrave ladata del formato che voi avete usato per scrivere le vostre macro lrsquoindicazione

286 CLASSI ED ESTENSIONI

di questa data serve per assicuravi che il vostro file per sbaglio non possa venireusato da voi (su unrsquoaltra macchina) o da altri con una versione obsoleta del〈formato〉 la data scritta nella forma ISO cioegrave aaaammgg puograve essere indicataopzionalmente anche nella riga nella quale si richiama con usepackage unpacchetto qualsiasi in modo da essere sicuri di non usare versioni obsoletenaturalmente dovete conoscere la data del pacchetto non obsoleto che vi serve

Il 〈nome-del-pacchetto〉 saragrave verosimilmente il nome del vostro file persona-le mentre la 〈data versione e descrizione〉 deve essere una stringa di parolepossibilmente di lunghezza non maggiore di una riga di caratteri della finestracomandi o del terminal o della console queste informazioni devono avere laforma seguente

〈aaaammgg〉 v〈versione〉 〈breve descrizione〉

La data in formato ISO egrave quella della creazione del pacchetto o della suaultima revisione La versione potete scriverla nella maniera che preferite Labreve descrizione deve essere una breve frase del tipo ldquoMacro di Mario Rossi percomporre il manuale di tricotetratomiardquo

Dopo queste due righe potete inserire tutte le definizioni che volete eorichiamare i pacchetti che volete terminate il file con endinput

Lrsquoargomento delle definizioni verragrave trattato nel capitolo 17

147 Non modificare i pacchetti esistentiAlcuni utenti di LATEX credono di poter risolvere i loro problemi compositivi an-dando a modificare i file di classe o i pacchetti presenti nella propria distribuzionedel sistema TEX o scaricati da ctan

Questo deve essere assolutamente evitato Non lo si ripeteragrave mai ab-bastanza ma questa pratica oltre ad essere vietata dalla licenza a cui sonosottoposti quasi tutti i pacchetti esistenti egrave una pratica autolesionista

I modi corretti di procedere sono i seguenti

1 Se le modifiche da apportare alla classe o al file di stile sono numerose ilmodo migliore di procedere egrave quello di copiare il file in una cartella del-lrsquoalbero personale texlatex〈cartella〉 Il nome di questa 〈cartella〉verragrave scelto in modo mnemonico ma diverso dai nomi delle cartelle giagraveesistenti il file copiato verragrave ribattezzato con un altro nome per esempiose si vuole modificare la classe book si copieragrave il file bookcls nella propria〈cartella〉 dandole per esempio il nome tttomiaclsIn questo nuovo file cambiate il contenuto di ProvidesClass per esempiomodificate la dichiarazione

ProvidesClassbook[20040216 v14f Standard LaTeX document class]

nel modo seguente

ProvidesClasstttomia[20070310 v10

Mario Rossi classe per il libro di TricoTetraTomia]

147 NON MODIFICARE I PACCHETTI ESISTENTI 287

In questo nuovo file apportate tutte le modifiche che desiderate e aggiunge-teci tutti i comandi che volete usare questo siete liberi di farlo secondo lalicenza delle classi ma non siete liberi di modificare il file originale senzacambiargli il nomeNello stesso tempo voi potete usare la classe standard in qualunque altracircostanza questa inoltre vi potragrave servire per seguire la stessa strada connomi diversi se volete adattare la classe book alla composizione di un altrolibroLo stesso procedimento puograve essere seguito per modificare i file di stile

2 Potete modificare solo qualche comando che vi interessa in modo particolarecopiate dal file di classe originale o dal file di stile i comandi che voletemodificare e incollateli nel vostro file mymacrossty di comandi e macropersonali sostituite il comando newcommand con renewcommand e fateoperazioni simili per le definizioni degli ambienti Nel corpo della definizioneinserite tutte le modifiche che volete

Ricordate che i comandi definiti dentro i file di classe o di stile originalicontengono spessissimo la lsquoletterarsquo egrave lecito usare questo segno come se fosseuna lettera dellrsquoalfabeto solo allrsquointerno dei file di classe o di stile quindi ancheallrsquointerno del vostro file mymacrossty State attenti perograve a non combinarepasticci modificare o ridefinire comandi che contengano nel loro nome vi esponeal rischio di modificare un comando di sistema in modo errato e tutto il vostrosistema TEX potrebbe diventare inutilizzabile la riparazione egrave semplicissimapercheacute vi basta tornare sui vostri passi eliminando dal vostro file le modifiche ole definizioni che potrebbero avere sconvolto il sistema e poi potete ricominciarecon piugrave attenzione stando bene attenti a che cosa ridefinite o modificate Usatesempre i comandi newcommand e renewcommand che controllano la precedenteesistenza di comandi con lo stesso nome potete usare per queste verifiche anche icomandi di sistema ifdefinable e ifundefined le rispettive sintassi sonole seguenti

ifdefinable〈comando〉〈azione〉ifundefined〈nome del comando〉〈azione〉

Il comando ifdefinable verifica che il 〈comando〉 che si vorrebbe definiresia definibile cioegrave che (a) non sia stato giagrave definito (b) sia diverso da relax (c)non cominci con end Se sono verificate queste condizioni allora si puograve eseguirelrsquo〈azione〉 verosimilmente la definizione vera e propria del 〈comando〉

Invece ifundefined verifica che il 〈nome del comando〉 (il comando privatodellrsquoiniziale backslash) sia davvero una entitagrave priva di definizione e se egrave verificataquesta condizione esegue lrsquo〈azione〉 verosimilmente la definizione

Evitate di usare i comandi primitivi di definizione come def edef gdefe xdef di cui si parleragrave piugrave avanti nel capitolo 17 percheacute questi comandieseguono le definizioni in modo incondizionato e rischiate di azzoppare il sistemaPer altro voi vedrete che nei file di classe e di stile questi comandi sono usatispessissimo lasciateli dove sono ma non usateli voi stessi

Per le definizioni di nuovi comandi o per la modifica di comandi esistentibisogna consultare il capitolo 17 Tuttavia la raccomandazione piugrave importanteegrave quella di procedere lentamente con le lsquoacrobaziersquo consentite dal linguaggio

288 CLASSI ED ESTENSIONI

di programmazione interpretabile da pdftex Documentatevi adeguatamente eprocedete per gradi imparare il linguaggio di programmazione di pdftex egrave allaportata di tutti ma richiede pazienza attenzione precisione e costanza

Non si raccomanderagrave mai abbastanza prima di mettersi a creare macrodifficili tortuose inaffidabili si cerchino prima le documentazioni dei pacchettiesistenti A questo scopo egrave molto utile essersi caricati una distribuzione completadel sistema TEX Dopo aver esaminato la documentazione si studino i pacchettiesistenti anche se allrsquoinizio sembreragrave estremamente arduo capirci qualche cosaci si abitua con il tempo e con la pazienza Poi se nonostante tutto si desideraprodurre delle macro personali diverse da quelle che si trovano negli archivioppure veramente nuove allora si disporragrave di tutti i ferri del mestiere percimentarsi in prima persona e probabilmente le macro prodotte non sarannoaffatto difficili tortuose o inaffidabili

Un amico che giagrave conosca il linguaggio di sicuro egrave un grande aiuto macome viene scritto in una delle citazioni riportate alla fine di ogni capitolo nelTEXbook2

If you canrsquot solve a problemyou can always look up the answer

But please try first to solve it by yourselfthen yoursquoll learn more and yoursquoll learn faster

mdash Donald E Knuth The TEXbook (1983)

La raccomandazione del padre del sistema TEX deve essere presa con grandeserietagrave

2Se non riesci a risolvere un problema puoi sempre andare a leggere la soluzione [puoisempre chiedere ad un amico] Ma per favore prova prima a risolverlo da solo imparerai dipiugrave e piugrave in fretta

Capitolo 15

BIBTEX la bibliografia

151 IntroduzioneCome si egrave giagrave detto LATEX compone la bibliografia come un testo specialecostituito da un elenco di voci etichettate con unrsquoetichetta di vari stili macitabili con una chiave mnemonica scelta dallrsquoautore o fissata in altro modo

Il problema della bibliografia non egrave tanto quello di preparare lrsquoelenco conla sintassi descritta per lrsquoambiente thebibliography quanto quello di elencare iriferimenti in un ordine logico nello scrivere tutte le informazioni necessarie alreperimento dellrsquoopera citata e specialmente nellrsquoessere coerenti nello stile dipresentazione di tutte queste informazioni

Vale la pena di ricordare che le bibliografie e gli elenchi bibliografici sonoregolati dalla norma ISO 690 [22] e dalla norma UNI 6017 [50] Queste normespecificano quali siano le informazioni necessarie e quelle facoltative richieste daun riferimento correttamente conforme alle norme In buona sostanza sono tuttele informazioni che permettono di identificare univocamente il riferimento citatoLe norme non specificano in che stile esse debbano essere stampate lrsquoimportante egraveche informazioni dello stesso tipo siano stampate con lo stesso stile Il programmaBIBTEX consente di rispettare le norme e di mantenere lo stile di composizione inmodo uniforme per tutti i vari riferimenti di vario tipo Forse merita ricordare chele opere antiche o classiche vanno comunque identificate univocamente percheacutele varie edizioni possono essere differenti piugrave o meno complete aggiornate suimanoscritti o codici di piugrave recente disponibilitagrave eccetera Insomma non bastacitare ldquoManzoni I promessi sposirdquo senza citare la particolare versione edizionecritica edizione commentata a cui ci si sta riferendo

152 Il programma BIBTEXIl programma BIBTEX serve per rispondere alle necessitagrave descritte sopra in modotipograficamente perfetto e versatile

Questo programma richiede che si disponga di un database di riferimentibibliografici scritto in una certa maniera che fra poco verragrave sommariamenteillustrata esso trae da questo database solo i riferimenti citati in un datodocumento e ne prepara lrsquoelenco generalmente ordinato alfabeticamente secondo

289

290 CAPITOLO 15 BIBTEX LA BIBLIOGRAFIA

il cognome del primo autore nella forma corretta per essere trattato da LATEX ecomposto secondo quanto desiderato

1521 Come specificare lo stile bibliograficoNel preambolo del documento bisogna specificare lo stile compositivo dellrsquoelencobibliografico lo si fa con il comando bibliographystyle secondo la seguentegrammatica

bibliographystyle〈stile bibliografico〉

Eventualmente questo comando puograve essere preceduto dalla specificazione diun pacchetto che interagisce con la composizione della bibliografia mettendo adisposizione diverse varianti dei comandi di citazione per esempio il pacchettonatbib

1522 Come comporre la bibliografiaSi inserisce il comando bibliography con la seguente sintassi nel punto dovesi vuole comporre la bibliografia

bibliography〈database bibliografico〉

dove 〈database bibliografico〉 egrave il nome del database bibliografico che si intendeusare disponendo di piugrave database e dovendo citare opere elencate in diversidatabase il 〈database bibliografico〉 puograve consistere in una lista di nomi separatida virgole

Gli stili bibliografici distribuiti di default sono file con lrsquoestensione bst e sitrovano nella cartella bibtexbst dove sono raccolti in diverse sottocartelleGli stili piugrave diffusi sono unsrtbst e plainbst il primo non esegue nessunordinamento ma le opere sono elencate nello stesso ordine in cui vengono citatecon il secondo stile le opere vengono ordinate secondo lrsquoordine alfabetico del primoo unico autore o quanto possa sembrare il nome di un autore al programmapoi per anno e poi per ordine alfabetico del titolo Con questi stili le operevengono citate per numero drsquoordine racchiuso fra parentesi quadre come si faabitualmente nei lavori tecnicondashscientifici Per citazioni diverse bisogna affidarsial pacchetto di estensione natbib alla cui documentazione si rinvia per i dettaglinecessari

Questo testo ha la sua bibliografia composta adattando lo stile bibliograficoplainbst alla lingua italiana mediante il nuovo file di stile plain_itabstla composizione vera e propria egrave stata fatta specificando a documentclasslrsquoopzione openbib il risultato egrave un elenco bibliografico ordinato secondo lrsquoordinealfabetico come detto sopra ma la voce egrave composta in modo aperto cioegrave ognielemento che forma la voce egrave considerato come un capoverso a seacute stante per cuinella prima riga compare da solo il nome o la lista dei nomi degli autori o deicuratori nella seconda riga il titolo e via di seguito nelle righe successive vedila Bibliografia alla pagina 558

Tutti questi stili ipotizzano che la bibliografia sia scritta in inglese non egravedifficile crearsi degli stili personalizzati in particolare in italiano ricorrendo al filemakebsttex che provvede a tutto il necessario pur di rispondere lsquocorrettamentersquoad un certo numero di domande questo file va elaborato con LATEX e richiede

152 IL PROGRAMMA BIBTEX 291

che si modifichi un file modello dal nome merlinmbs tutta lrsquooperazione nonegrave difficile ma richiede che si sia giagrave acquisita una certa dimestichezza con idatabase bibliografici e con i vari stili bibliografici

Naturalmente per le varie piattaforme esistono delle interfacce grafiche checonsentono di comporre i database bibliografici nel modo corretto tanto percitarne uno per il Mac OS X esiste (ed egrave distribuito mediante MacTEX insiemeal sistema TEX) il programma BibDesk

1523 Chiavi e citazioniMa la cosa non finisce qui per avere la bibliografia composta il programmadeve disporre delle chiavi di citazione perciograve bisogna lanciare LATEX appenaha finito e non ci sono errori tranne eventualmente avvisi che alcune chiavidi citazione non sono state lsquorisoltersquo (il che significa che LATEX non ha trovatoaltro che le chiavi cioegrave gli argomenti dei comandi cite ma non sa a che cosacorrispondano queste chiavi) bisogna passare alla fase successiva

Per altro in certe circostanze sarebbe desiderabile introdurre nellrsquoelencobibliografico anche opere non espressamente citate nel testo al limite tutte leopere contenute nel database bibliografico Per ottenere questo scopo allrsquointernodel documento (cioegrave non nel preambolo) si puograve usare il comando nocite conla seguente sintassi

nocite〈elenco delle chiavi〉oppurenocite

dove 〈elenco delle chiavi〉 egrave una lista di una o piugrave chiavi di citazione di opere chesi vogliono elencare nellrsquoelenco bibliografico anche se non sono state usate comeargomenti del comando cite allrsquointerno del documento Se invece dellrsquoelencodelle chiavi si usa lrsquoasterisco allora nellrsquoelenco bibliografico compariranno tuttele opere contenute nel database bibliografico esistono delle circostanze in cuivale la pena di comporre un database apposta (traendo le informazioni da altridatabase mediante la nota tecnica del ldquotaglia e incollardquo) in modo da crearenel documento composto una bibliografia di consultazione non di riferimentocome solitamente avviene quando le opere elencate vengono citate nel corpo deldocumento

A questo punto bisogna lanciare BIBTEX o da una finestra comandi o terminalo console oppure bisogna cliccare sullrsquoapposito bottone dello shell editor Inquesto modo BIBTEX apre il o i database specificati cerca le voci corrispondentialle opere citate in base alle chiavi raccolte da LATEX nel giro precedente le ordinasecondo i criteri di ordinamento specificati nello stile bibliografico e finalmentegenera un file con estensione bbl che contiene in linguaggio LATEX tutto quelloche occorre per comporre la bibliografia

Finalmente si lancia nuovamente LATEX e questa volta viene composta labibliografia e vengono decifrate le chiavi ma non egrave finita le chiavi sono decifratema non sono ancora state usate per le citazioni bisogna lanciare ancora una voltaLATEX in modo che possa usare le chiavi decifrate al giro precedente cosigrave che leinformazioni ci siano tutte e siano state usate tutte al posto giusto Una ulteriorepassata del documento a LATEX non guasta serve per giustificare correttamenteil documento e puograve rendere corretti i riferimenti incrociati che avrebbero potutorisultare modificati dallrsquouso delle chiavi

292 CAPITOLO 15 BIBTEX LA BIBLIOGRAFIA

Esercizio 151 Percheacute dopo la seconda volta che si lancia LATEX dopo averlanciato BIBTEX i riferimenti incrociati potrebbero non essere correttiPercheacute quindi egrave necessario lanciare LATEX ancora una volta

In sostanza la generazione e composizione della bibliografia avviene in quattroo cinque fasi cosigrave

(1) LATEX (2) BIBTEX (3) LATEX (4) LATEX (5) LATEX

Non egrave il caso di spaventarsi per questa (apparente) complicazione bisognaricordare prima di tutto che un buono shell editor dispone quasi sempre di unbottone da cliccare che esegue tutte le passate che occorrono per avere la biblio-grafia composta correttamente e i riferimenti incrociati fra loro perfettamentecoerenti a cosa servirebbe sennograve un buono shell editor

Nello stesso tempo se lo shell editor non disponesse di quel magico bottonee fosse necessario procedere a mano attraverso la finestra comandi o il terminalo la console eseguire quei cinque comandi richiede una manciata di secondila compilazione di un testo di molte centinaia di pagine diciamo 700 richiedecon i PC o laptop moderni qualche decina di secondi BIBTEX richiede qualchesecondo lrsquointera operazione da eseguirsi una volta sola alla fine della lavorazionedel documento puograve richiedere un paio di minuti siccome anche lrsquoindice analiticorichiede lo stesso numero di passate si puograve ottimizzare lrsquooperazione prendendodue piccioni con una fava Non egrave terribile

153 I database bibliograficiI database bibliografici sono dei file scritti in testo puro con i caratteri ASCIIo anche con i caratteri accentati gestibili con lrsquoinput encoding preferito per latrasportabilitagrave sarebbe meglio che si trattasse di caratteri ASCII puri (codici a 7bit) e quindi i segni letterali con diacritici dovrebbero essere rappresentati conle sequenze per gli accenti che non sono state descritte finora da nessuna partema si rinvia a qualunque guida o manuale lsquooldstylersquo di LATEX1 qui non si vuolefare gli schizzinosi circa le tradizionali modalitagrave di scrivere le lettere accentateimmaginando di usare una tastiera USA priva di tasti speciali per i caratteriaccentati semplicemente si ritiene molto piugrave comodo servirsi delle potenzialitagravedel proprio PC o laptop per gestire i caratteri con diacritici e le potenzialitagrave deifile di estensione di LATEX per comporre correttamente quelle lettere speciali

Il punto egrave che in Europa e in Italia in particolare egrave difficile comprare un PCo un laptop con una tastiera diversa da quella nazionale In Italia in partico-lare scrivere le vecchie sequenze LATEX per gli accenti sarebbe particolarmentefastidioso percheacute lrsquoaccento italiano piugrave diffuso egrave quello grave e dalla tastieraitaliana manca qualunque tasto o semplice combinazione di tasti che consenta diintrodurlo bisogna ricorrere al tastierino numerico il che con i laptop si puogravefare ma richiede ulteriori tasti da premere

Dopo questa lunga premessa del fatto che sarebbe meglio usare i caratteriASCII ma che con la tastiera italiana la cosa egrave particolarmente fastidiosaveniamo al database ogni voce del database comincia con la dichiarazione deltipo di documento a cui la voce si riferisce questa dichiarazione egrave una delleseguenti parole article book booklet conference inbook incollection

1Si veda comunque in appendice il paragrafo G25 e la tabella G1

153 I DATABASE BIBLIOGRAFICI 293

inproceedings manual masterthesis misc phdthesis proceedings tech-report unpublished Ognuna di queste categorie di documenti egrave spiegata nelladocumentazione di BIBTEX in docbibtexbtxdocdvi

In base alle norme ISO ognuna di queste tipologie di documento richiedecerte informazioni quindi nel descrivere il documento bisogna usare un certonumero di parole chiave se per un certo tipo di riferimento una voce obbligatoriamanca quando BIBTEX viene eseguito vengono emessi degli avvertimenti del fattoche la citazione tale egrave priva della specificazione talaltra Le chiavi facoltative eobbligatorie per ogni tipologia sono specificate nella documentazione citata

Qui ci limiteremo a qualche piccolo esempio commentando ciograve che apparenelle voci del database

manualmanrefbibtitle= Documentation - Bibliographical references -

Essential and supplementary elementsnote= Norma ISO 690--1975organization=International Organization for Standardizationaddress= Ginevrayear= 1975key= ISO 690

manualmanpatashnikauthor= Oren Patashniktitle= textscBibTeXingorganization=TUGyear= 1988note= Il file textttbtxdocdvi contenente questa

documentazione generalmente egrave giagrave presente nellacartella texttttexmfslash docslash bibtexpoicheacute fa parte integrante del sistema TeX

bookbooklatexeauthor= Leslie Lamporttitle= LaTeX a document preparation system ---

Userrsquos guide and reference manualpublisher= Addison--Wesley Publ Coaddress= Reading Massyear= 1994edition= 2

Come si vede dai tre esempi di voci bibliografiche riportati sopra la tipologiadel documento viene sempre preceduta dal segno e il contenuto della voce egraveracchiuso fra parentesi graffe Il primo elemento contenuto fra queste parentesi egravela chiave di citazione nel file LATEX quindi per esempio le norme ISO per lecitazioni bibliografiche devono essere citate con citemanrefbib e non conunrsquoaltra chiave che piaccia di piugrave

Le altre informazioni relative al documento citato sono specificate medianteuna espressione del tipo

294 CAPITOLO 15 BIBTEX LA BIBLIOGRAFIA

〈parola-chiave〉 =〈testo〉

dove lrsquoultima virgola puograve essere omessa solo nellrsquoespressione finale Ciograve che nel〈testo〉 compare fra graffe non subisce modificazioni quando viene trascritto nelfile di uscita altrimenti BIBTEX spesso cambia le maiuscole in minuscole con ilrisultato di alterare quello che si vuole scrivere oppure di cambiare lrsquoortografiadi macro che verranno poi interpretate da LATEX

Le norme ISO sono classificate come manual questa tipologia non ha bisognodellrsquoindicazione dellrsquoautore per consentire un qualunque ordinamento allora egraveopportuno inserire una parola chiave key che serve come chiave di ordinamentoin mancanza di altre chiavi predefinite per questo scopo

Anche la documentazione di BIBTEX egrave classificata come manuale ma lrsquoautoreegrave noto ed indicato per cui non egrave necessaria una chiave supplementare

Lrsquoordine in cui vengono scritte le 〈parole-chiave〉 e le relative espressioni nonegrave essenziale lrsquoimportate egrave che ci siano tutte quelle relative ad una data tipologiaed eventualmente ci siano quelle facoltative che possono agevolare lrsquoordinamentosecondo qualche criterio dipendente dallo stile bibliografico prescelto

Dipende dal compositore decidere se conviene predisporsi e tenere aggiornatouno o piugrave database bibliografici oppure se comporre di volta in volta la lista deiriferimenti mediante la compilazione del contenuto dellrsquoambiente thebibliography inizialmente si egrave un porsquo restii a creare un database bibliografico poi se si superaquesto scoglio iniziale se ne apprezza completamente la validitagrave e la comoditagrave

Qui vorremmo consigliare di fare uso dei database bibliografici tutto sommatobisogna inizialmente superare uno scoglio di tipo psicologico ma via via cheil proprio database (o i propri database distinti per tipologia di contenuto) siarricchiscono di voci il lavoro per tenerli aggiornati diventa sempre piugrave modestoIn compenso lrsquouso degli stili bibliografici consente di comporre le informazionirichieste in modo coerente se la casa editrice a cui si manda un lavoro vuoleuna bibliografia composta in un altro modo il database rimane lo stesso mala nuova composizione viene eseguita in sostanza lanciando BIBTEX e lasciandofare tutto il resto a LATEX Si immagini di dover invece correggere a mano unalista composta direttamente entro lrsquoambiente thebibiography se la bibliografiaconsiste anche soltanto di poche decine di voci le possibilitagrave di commettereerrori ma soprattutto di non essere coerenti sono numerosissime e il risultatofinale non saragrave allrsquoaltezza del tempo impiegato

Tipicamente gli elenchi formati secondo determinati stili sono operazioni daeseguire a macchina la bibliografia egrave uno di questi elenchi la conclusione delsillogismo egrave ovvia si componga la bibliografia a macchina

Piuttosto se gli stili disponibili non sono adeguati e se fosse necessario compi-lare degli stili nuovi non si trascuri la possibilitagrave di servirsi del file makebsttexallrsquoinizio poicheacute le domande a cui bisogna rispondere sono in inglese ci si puogravetrovare un porsquo frastornati dai termini tecnici insoliti la prima volta che si compiequesta operazione egrave normale commettere errori e dover eseguire di nuovo lacreazione dello stile ma il gioco vale la candela e il risultato finale di solito egrave digrande soddisfazione

154 QUANTI DATABASE BIBLIOGRAFICI 295

154 Quanti database bibliograficiEgrave chiaro che questa egrave una domanda insolita e alla quale egrave difficile dare unarisposta Giagrave prima si egrave accennato alla possibilitagrave di creare database bibliograficidivisi per argomenti questa egrave giagrave una risposta parziale ma bisogna associarla altipo di documento che si vuole comporre

In un articolo o rapporto scientifico egrave possibile che si debbano riportaresolo le voci bibliografici dei riferimenti citati perciograve anche un unico databasegenerale puograve essere utile come potrebbero esserlo diversi database specialisticiInvece un testo di tipo illustrativo (in certe universitagrave si usa lrsquoorrenda parolacompilativo a cui egrave spesso associata una connotazione negativa ndash se il testoraccoglie solo titoli di articoli e di riviste effettivamente serve a poco ma se sitratta di una raccolta ragionata commentata verificata di opere che descrivonodavvero lo stato dellrsquoarte allora il testo diventa tuttrsquoaltro che spregevole anziegrave una benedizione) allora egrave probabile che lrsquoelenco contenga anche opere noncitate nel testo ma venga usato il comando nocite per comporre nellabibliografia lrsquointero database bibliografico

Come gestire e mantenere diversi database bibliografici Certamente usandoprogrammi adatti ma sarebbe meglio evitare sovrapposizioni sarebbe meglioche ogni riferimento compaia una sola volta nei database generali Come fareUsando i link simbolici oggi disponibili anche sulle macchine Windows a partireda Windows Vista

Lrsquooperazione si svolge in questo modo in una cartella personale si raccolgonotutti i database bibliografici che interessano magari divisi per argomenti ocon qualche altro criterio Si cureragrave di controllare che ogni opera compaia unasola volta e non venga ripetuta in opere diverse si controlleragrave che le chiavisiano davvero distinte A questo proposito conviene moltissimo comporre lechiavi mediante un prefisso tipo lsquolibrorsquo lsquomanualersquo lsquoarticolorsquo eccetera (megliose abbreviati in modo univoco) separato dal nome lsquopropriorsquo dellrsquoopera citatamediante per esempio due punti come si egrave indicato nellrsquoesempio della pagina 293Il nome proprio puograve essere formato dal cognome del primo autore seguito da altreinformazioni si puograve usare qualunque carattere tranne la virgola ma egrave meglioevitare gli spazi Sono cose giagrave dette ma conviene ripeterle

Via via che si compone un particolare documento si tengono aperti anche i filedei database bibliografici al fine di riportare le chiavi di chiamata semplicementecopiandole da ciascun database (senza perdere lrsquooccasione di verificare che glielementi necessari allrsquoidentificazione dellrsquoopera siano presenti non debbano essereaggiornati e cose di questo genere) se per questa operazione bisogna aprireun altro database si coglie lrsquooccasione per trascriverne il nome nellrsquoelenco didatabase passati al comando bibliography Nel documento non si usa ilcomando nocite ma si lascia a BIBTEX il compito di estrarre dai databasetutti i riferimenti citati e di comporli come si deve

Ma BIBTEX cerca i database nella stessa cartella dove si trova il file principaledel documento che si sta componendo mentre i database si trovano in unacartella personale dellrsquoutente dedicata a conservare tutti i database bibliograficiAllora nella cartella che contiene il file principale si aggiungono i link simbolici aifile che si trovano altrove Per le macchine di tipo UNIX (Linux Mac eccetera)si useragrave la sintassi

ln -s 〈percorso completo del file vero〉 〈nome del link simbolico〉

296 CAPITOLO 15 BIBTEX LA BIBLIOGRAFIA

mentre su una macchina Windows con sistema operativo Vista o successivo ilcomando diventa

mklink 〈nome del link simbolico〉 〈percorso completo del file vero〉

Solitamente si usa come 〈nome del link simbolico〉 il nome del file vero privatodi tutto il percorso che vi conduce di cartella in cartella a partire dal nomedel disco fisso Il link simbolico fa credere al sistema operativo che nella cartelladove crsquoegrave il nome del link simbolico ci sia davvero il file originale In questomodo lrsquoaggiornamento o la correzione del file vero esistente in unrsquounica copia siriflette automaticamente su tutti i documenti che hanno fatto riferimento a queldatabase tramite il link simbolico

Diversa egrave la situazione se si vuole comporre un documento informativo dovesi vogliono riportare tutti i riferimenti di un database bibliografico anche quellinon citati Per questo scopo egrave necessario creare nella cartella del file principaledel documento un nuovo database bibliografico che contenga tutte e sole le vociche si desidera riportare nella bibliografia Questa non egrave una operazione difficileda fare basta copiare dai database principali i dati riferiti solo alle opere cheinteressando incollandone le righe nel nuovo database dedicato al particolaredocumento Dopo nocite e BIBTEX fanno il resto componendo la bibliografiacome si deve

Egrave incredibile quanto tempo si risparmia a seguire le indicazioni riportatesopra Ma egrave anche incredibile quanto risultino composte bene le bibliografie conquesti strumenti srsquointende che i database bibliografici non devono contenereerrori ndash questo va da seacute

Oggi poi usando il pacchetto di estensione biblatex si possono ottenerebibliografie perfette composte anche con stili diversi da quelli disponibili nelladistribuzione del sistema TEX

Capitolo 16

LATEX indici e glossari

161 IntroduzioneGli indici analitici e i glossari possono essere molto utili nelle opere di consulta-zione LATEX offre un grande aiuto per la compilazione di questi elenchi ma laparte difficile resta quella dellrsquoautore che deve decidere che cosa inviare allrsquoindiceanalitico o al glossario se deve usare voci indipendenti o subordinate se devedistinguere il modo di scrivere le pagine a seconda di come il lemma di quellavoce viene trattato definizione esempio drsquouso applicazione eccetera

162 Lrsquoindice analiticoLrsquoindice analitico egrave un elenco di voci ordinate alfabeticamente anche con alcunilivelli di subordinazione e vicino ad ogni lemma viene inserito il numero dellapagina dove quel lemma viene trattato Il lemma puograve essere trattato in diversipunti del testo quindi di fianco al lemma puograve comparire un elenco di numeri dipagina

La raccolta di queste informazioni viene fatta mediante il comando indexla sintassi egrave

index〈lemma〉

Se nel preambolo crsquoegrave lrsquoistruzione makeindex lrsquoinformazione specifica relativaal 〈lemma〉 viene inviata ad un file ausiliario da elaborare in un secondo tempose quellrsquoistruzione manca nel file ausiliario non viene scritto niente Quandoi calcolatori erano lenti era importante non rallentare lrsquoelaborazione del filesorgente con operazioni non strettamente necessarie oggi la cosa non egrave piugrave cosigraveimportante ma visto che lrsquoindice analitico egrave lrsquoultima cosa che si compone in unlibro egrave bene non perdere tempo con questa informazione fincheacute non si egrave alla fineo quasi alla fine

Lrsquoinformazione che viene scritta da LATEX nel file ausiliario (il cui nome halrsquoestensione idx) egrave del tipo

indexentry〈lemma〉〈pagina〉

297

298 CAPITOLO 16 LATEX INDICI E GLOSSARI

Per ottenere questa raccolta di dati basta collocare lrsquoistruzione index conil suo argomento lsquoattaccatarsquo cioegrave senza lasciare spazi alla parola che si vuoleindicizzare Per esempio

la tecnologia dei transistoriindextransistoreNPNindextransistoreNPN

1621 Il programma makeindexPer elaborare il file idx in modo da metterlo nella forma giusta cioegrave in ordinealfabetico strutturato per lemmi sottolemmi e sotto-sottolemmi con gli elenchidi numeri di pagine senza doppioni o con intervalli eventualmente composti concaratteri diversi a seconda dellrsquouso del lemma esiste il programma makeindex sitratta di un programma da lanciare a mano dalla finestra comandi o dal terminalo dalla console oppure premendo lrsquoopportuno pulsante dello shell editor

Questo programma esamina il 〈lemma〉 come trascritto senza modifichedallrsquoargomento di index al file idx e lo elabora secondo quanto vi trovaindicato

Infatti quello che appare in 〈lemma〉 non egrave necessariamente il solo lsquolemmarsquo maanche informazioni ausiliarie che facilitano il compito del programma makeindex

Nel primo esempio elementare indicato sopra il 〈lemma〉 egrave costituito sempli-cemente dalla parola lsquotransistorersquo questa parola serve a diversi scopi

1 indica che si tratta di un lemma di primo livello

2 indica che la chiave con cui eseguire lrsquoordinamento alfabetico egrave lsquotransistorersquo

3 indica che va riportato nellrsquoindice analitico tale e quale vale a dire stampatocon il font di default con cui viene composto lrsquoindice

4 indica che il numero della pagina in cui compare va scritto anchrsquoesso con ilfont di default

Strutturando il 〈lemma〉 in modo piugrave articolato le varie funzioni indicatenella precedente enumerazione possono essere trattate in modo diverso cosigrave dafar apparire il livello del lsquolemmarsquo nellrsquoindice per indicare una diversa chiave diordinamento per indicare come scrivere il lsquolemmarsquo nellrsquoindice e come stampareil numero della pagina la strutturazione consente anche di indicare lrsquoinizio e lafine degli intervalli di pagine per inserire nellrsquoindice il rinvio ad un altro lemmaeccetera

I dettagli sono spiegati bene nella documentazione del programma makeindexche si trova nella cartella docmakeindex dove non solo egrave contenuto il filemakeindexdvi ma anche un semplice tutorial inddvi

Sommariamente qui si riportano due esempi

1 Scrivendo

indextransistoreNPN

il lemma lsquoNPNrsquo viene scritto strutturato sotto al lemma lsquotransistorersquo

2 Scrivendo

163 IL GLOSSARIO 299

〈job〉tex LATEX 〈job〉idx makeindex 〈job〉ind

CBeccari

ndashpi

ctur

e

Figura 161 Le fasi per la produzione dellrsquoindice analitico

indexambienteenumeratetextsfenumerate

il lemma lsquoenumeratersquo viene scritto con il font senza grazie e viene strutturatosotto al lemma lsquoambientersquo

Naturalmente per sfruttare tutta la forza del programma makeindex bisognaleggere attentamente la documentazione citata e prendere esempio dal tutorialmenzionato sopra

1622 La composizione effettiva dellrsquoindice analiticoLa composizione effettiva dellrsquoindice analitico avviene specificando nel file sorgenteper LATEX

input〈fileind〉

dove 〈file〉 egrave il nome del lsquojobrsquo e ind ne egrave lrsquoestensione Il lsquojobrsquo coincide con ilnome del file sorgente per LATEX che ha dato luogo alla raccolta dei dati perlrsquoesecuzione dellrsquoindice analitico ed egrave stato elaborato da makeindex secondo loschema della figura 161 Questo file contiene anche i comandi di apertura e dichiusura dellrsquoambiente theindex quindi se non si vuole altro basta semplicementeeseguire lrsquoinclusione di questo file tramite il comando input

Come la figura dimostra chiaramente per ottenere la composizione definitivadellrsquoindice analitico bisogna lanciare LATEX ancora una volta percheacute fincheacute ilfile 〈job〉ind non egrave disponibile lrsquoindice non puograve essere composto (vedi perograve piugraveavanti)

Usando il pacchetto di estensione makeidx egrave possibile servirsi del semplicecomando printindex che provvede da solo a generare lrsquoambiente e a comporrelrsquoindice analitico

Siccome i numeri delle pagine devono essere quelli definitivi egrave evidente chela composizione dellrsquoindice analitico deve essere in assoluto lrsquoultima operazioneda fare se si deve eseguire una qualche correzione nel testo questa correzionecomporta anche la correzione dellrsquoindice analitico vale a dire la triplice esecuzionedi LATEX con lrsquoesecuzione di makeindex dopo la prima di LATEX Per fortunagli shell editor hanno generalmente un bottone solo che esegue tutta questaprocedura per altro necessaria anche per comporre la bibliografia usando BIBTEX

163 Il glossarioUn glossario egrave un elenco di voci accompagnate da una breve spiegazione talvoltaappare anche la pagina del testo dove viene riportata una spiegazione menosuccinta

Il procedimento per produrre un glossario egrave simile a quello usato per comporrelrsquoindice analitico ma egrave un porsquo piugrave artigianale come si vedragrave fra poco

300 CAPITOLO 16 LATEX INDICI E GLOSSARI

Lrsquoinizio consiste nel marcare il testo sorgente in una maniera simile a quelladellrsquoindice analitico

glossary〈voce〉

Lanciando LATEX se il preambolo contiene lrsquoistruzione makeglossary vieneprodotto anche un file 〈job〉glo che contiene tutte le voci di cui si vuol generareil glossario accompagnate dal numero della pagina dove esse compaiono insiemead una loro spiegazione non succinta

Lanciando il programma makeindex dalla linea di comando

makeindex -s ggloist -o 〈job 〉gls 〈job 〉glo

si produce lrsquoelenco alfabetizzato 〈job〉gls delle parole di cui si desidera comporreil glossario

Bisogna aprire questo file e aggiungere la breve spiegazione oltre che acorreggere la forma di stampa del numero di pagina (per esempio per cancellarlose esso non svolge nessuna funzione specifica come quando il glossario non egravealtro che un elenco di simboli o di abbreviazioni) poi bisogna comporlo in unamaniera simile a quello che si fa per la composizione dellrsquoindice analitico

In questo senso la composizione del glossario egrave un porsquo piugrave artigianale inquanto bisogna intervenire ancora sul file alfabetizzato

Esistono diversi pacchetti in rete per comporre glossari o simili elenchicommentati Qui si suggerisce il pacchetto glossary scaricabile dagli archivictan esso offre una maniera comoda per scrivere la 〈voce〉 in modo che contengadirettamente anche la descrizione della voce cosigrave che quando si compone il filealfabetizzato esso sia giagrave pronto per essere composto con LATEX Il pacchettoovviamente definisce il comando printglossary del tutto simile nelle suefunzioni a printindex

Si raccomanda la lettura attenta della documentazione del pacchetto glossarypercheacute esso offre diverse altre funzioni avanzate che possono tornare molto comodeper la generazione di un glossario e per lrsquoamministrazione delle voci da inserirvi

164 Come modificare la composizione dellrsquoindi-ce analitico

Quanto viene esposto qui vale anche per modificare la composizione del glossarioPer entrambi il file che compone lrsquoelenco richiesto egrave prodotto dallrsquoesecuzione

del programma makeindex per lrsquoindice analitico viene prodotto il file 〈job〉indmentre per il glossario viene prodotto il file 〈job〉gls Entrambi questi fileracchiudono lrsquoelenco da comporre dentro due specifici ambienti theindex e the-glossary Come ogni voce sia articolata dipende da come si siano usati i comandiindex o glossary e quindi da come le varie opzioni siano state elaborate damakeindex per produrre i file di uscita Cambiando opzioni chiaramente cambiaanche la composizione

Tuttavia qui si vuole richiamare lrsquoattenzione su un altro punto e per esempli-ficare ci riferiremo allrsquoindice analitico per il glossario valgono considerazioni deltutto analoghe

La formattazione dellrsquoindice analitico dipende da come egrave definito lrsquoambientetheindex oltre che dal contenuto del file 〈job〉ind Cambiare formattazione

165 INDICIZZAZIONE SINCRONA 301

dellrsquoindice analitico implica la capacitagrave di cambiare la definizione dellrsquoambientetheindex Si tratta di modificare la definizione di un ambiente di sistema elrsquooperazione bencheacute non difficile richiede un minimo di attenzione e di conoscenzaLrsquoargomento viene rimandato al paragrafo 178 nel capitolo 17

165 La creazione sincrona dellrsquoindice analiticoeo del glossario

Si egrave giagrave detto altrove che le versioni moderne delle distribuzioni del sistema TEXusano come interprete il programma pdftex al quale viene associato un determi-nato file di formato nel nostro caso il formato latexfmt oppure pdflatexfmta seconda di quali opzioni siano attive al momento della creazione del formatoeo al momento della compilazione lrsquointerprete puograve svolgere determinate azioniin particolare puograve produrre in uscita il file dvi oppure il file pdf puograve eseguirei comandi estesi del programma etex oppure puograve riferirsi solo ai comandi dellrsquoin-terprete tex puograve chiedere al sistema di eseguire comandi esterni oppure di nonfarlo

In questo paragrafo viene esposta una soluzione al problema di eseguireimmediatamente la conversione del file grezzo dellrsquoindice analitico idx nel fileindicizzato e volendo la conversione del file grezzo del glossario glo nel fileindicizzato gls Questa operazione egrave possibile se lrsquointerprete che si sta usandoegrave abilitato per lrsquoesecuzione di comandi di sistema

Generalmente parlando questa operazione puograve venire eseguita a mano indifferita cliccando sullrsquoapposito bottone dello shell editor con cui si sta eseguendola lavorazione del documento normalmente non ci sono problemi mentre peril glossario egrave necessario esprimere diverse opzioni al comando di sistema percui lrsquooperazione bencheacute non sia difficile da eseguire dalla finestra comandicome egrave stato descritto nei paragrafi precedenti resta comunque una operazionesuscettibile di errori Per lrsquoindice analitico lrsquooperazione attraverso la finestracomandi diventa necessaria se si vogliono usare delle opzioni specifiche per ilcomando makeindex

Ricordiamo innanzi tutto che lrsquoindice analitico e il glossario vengono compostiper ultimi quando non egrave piugrave necessario raccogliere informazioni da includeredentro questi elenchi Ricordiamo anche che entrambi i file indicizzati hanno ilnome identico a quello del file principale del documento che si sta componendo〈job〉 e che questo nome egrave contenuto nella macro jobname

Allora egrave possibile eseguire la trasformazione immediata dei due file 〈job〉idxe 〈job〉glo subito dopo averli completati e subito prima di comporre ciascunalista indicizzata 〈job〉ind e 〈job〉gls Questo implica che bisogna chiudereimmediatamente i due flussi di scrittura dellrsquointerprete verso i file 〈job〉idx erispettivamente 〈job〉glo I nomi di questi due flussi di scrittura sono conte-nuti rispettivamente nelle due macro interne e protette di LATEX indexfilee glossaryfile1 La chiusura di questi due flussi di scrittura deve essere

1Talvolta egrave necessario comporre indici analitici o glossari tematici alcune classi non standardcome memoir hanno un meccanismo interno che non consente di agire come descritto in questoe nei prossimi paragrafi Altre classi non standard come per esempio quelle della collezioneKOMA-script invece generano inizialmente un solo file idx ma poi grazie ad un applicativoesterno spezzano questo file in una certo numero di file grezzi con nomi distinti ognuno deiquali va elaborato da makeindex Egrave possibile scrivere una serie di macro per gestire queste

302 CAPITOLO 16 LATEX INDICI E GLOSSARI

istantanea non differita alla prima occasione opportuna come avviene invecenormalmente per la scrittura su altri file

Lo scrivente egrave ricorso allrsquouso del comando write18 che permette di chiedereal sistema di eseguire lrsquoargomento di questo comando come se fosse un comandoscritto nella finestra comandi terminal xterm console comunque si chiami nelsistema operativo che governa il calcolatore che si sta usando

Egrave bene notare che di default lrsquointerprete pdftex pur potendo eseguire ilcomando write18 di default ne egrave disabilitato Per abilitarlo egrave necessario scriverelrsquoapposita opzione nella linea di comando da inserire a mano da una finestracomandi o da inserire nella configurazione dello shell editor Per lrsquoeseguibilepdftexexe che compare nella distribuzione MiKTEX lrsquoopzione da inserire nellalinea di comando egrave ndashenable-write18 per gli eseguibili pdftex delle versioniderivate dalla distribuzione TEX Live lrsquoopzione egrave -shell-escape Egrave importanteconfigurare il proprio shell editor con questa opzione altrimenti si rimane delusipercheacute quanto descritto qui non potrebbe assolutamente funzionare

1651 Indicizzazione sincrona dellrsquoindice analiticoPer lrsquoindice analitico specialmente quando si vuole usare uno stile di composizionediverso da quello di default i cui comandi sono contenuti nel file 〈stile〉istbasta inserire i comandi

maketaletterimmediatecloseoutindexfileimmediatewrite18makeindex -s 〈stile〉ist jobnamemakeatother

subito prima di

inputjobnameind

Quei comandi eseguono immediatamente la chiusura del flusso di scritturache serve allrsquointerprete per scrivere nel file idx i lemmi dellrsquoindice analiticoAltrettanto immediatamente lanciano una richiesta al sistema di eseguire ilcomando makeindex passandogli lo stile di composizione 〈stile〉ist affincheacute conquello stile lavori sul file il cui nome egrave contenuto in jobname e la cui estensionevale di default idx In uscita viene prodotto un file con lo stesso nome ma conlrsquoestensione di default ind In questo modo quando viene eseguito il comandoinput sul file jobnameind la composizione dellrsquoindice analitico viene eseguitasui dati appena raccolti e indicizzati e non crsquoegrave piugrave bisogno di ricorrere alle trecompilazioni come detto inizialmente

Per questo testo egrave stato usato lo stile classicist frutto di una collabora-zione con Lorenzo Pantieri che usa uno stile simile per il suo testo [39] I comandiinseriti nel file sorgente per indicizzare lrsquoindice analitico e per introdurlo neltesto sono

makeatletterimmediatecloseoutindefilesituazioni e lasciare che i comandi descritti in questo e nei prossimi paragrafi eseguano tuttoil lavoro per ciascuno degli indici o glossari Egrave appunto quello che si egrave fatto per i cinque indicianalitici di questo testo sebbene la classe usata per la sua composizione sia la classe standardbook

165 INDICIZZAZIONE SINCRONA 303

makeatotherimmediatewrite18makeindex-sclassicistjobnameinputjobnameind

Al posto di jobname si sarebbe potuto scrivere esplicitamente il nome del fileprincipale GuidaGuIT ma lasciando jobname quei comandi possono essere usatisenza nessuna modifica per la composizione di qualunque altro documento

1652 Indicizzazione sincrona del glossarioIn modo del tutto analogo i comandi per comporre il glossario anche prescindendodallrsquouso di printglossary possono essere i seguenti

makeatletterimmediatecloseoutglossaryfilemakeatotherimmediatewrite18makeindex -s ggloist -o jobnamegls jobnamegloinputjobnamegls

Ovviamente al posto dello stile di composizione ggloist quello di defaultquando si usa LATEX anche se bisogna specificarlo si potrebbe usare un qualunquealtro stile adatto allo scopo Le cartelle di ogni distribuzione TEX sono pienedi ogni sorta di stili da usare con makeindex ma pochissimi sono destinati allacomposizione dei glossari generalmente oltre a ggloist che fa eccezione essihanno lrsquoestensione gst nella distribuzione 2008 di TEX Live sono presenti i filememmangst usato per la composizione del glossario relativo alla documentazionedella classe memoir e srcguidegst relativo alla documentazione delle classiKOMA-script bencheacute scritti per quegli scopi possono venire usati anche peraltri glossari2

Per altro non egrave particolarmente difficile crearsi una altro stile personalizzatobaste leggere accuratamente la documentazione che accompagna il programmamakeindex in docmakeindex e prendere come modello i file di stile suggeritiin questo paragrafo

2Attenzione perograve percheacute la sintassi del contenuto dei comandi glossary egrave in partedifferente da quella prescritta dallo stile ggloist per esempio il carattere speciale vienesostituito con

Capitolo 17

LATEX nuovi comandi

171 Introduzione

Uno dei punti di forza del linguaggio di programmazione che sostiene il sistemaTEX egrave costituito dal fatto di poter definire nuovi comandi nuove istruzioni

Lrsquointerprete tex o pdftex che interpreta i comandi dei vari tipi di mark-up deifile sorgente egrave in grado di eseguire alcune centinaia di comandi base comandiprimitivi non nel senso che siano rozzi ma che sono quelli a cui tutti gli altrisi riferiscono i comandi derivati sono per lo piugrave definiti nei vari file di formatoplaintex per il mark-up di Plain TEX latexltx per il mark-up di LATEXeccetera

Questi file di formato definiscono dei nuovi comandi detti macro attraversoi comandi primitivi o attraverso quelli derivati giagrave definiti

Quando lrsquointerprete incontra una macro la deve sviluppare cioegrave deve ri-cercarne in memoria la traduzione in base alla definizione specifica di quellamacro se questa definizione contiene le azioni da eseguire specificate solamentemediante comandi primitivi lrsquointerprete li esegue altrimenti sequenzialmentericerca i comandi derivati presenti nella definizione ripetendo il processo fincheacutelo sviluppo contiene solo comandi primitivi che finalmente esegue

Ogni macro puograve essere definita in modo che possa lavorare su argomenticioegrave parti variabili che cambiano di volta in volta che si invoca la macro Gliargomenti possono essere delimitati o non delimitati Allrsquointerno dei formati si faun grande uso di argomenti delimitati ma i comandi per gli utenti specialmentecon LATEX fanno un uso minimo di argomenti delimitati

Gli argomenti non delimitati sono costituiti da un solo token per esempiouna sola lettera o una sola cifra e non richiedono di venire racchiusi dentronessuna struttura che ne limiti la lunghezza Altrimenti devono essere racchiusifra parentesi graffe Nei capitoli precedenti si sono visti quasi sempre argomentinon delimitati indicati nelle istruzioni sintattiche con 〈argomento〉 LATEX usararamente gli argomenti delimitati ma li delimita solo mediante parentesi quadreegrave quanto si egrave indicato con [〈argomento〉] nellrsquoambiente picture sono delimitatele coordinate racchiuse fra parentesi tonde e indicate nelle costruzioni sintattichecon (〈arg-1 〉〈arg-2 〉) Ma per il resto egrave difficile trovare altri comandi destinatial compositore che facciano uso di argomenti delimitati

305

306 CAPITOLO 17 LATEX NUOVI COMANDI

Qui si illustreranno succintamente le definizioni di nuovi comandi le ridefini-zioni di comandi giagrave esistenti le definizioni di nuovi ambienti e le ridefinizioni diambienti giagrave esistenti

172 Le definizioni di comandi nuoviPer definire un nuovo comando si usa la seguente sintassi

newcommand〈macro〉[〈num-argomenti〉][〈default〉]〈definizione〉newcommand〈macro〉[〈num-argomenti〉][〈default〉]〈definizione〉

dove 〈num-argomenti〉 egrave il numero degli argomenti su cui opera la 〈macro〉 deiquali il primo puograve essere facoltativo esso egrave facoltativo se viene espressa anche laseconda opzione incluse le sue parentesi quadre se nellrsquoinvocazione della macroche accetta un argomento facoltativo non lo si specifica esso riceve il valore di〈default〉 Nella definizione della 〈macro〉 gli argomenti al massimo in numerodi 9 sono indicati con il loro numero progressivo 1 2 eccetera La 〈macro〉cioegrave il suo nome puograve essere costituita solo

bull dal segno di backslash seguito da una stringa formata solamente dalettere dellrsquoalfabeto latino maiuscole o minuscole ricordando che LATEXdistingue le une dalle altre oppure

bull dal segno di backslash seguito da un solo segno non alfabetico oppure

bull da un carattere attivo un carattere attivo egrave un segno che ha ricevuto inprecedenza lrsquoetichetta di carattere attivo LATEX dichiara carattere attivo ilsegno ~ che serve per inserire uno spazio non separabile (in corrispondenzadel quale non puograve cadere la fine di una riga) babel con lrsquoopzione dellrsquoitalianoe di quasi tutte le lingue che usano caratteri accentati definisce attivoanche il carattere

Si raccomanda ai compositori di non ldquogiocherellarerdquo con i caratteri attiviqui li si egrave nominati percheacute egrave giusto sapere che esistono e che cosa sono ma egravemeglio lasciarli stare Egrave meglio lasciare stare anche i comandi che usino caratterinon alfabetici come per esempio 1

Come primo esempio si riporta quanto egrave stato definito nel preambolo diquesto documento la definizione del comando per scrivere il logo di BIBTEXnewcommandBibTeXtextscBibTeX

Come si vede non ci sono argomenti neacute obbligatori neacute facoltativi per la definizionedella macro BibTeX la 〈definizione〉 si avvale di altri comandi textsc percomporre la prima parte del logo con il carattere maiuscoletto e TeX percomporre la seconda parte formata dal logo di TEX

Come secondo esempio si porta la definizione del comando cs che egrave servitotante volte per scrivere i nomi dei comandi con carattere a spaziatura fissa epreceduti dal segno di backslash senza che LATEX li eseguisse ma li considerassesolo delle stringhe letterali

1Nei file di formato compaiono una quantitagrave di definizioni di comandi che contengono ilcarattere allrsquointerno del formato questo carattere egrave definito come lettera alfabetica ma fuoridel formato quando il compositore usa LATEX esso egrave ripristinato alla categoria di lsquonon-letterarsquola cosa egrave fatta di proposito affincheacute i compositori non si mettano a giocare con i caratteri nonalfabetici

172 LE DEFINIZIONI DI COMANDI NUOVI 307

newcommandcs[1]textttchar921

Il comando accetta un solo argomento obbligatorio e la sua sintassi diventaperciograve

cs〈nome della macro senza backslash〉

La definizione della macro2 oltre a contenere il comando texttt per comporreil suo argomento con caratteri a spaziatura fissa contiene anche il comandoprimitivo char che si aspetta un numero decimale oppure esadecimale oppureottale dalle tabelle dei caratteri si vede che egrave piugrave semplice riferirsi allrsquoindirizzodecimale invece che a quelli ottale o esadecimale e si vede che il segno dibackslash egrave nella casella con indirizzo 92 usando il comando char e lrsquoindirizzonella tabella dei caratteri il segno identificato viene trascritto tale e qualeprescindendo dal significato che esso potrebbe avere per LATEX cioegrave quello diiniziatore di nomi di macro cs egrave diverso da char92cs il primo egrave un comandoil secondo egrave il nome di un comando3

Nel preambolo di questo documento non sono stati definiti comandi conargomento facoltativo si prenderagrave un esempio da altri documenti prendiamouna possibile definizione del comando

newcommand[1][0pt]newlinevspace1

Questa non egrave la definizione completa che compare allrsquointerno del file di formatoma rende lrsquoidea Il comando accetta un argomento siccome ne egrave specificato ilvalore di default questo primo ed unico argomento egrave facoltativo se lo si vuoleindicare lo si deve scrivere fra parentesi quadre Se non lo si indica affattoviene usato il suo valore di default che viene passato tale e quale alla macrovspace che esegue una spaziatura verticale pari allrsquoammontare specificato conlrsquoargomento esplicito o di default la spaziatura verticale di default egrave di 0 pt cioegraveuna spaziatura nulla

Il lettore attento avragrave notato che in due dei tre esempi un asterisco segueil comando newcommand questo asterisco facoltativo esprime una variante delcomando che egrave consigliabile usare ogni volta che il comando debba ricevere degliargomenti senza asterisco il comando puograve ricevere argomenti arbitrariamentelunghi fatti anche di numerosi capoversi con lrsquoasterisco il comando puograve rice-vere argomenti formati solo da una stringa di caratteri che non contenga neacuteesplicitamente neacute implicitamente una terminazione di capoverso questa come siricorda egrave costituita da una riga del file sorgente completamente vuota oppuredal comando esplicito par

Quando si definiscono comandi che accettano solo una o poche parole certa-mente non piugrave di un capoverso egrave prudente inserire lrsquoasterisco percheacute nel caso checi si dimentichi di scrivere la graffa di chiusura viene emesso subito un messaggio

2In realtagrave la definizione indicata egrave solo una versione preliminare quando si egrave deciso dicomporre anche lrsquoindice analitico si egrave cambiata la definizione includendovi il comando indexcorredato di un opportuno argomento la necessitagrave di usare il segno che ha un significatoparticolare per makeindex ci ha obbligati ad una definizione decisamente piugrave complessa la cuispiegazione esula da questo testo Tuttavia egrave importante notare come la modifica della soladefinizione di cs ha permesso di inviare allrsquoindice analitico tutti i comandi descritti senzabisogno di inserire il comando index ogni volta che li si citava

3Invece di char92 si sarebbe potuto scrivere textbackslash ma questo comando agiscesolo in modo testo mentre char92 agisce anche in modo matematico Egrave vero che non lo si egravemai usato in modo matematico ma non si sa mai

308 CAPITOLO 17 LATEX NUOVI COMANDI

drsquoerrore che consente al compositore di intervenire e di correggere Ricordiamociche lrsquoomissione di una graffa chiusa rappresenta lrsquoerrore piugrave frequente quando sicompone il testo sorgente

Si noti che se si specificasse come nome della 〈macro〉 quello di un comando giagraveesistente newcommand protesterebbe con un avviso di errore e non procederebbead eseguire la ridefinizione presumibilmente non desiderata di un comando giagravedisponibile

Nel capitolo 19 si parleragrave dei capilettera vi si descriveragrave il pacchetto lettrineche consente di inserire queste grandi lettere maiuscole allrsquoinizio del primocapoverso di un capitolo o di un paragrafo Nellrsquoesemplificare lrsquouso dei capiletterain quel capitolo non si egrave fatto uso delle macro disponibili con il pacchetto lettrinema si eacute usato il comando capolettera descritto qui di seguito insieme allemotivazioni per non aver usato il pacchetto citato

La macro capoverso egrave definita nel file MacroGuidasty che raccoglie lemacro usate per comporre questo testo Questa macro capoverso non ricorre alpacchetto lettrine percheacute sul forum di guIt egrave stato notato che lettrine funzionabene solo con i font vettoriali che dispongono solamente di un corpo da ingrandiree rimpicciolire a seconda delle esigenze Qui si usano in prima istanza i fontLatin Modern o in seconda istanza i font Computer Modern che sono dotatidi tutti i corpi necessari Si egrave preferito quindi definire una macro apposita chesvolgesse piugrave o meno le stesse funzioni offerte dal pacchetto lettrine ma nonfacesse riferimento implicito ad un solo corpo La macro qui descritta produceun capolettera grande come due righe di testo e costruito in modo da essere afilo con la linea di base della seconda riga ma in modo che la sua altezza nonsuperi quella delle lettere in maiuscoletto che la seguono Il suo scopo infatti egravequella di cominciare un capoverso nel modo seguente

Il grande capolettera deve essere molto visibile come inizio di un capoversoma richiede una transizione di forma dei caratteri che lo seguono per rendere

meno brusco il passaggio dalle sue grandi dimensioni al corpo normale delfont usato nel resto del capoverso Per questo motivo la tradizione tipograficageneralmente ricorre a qualche parola iniziale del capoverso dopo il capoletteracomposta in maiuscoletto

La macro perciograve richiede di specificare come primo argomento la lettera daingrandire e come secondo argomento il completamento della prima parolaseguito da qualche altra parola iniziale del capoverso

newlengthCLett Nuova dimensione

newcommandcapolettera[2] 1 lettera da ingrandire 2 testo da comporre in maiuscoletto

parnoindentsetboxzhboxscalebox125huge1CLett=wdzhangindentCLetthangafter-2relaxraisebox-baselineskip[0pt][0pt]

llapboxzkern1pttextsc2

La definizione ricorre a comandi di base del linguaggio TEX mescolati a comandidi LATEX e del pacchetto graphicx Per i dettagli si puograve guardare nellrsquoappendice GIl capolettera si ottiene mettendo nella scatola numerata lsquo0rsquo (z) la lettera daingrandire ma che viene inizialmente ottenuta con il comando huge e poi viene

173 RIDEFINIZIONE DI COMANDI GIAgrave ESISTENTI 309

ulteriormente ingrandita del 25 per tenere conto che si tratta di una maiuscola(generalmente) senza discendenti

Se ne prende la misura della larghezza per far rientrare le righe della giustaquantitagrave ma poi sono hangindent e hangafter che creano lo spazio nelleprime due righe per mettere la lettera ingrandita hangindent riceve comeargomento lrsquoammontare del rientro e hangafter riceve il numero di righe perle quali vale il rientro il segno si riferisce al margine destro (segno piugrave) o sinistro(segno meno) per il quale si esegue lrsquooperazione del rientro Alla fine del capoversoquesti due parametri lsquoprimitivirsquo di TEX vengono ripristinati a valori nulli cosiccheacutequeste impostazioni valgono solo per il capoverso corrente

Per collocare la lettera si usa il comando LATEX raisebox che mette ilsuo argomento in una scatola e la solleva della quantitagrave specificata nel primoparametro (se esso egrave negativo la abbassa) e tratta la scatola come se avessealtezza e profonditagrave pari ai due ulteriori parametri facoltativi (in questo casoentrambi nulli cosiccheacute non si tiene conto dellrsquoaltezza e specialmente dellaprofonditagrave della lettera ingrandita) Questa per altro viene inserita dentro unascatola di larghezza nulla llap ma con il contenuto sporgente a sinistra vi vieneposto anche un poco di spazio (1 pt) per scostare un minimo la lettera ingranditadalle rientranze delle due righe Il secondo argomento viene poi inserito tuttocomposto in maiuscoletto

Il pacchetto lettrine consente di corredare il comando del capolettera condiverse opzioni cosiccheacute lo si possa fare sporgere in alto di piugrave o di meno inmodo che occupi lo spazio di un numero di righe a scelta e altre finezze masembra appunto che funzioni correttamente solo con i font dotati di un solocarattere di corpo fisso ma scalabile a piacere

173 Ridefinizione di comandi giagrave esistentiPer ridefinire un comando giagrave esistente ammesso che il compositore sappia checosa sta ridefinendo e ne capisca tutte le possibili conseguenze si usa il comandorenewcommand con la sintassi seguente

renewcommand〈macro〉[〈num-argomenti〉][〈default〉]〈definizione〉renewcommand〈macro〉[〈num-argomenti〉][〈default〉]〈definizione〉

I cui parametri hanno lo stesso significato che per newcommand e al quale si puograveaggiungere lrsquoasterisco come si faceva con newcommand

Il caso piugrave frequente della ridefinizione di comandi esistenti riguarda il casodella modifica di comandi propri oppure di comandi definiti nei file di classe o diestensione

In questi casi egrave vietato modificare i file originali ma si procede come indicatonel paragrafo 147

Va da seacute che se si cerca di ridefinire un comando che non esiste lrsquoistruzionerenewcommand emette un perentorio messaggio drsquoerrore e si rifiuta di procedereoltre

Un uso abbastanza frequente consiste nel ridefinire le parole che compaio-no durante lrsquoesecuzione di comandi di sezionamento Per esempio il comandolistoffigures esegue lrsquoelenco delle figure come un indice a seacute stante che vieneintrodotto da un titolo diverso a seconda della lingua usata In italiano questotitolo egrave ldquoElenco delle figurerdquo questa stringa egrave contenuta nella definizione della

310 CAPITOLO 17 LATEX NUOVI COMANDI

macro listfigurename Per cambiare questo titolo per esempio in ldquoLista dellefigurerdquo basta allora ridefinire la macro nel modo seguente

renewcommandlistfigurenameLista delle figure

Naturalmente questo implica che il testo venga scritto in una sola linguae che la ridefinizione sia eseguita dopo il comando di inizio del documentoquando la lingua di default egrave giagrave stata specificata Bisogna poi stare attenti a noncambiarla piugrave in particolare se babel fosse chiamato con un elenco di linguepercheacute il documento contiene citazioni in lingue diverse da quella di defaultbisogna evitare accuratamente di usare il comando selectlanguge per evitaredi rieseguire la definizione dei comandi di default della lingua principale il cherenderebbe vana la ridefinizione appena illustrata Se si deve scrivere davvero undocumento in molte lingue con diversi elenchi delle figure scritti e intitolati inlingue diverse allora babel consente di usare altri comandi piugrave potenti comeaddto4 che permettono di essere piugrave efficaci nel gestire queste cose

Questo avviso serve appunto a segnalare come anche una ridefinizione lsquoinno-centersquo come quella proposta puograve causare risultati non previsti anche se non sonodannosi per lrsquointegritagrave di LATEX Il compositore che desidera usare renewcommanddeve sempre sapere veramente quello che sta facendo

174 Ridefinizioni di comandi di sistemaLa ridefinizione dei comandi di sistema egrave una operazione da evitare se nonsi sa esattamente quello che si sta facendo si rischia di buttare allrsquoaria tuttoil funzionamento di latex eo pdflatex Si veda anche quanto si egrave scritto nelparagrafo 147

Tuttavia allrsquoinizio si egrave detto che una delle pochissime modifiche che egrave stataapportata ai comandi di default per la composizione di questo testo egrave stataquella di modificare la scrittura dei numeri romani minuscoli Per eseguire questascrittura il sistema di default usa esternamente il comando roman usabile dalcompositore ma internamente il comando del compositore viene eseguito daroman il comando comincia con il segno che per il compositore non egrave unalettera e quindi difficilmente il compositore puograve andare a lsquodisturbarersquo i comandiinterni di sistema Tuttavia il modo esiste ed egrave descritto da Leslie Lamportin persona nel suo manuale Bisogna usare il comando makeatletter5 primadi ridefinire un comando interno questa istruzione cambia i codici interni chedescrivono la funzione del segno in modo da poterlo usare come se fosse unalettera dellrsquoalfabeto

Questo risolve il primo problema Ma per scrivere in maiuscoletto non bastaspecificare textsc percheacute questa forma non egrave definita per tutte le famiglie e

4Le parole conservate in apposite macro come listfigurename sono conservate dentrouna macro il cui nome egrave ottenuto dallrsquoagglutinazione della parola captions con il nome dellalingua per lrsquoitaliano dunque questa macro si chiama captionsitalian Il comando addtopertanto riceve come primo argomento la macro captionsitalian e come secondo argomentola ridefinizione di listfurename Cosigrave facendo ogni volta che si specifica la lingua italianala macro che contiene il titolo dellrsquoelenco delle figure viene ridefinito di nuovo ma questaoperazione ridondante egrave un male minore rispetto a quanto descritto nel testo se si eseguisse laridefinizione senza aggiungerla alle altre macro per lrsquoitaliano

5Se la nuova definizione viene inclusa nel proprio file di macro personali avente esten-sione sty e richiamato con il comando usepackage non egrave necessario servirsi del comandomakeatletter

174 RIDEFINIZIONI DI COMANDI DI SISTEMA 311

per tutte le serie Bisogna accontentarsi di simulare la forma maiuscoletta conlettere maiuscole di corpo piugrave piccolo

La ridefinizione di roman diventa allora la seguente

makeatletterDeclareRobustCommandsimulatedSC[1]hbox$relax$fontsizesfsizefbaselineskip

selectfont1renewcommandroman[1]simulatedSCRoman1

Una spiegazione perograve egrave necessaria I comandi sfsize e fbaselineskip sonoi comandi interni che contengono rispettivamente il corpo degli indici primi edellrsquoavanzamento di riga associati al font corrente il primo dei due egrave definitosolo dopo che sia stata scritta una formula qui ridotta a nulla (relax) essisono documentati insieme ad altri comandi dello stesso genere nella giagrave citataguida fntguide presente in doclatexbase Il comando fontsize egravequello esterno per impostare un nuovo corpo e un nuovo avanzamento di rigama questi non diventano operativi se non dopo aver dato il comando esplicitoselectfont infine il comando Roman egrave il comando interno per scrivere inumeri romani in lettere maiuscole Ciograve premesso la ridefinizione che stiamocercando di fare richiede un comando simulatedSC con il quale si ordina discrivere con lrsquoavanzamento di riga corrente ma con il corpo degli indici primiper limitare i suoi effetti e per essere sicuri che il numero romano cadendo in findi riga non venga eventualmente diviso in sillabe il tutto viene eseguito dentrouna scatola orizzontale hbox che successivamente viene usata come un unicooggetto non come una stringa di letterecifre romane usando questo comandola ridefinizione di roman viene eseguita in modo da prendere il numero romanoscritto in lettere maiuscole e di stamparlo nel corpo degli indici primi Il risultatoegrave quello che si puograve vedere nelle pagine iniziali qui si mostra come la paginacorrente possa essere scritta in numeri romani maiuscoli e in numeri romanimaiuscoletti in corpi diversi

Corpo lsquonormalsizersquo CCCXI CCCXI

Corpo lsquoHugersquoCCCXI CCCXIUn altro esempio usato in questo testo egrave costituito dalla ridefinizione della

virgola Egrave noto che in tutte le lingue tranne lrsquoinglese le norme ISO prescrivonocome separatore decimale la virgola In questo modo in tutte le altre lingue lavirgola svolge due ruoli ma solo in matematica Quando si egrave in modo matematicoil segno della virgola puograve essere dichiarato attivo e gli si puograve associare unadefinizione Qui si egrave fatto esattamente cosigrave6

6Attenzione con le virgolette se i comandi che seguono vengono emessi quando egrave giagravein vigore lrsquoopzione italian di babel lrsquointerprete quando legge 8000 segnala un errore perconvenienza e semplicitagrave di scrittura sarebbe meglio sostituire in quella definizione la notazioneesadecimale con quella ottale rsquo100000 Si faccia anche attenzione al lsquobacktickrsquo lsquo che non egraveun accento ma il carattere ASCII 96 la scrittura di questo carattere puograve essere difficile conla tastiera italiana in un laptop che non abbia il tastierino numerico separato (quasi tutti)bisogna affidarsi alle prestazioni dello shell editor in un PC con la tastiera munita di tastierinonumerico separato dal resto il backtick puograve venire introdotto premendo sul tastierino il numero96 mentre si tiene premuto il tasto Alt Purtroppo la tastiera italiana non egrave di grande aiutoper fortuna non capita spesso di dover usare il backtick

312 CAPITOLO 17 LATEX NUOVI COMANDI

DeclareMathSymbolvirgolamathpunctletters3BDeclareMathSymboldecimalcommamathordletters3BAtBeginDocumentmathcodelsquo=8000catcode lsquo=active gdeffutureletlettokenmthcomma

defmthcommaifxlettokensptoken virgolaelse decimalcommafi

Precisamente si sono definite due entitagrave matematiche virgola che rappre-senta un segno matematico di punteggiatura e decimalcomma che rappresentala virgola decimale la differenza risiede nel codice interno che il carattere 3B (lavirgola) riceve attraverso i comandi DeclareMathSymbol visto che nel primocaso egrave specificato appartenente alla categoria mathpunct (punteggiatura mate-matica) mentre nel secondo caso esso egrave definito come mathord cioegrave come unnormale simbolo o una variabile matematica La specifica letters in entrambi icasi dice che il segno deve essere tratto dalla stessa polizza di caratteri dai qualisi traggono le lettere (il font corsivo matematico)

Le definizioni del codice attivo e della sua definizione diventano attive soloallrsquoinizio del documento mediante AtBeginDocument vi si dice che il codicematematico deve essere posto a 8000 lo speciale codice che definisce attivo uncarattere in modo matematico Gli si assegna poi attraverso il comando primitivogdef una definizione globale nella quale esso deve assegnare a lettoken nonil significato del token successivo che sarebbe mcomma ma quello del tokenche incontreragrave ancora dopo allora e solo allora potragrave eseguire mcomma Questoa sua volta egrave definito in modo da esaminare il tipo di token il cui significatoegrave stato attribuito a lettoken se questo egrave uno spazio (sptoken) usa lavirgola di punteggiatura altrimenti usa la virgola come simbolo I comandi ifxelse e fi servono appunto per eseguire questi comandi condizionali Sta oraal compositore lasciare uno spazio dopo la virgola (in matematica) solo quandoquesta rappresenta un segno di punteggiatura mentre non deve lasciare nessunospazio se deve comportarsi da separatore decimale

Il risultato di questo comando egrave visibile in ogni numero decimale fratto scrittoin questo testo ma qui egrave opportuno confrontare bene che cosa si ottiene se inmatematica si scrive f(xy) oppure f(xy) f(xy) nel primo caso ma f(x y)nel secondo La differenza egrave piccola ma si vede benissimo

Tuttavia ci si puograve domandare se per caso non sia possibile fare a menodellrsquoinserimento di uno spazio dopo la virgola quando questa ha il significato disegno di interpunzione sigrave egrave possibile ma bisogna definire la virgola attiva inmodo un poco piugrave complesso

defmthcommalettempBvirgolatfortempA=0123456789doexpandafterifxtempAlettokenlettempBdecimalcommabreaktforfitempB

che si basa su una macro interna del nucleo di LATEX tfor la quale ripe-te un certo insieme di comandi tante volte quanti sono i token che seguonolrsquoindicazione= Nel nostro caso questi token sono costituiti dalle dieci cifre

174 RIDEFINIZIONI DI COMANDI DI SISTEMA 313

decimali lrsquoargomento del comando do viene ripetuto assegnando successiva-mente uno dei token della lista alla macro tempA quindi viene ripetuto almassimo dieci volte Se il token seguente la virgola nel testo sorgente memoriz-zato nella sequenza lettoken egrave uguale al token via via memorizzato nellamacro tempA cioegrave egrave un cifra decimale allora il valore di default di tempBinizializzato alla virgola di punteggiatura viene cambiato nel valore attributoalla virgola decimale decimalcomma e al termine della macro ripetitiva vieneeseguito il comando tempB Gli altri comandi presenti nel corpo della macroripetitiva come expandafter o breaktfor servono per scopi di program-mazione particolari expandafter serve per confrontare il contenuto di unamacro con un token implicito e per poterlo fare bisogna prima sviluppare lamacro breaktfor serve per interrompere le iterazioni del comando ripetitivonon appena si egrave scoperto che il token implicito egrave una cifra

Usando questa definizione per mthcomma invece di quella precedentementeindicata il ldquotastieristardquo non deve ricordarsi di inserire spazi dopo la virgolatranne in un unico caso quando dovesse scrivere una lista di numeri come in

perogni$i=12dotsn$

Componendo in inglese non si deve eseguire nessuna definizione strana dellavirgola quindi se si vogliono inserire questi comandi in un file di macro personaliegrave meglio racchiuderli dentro gli argomenti del comando di babel iflanguageche ha la seguente sintassi

iflanguage〈lingua〉〈vero〉〈falso〉

dove 〈lingua〉 egrave il nome dellrsquoopzione passata a babel come lingua di defaultmentre 〈vero〉 sono le azioni da eseguire se la lingua di default egrave quella specificataaltrimenti si eseguono le azioni indicate da 〈falso〉

Nel nostro caso converrebbe inserire nellrsquoargomento di AtBeginDocument ilcostrutto

AtBeginDocumentiflanguageitalianmathcodelsquo=8000relax

cioegrave se la lingua di default egrave lrsquoitaliano dichiara attivo il simbolo della virgolain matematica altrimenti rilassati (non fare nulla) Si potrebbe rovesciare iltest eseguendo il test sullrsquoinglese invece che sullrsquoitaliano in modo da usare lavirgola come separatore per tutte le lingue eccetto lrsquoinglese Solo che lrsquoinglese puograveessere richiamato anche con i nomi USenglish american british UKenglisheccetera quindi il test potrebbe diventare molto complicato per esempio

AtBeginDocumentiflanguageenglishrelax

iflanguageamericanrelaxiflanguagebritishrelax

mathcodelsquo=8000

facendo molta attenzione a chiudere le graffe nellrsquoordine giusto e senza dimenti-carne nessuna

Questi due esempi ricorrono a comandi primitivi e ai codici di categoriamatematici non si tratta di concetti adatti ad una introduzione ma non sono

314 CAPITOLO 17 LATEX NUOVI COMANDI

nemmeno concetti inaccessibili il lettore che voglia approfondire deve esaminaree studiare il TEXbook dove questi argomenti sono trattati in diversi capito-li si veda anche lrsquoappendice A Conviene anche documentarsi sul nucleo diLATEX sebbene la documentazione sia piuttosto essenziale essa si trova nel-la cartella sourcelatexbase nei file il cui nome comincia con lt edhanno estensione dtx sono normali file da aprire con lo stesso editor con cuisi compongono i file sorgente dei documenti e contengono sia il codice sia icommenti che lo descrivono purtroppo si tratta di commenti molto concisi manon incomprensibili

Un altro esempio tratto dalle piccole modifiche eseguite per la composizionedi questo testo egrave un comando per dare un formato alle righe degli elenchi dellefigure e delle tabelle Il comando di formato di queste righe egrave specificato nel filedella classe nel nostro caso di bookcls vi si legge

newcommandlfiguredottedtocline115em23emletltablelfigure

Si osserva innanzi tutto che il comando per la formattazione delle righe dellalista delle tabelle ltable viene reso equivalente alla definizione appena dataal comando per la formattazione delle figure lfigure Se quindi cambiamo ilsecondo dobbiamo ricordarci di rieseguire lrsquoequivalenza dei comandi

Per quel che riguarda la formattazione di queste righe vediamo che il comandolfigure si affida allrsquoesecuzione del comando dottedtocline il cui nomericorda il fatto che queste righe degli indici sono di solito fornite della fila dipuntini che guida lrsquoocchio dal titolo al numero della pagina I parametri chequesto comando riceve sono in realtagrave cinque ma gli altri gli vengono passati daglialtri comandi che servono per recuperare e stampare le informazioni da inserirenellrsquoindice cioegrave il titolo (nel nostro caso la didascalia (breve) della figura o dellatabella) e il numero della pagina Ma nel listato di sopra i tre parametri hannoi significati seguenti (a) il primo dice che la riga deve essere formattata comequello dei paragrafi (livello 1) (b) il secondo rappresenta il rientro della riga sinota infatti che la riga dei paragrafi nellrsquoindice di questo testo egrave rientrata quelladei sotto paragrafi egrave rientrata di piugrave eccetera (c) il terzo parametro specifica lospazio da destinare al numero specifico della figura o della tabella oltre allo spazioche divide questo numero dallrsquoinizio del titolo riportato nellrsquoindice Ecco questoterzo valore va benissimo se il numero del capitolo egrave inferiore a 9 e se il numerodella figura o della tabella egrave inferiore anchrsquoesso a 9 cioegrave se sono entrambi di unacifra (o lrsquouno o lrsquoaltro o entrambi) In questo testo dei capitoli con un numero didue cifre contengono piugrave di nove figure e non resta nessuno spazio fra il numeroe il titolo il che sta evidentemente male Basta aumentare lo spazio di 23emdi quanto basta per metterci unrsquoaltra cifra 1em egrave largo praticamente come unalettera lsquoMrsquo e un cifra egrave larga circa la metagrave (tranne la cifra 1 che graficamentesembra piugrave stretta ma in realtagrave insieme agli spazi che la contornano occupalo stesso spazio delle altre egrave voluto percheacute cosigrave le tabelle di numeri risultanoincolonnate anche se contengono delle cifre 1) Basta allora ridefinire il comandodi sistema cosigrave

renewcommandlfiguredottedtocline115em28emletltablelfigure

175 ESISTE GIAgrave O NON ESISTE ANCORA IL COMANDO 315

ricordando di inserire queste ridefinizioni in un file di macro personali (a causadel segno ) e di non dimenticare lrsquoequivalenza fra ltable e lfigure

175 Esiste giagrave o non esiste ancora il comandoTalvolta si vuole essere sicuri che un comando sia disponibile ma non si sa seesso sia giagrave stato definito in qualche pacchetto di estensione Allora si puograve usareil comando providecommand che ha la stessa sintassi di newcommand

providecommand〈macro〉[〈num-argomenti〉][〈default〉]〈definizione〉providecommand〈macro〉[〈num-argomenti〉][〈default〉]〈definizione〉

e accetta anche lrsquoasterisco facoltativo con lo stesso significato che esso ha pernewcommand

Si ricorre spesso a questo tipo di definizione nel proprio file di macro personalicosiccheacute il comando definito attraverso questa istruzione viene sempre definito seil comando non egrave giagrave stato definito da altri altrimenti questa definizione vienetranquillamente ignorata e viene usata la definizione giagrave esistente Logicamentepercheacute questo funzioni come desiderato egrave necessario che il proprio file di macropersonali sia sempre invocato per ultimo

Nel preambolo di questo testo per esempio si egrave provveduto il comando ohmnel modo seguente

providecommandohmtextormathtextohmmathrmOmega

dove textormath egrave un comando fornito dal pacchetto babel per specificare dueazioni diverse da eseguire in modo testo invece che in modo matematico in modomatematico si egrave specificato di usare il font tondo diritto per ovviare al casoin cui si sia deciso di usare le lettere greche maiuscole inclinate nelle normaliespressioni matematiche

176 Definizione di comandi robustiUn comando si dice robusto se esegue quel che deve eseguire in qualunquecircostanza ciograve non egrave sempre vero specialmente se esso contiene nella suadefinizione dei comandi condizionali e se costituisce o puograve costituire lrsquoargomentodi un altro comando

Egrave prudente allora definire comandi robusti confezionati con cautele parti-colari i cui dettagli sono troppo tecnici da spiegare qui Il tutto viene eseguitomediante il comando DeclareRobustCommand che puograve venire usato solo nelpreambolo o bene inteso anche nei file di classe o di estensione che comun-que vengono letti solo nel preambolo La sua sintassi egrave identica a quella dinewcommand bisogna stare attenti che esso non verifica se il comando da defini-re esista giagrave o sia davvero un comando nuovo quindi questa lsquodichiarazionersquo devevenire usata con molta cautela da programmatori esperti tuttavia se si fossedefinito un comando con newcommand e questo avesse passato i controlli di defi-nibilitagrave ma nellrsquouso risultasse fragile allora non sarebbe un problema cambiarela dichiarazione newcommand con DeclareRobustCommand e tutto procedereb-be come desiderato con la certezza di non avere pasticciato con comandi giagraveesistenti

316 CAPITOLO 17 LATEX NUOVI COMANDI

Nellrsquoappendice G viene descritto il comando protect esso serve per rendererobusti i comandi fragili il comando DeclareRobustCommand agisce attraversoprotect ma passa anche per lrsquointermediario di un nuovo comando apparente-mente con lo stesso nome di quello che costituisce il suo argomento ma prolungatocon uno spazio che fa parte integrante del suo nome se si vuole rendere robustoil comando pippo DeclareRobustCommand protegge mediante protect ilcomando pippo e a questo assegna la definizione specificata Questo aiuta arendere robusti i comandi quando essi vengono scritti nei file ausiliari quandoquesti file vengono riletti in una esecuzione successiva tutto quello che vieneletto ripassa attraverso il processo di lsquotokenizzazionersquo e lo spazio letto dal fileridiventa un normale spazio privo di significato quando segue il nome di uncomando Ingegnoso ma talvolta i neofiti non riescono a rendersi conto di questopassaggio

177 Definizione di un nuovo ambientePer definire un nuovo ambiente si ricorre al comando newenvironment con laseguente sintassi

newenvironment〈ambiente〉[〈num_arg〉][〈default〉]〈comandi di apertura〉〈comandi di chiusura〉

Lrsquo〈ambiente〉 egrave il nome dellrsquoambiente che si vuole definire e che non deve esi-stere giagrave altrimenti viene emesso un messaggio drsquoerrore e la compilazione deldocumento viene bloccata

Lrsquoambiente che viene definito puograve ricevere solo in apertura un certo numero〈num_arg〉 di argomenti il primo dei quali puograve essere facoltativo se vienespecificato 〈default〉 e va trattato come il primo argomento facoltativo definitocon newcommand

Seguono poi i 〈comandi di apertura〉 da eseguire allrsquoinizio dellrsquoambiente ilquali fanno uso esplicito degli argomenti eventualmente presenti obbligatori ofacoltativi infine vengono definiti i 〈comandi di chiusura〉 da eseguire appenaprima di chiudere lrsquoambiente

In realtagrave definire un 〈ambiente〉 equivale a definire due comandi uno perlrsquoapertura e lrsquoaltro per la chiusura come se si fossero definiti i due comandiseguenti

newcommand〈ambiente〉[〈num_arg〉][〈default〉]〈comandi di apertura〉newcommandend〈ambiente〉〈comandi di chiusura〉

I comandi begin e end con i quali si aprono e si chiudono gli ambienti eseguonodelle funzioni importanti fra le quali la costituzione di un gruppo cosiccheacute tuttoquello che si fa dentro allrsquoambiente rimane locale e circoscritto solo e soltanto aquellrsquoambiente il comando end oltre a chiudere il gruppo provvede a verificareche si stia chiudendo lrsquoultimo ambiente che si era aperto in caso contrario vieneemesso un messaggio drsquoerrore

Il fatto dei due comandi distinti per lrsquoapertura e la chiusura di un ambientepuograve essere sfruttato nella definizione di nuovi ambienti per esempio in questodocumento il file MaroGuidasty che contiene le definizioni utili alla composi-zione di questo testo definisce lrsquoambiente sintassi che provvede a stampare la

177 DEFINIZIONE DI UN NUOVO AMBIENTE 317

sintassi dei vari comandi incorniciando il suo contenuto in un rettangolo chefa da cornice In questo modo si egrave pensato di definire lrsquoambiente medaglioneche incornicia il suo contenuto e lrsquoambiente sintassi che espone il medaglioneincorniciato ma separato dal testo che lo precede e che lo segue di uno spazioverticale uguale a quello che si ha nei testi in display in particolare si richiedeche il testo sia giustificato solo a sinistra le due definizioni sono le seguenti

newenvironmentmedaglione[1][linewidth]setbox0vboxbgrouphsize1advancehsize-2fboxsepadvancehsize-2fboxrule

noindentparegroupsetbox0vboxunvbox0frameboxbox0

newenvironmentsintassiflushleftmedaglione

endmedaglioneendflushleft

Lrsquointerpretazione delle definizioni per lrsquoambiente sintassi egrave abbastanza semplicein apertura esegui le istruzioni per comporre un testo in display giustificato soloa sinistra e poi esegui le operazioni per lrsquoapertura di un medaglione in chiusuraesegui le operazioni per terminare il medaglione e quelle per terminare il testo indisplay giustificato a sinistra

I comandi per la definizione del medaglione sono piugrave complicatie richiedono la conoscenza approfondita dei comandi primitiviSi osservi innanzi tutto che lrsquoambiente accetta un argomentofacoltativo il cui valore di 〈default〉 vale linewidth Questopuograve essere utile per incorniciare e mettere in evidenza anchetesti che non abbaino riferimento con la sintassi dei comandicome si egrave fatto con questo capoverso

A parte lrsquoargomento facoltativo in sostanza i comandi di apertura dicono checon setbox si deve riempire un registro di tipo box quello numerato lsquozerorsquo conuna scatola verticale vbox la cui apertura egrave indicata con il comando bgroupin questa scatola verticale si compone del testo usando una giustezza di hsizeimpostato al valore corrente del primo argomento 1 esplicitamente specificatoo il suo valore di default ma si diminuisce questo valore di quanto basta pertenere conto dello spazio fra la cornice e il suo contenuto valore che egrave conservatodentro il registro di tipo lsquolunghezzarsquo chiamato fboxsep e dello spessore delfiletto conservato dentro il registro fboxrule7 inoltre si ordina di comporresenza il rientro dei capoversi mediante noindent

Nei comandi di chiusura bisogna accertarsi che il capoverso costituito dal con-tenuto del medaglione sia effettivamente terminato ordinandone la terminazionecon il comando par e si termina il gruppo che chiude la scatola verticale conegroup si riassegna poi il contenuto della scatola lsquozerorsquo ancora alla scatola lsquozerorsquoestraendo le singole righe ovverosia disfacendo la scatola lsquozerorsquo con il comandounvbox questo serve per essere sicuri che le righe siano convenientemente spa-ziate spesso questa operazione egrave inutile ma non guasta infine si usa questascatola con box come argomento di framebox al fine di incorniciarla

La persona che si avvicina per la prima volta al contenuto di questo capitolopuograve restare sconcertata anche da questo linguaggio strano costituito dai comandi

7Invece dei comandi primitivi di tex si potrebbero usare quelli estesi di pdftex e scriverehsize=dimexpr1-2fboxsep-2fboxrulerelax

318 CAPITOLO 17 LATEX NUOVI COMANDI

primitivi di TEX che tra lrsquoaltro non sono mai citati o descritti in questo testoBersquo questo testo egrave introduttivo non esaustivo il lettore si accontenti di questoprimo assaggio e poi si documenti convenientemente nel TEXbook se vuole andareoltre a questi primi passi

Nello stesso tempo si capisce bene a che cosa possano servire le macro pereseguire nellrsquoordine giusto tutta una serie di operazioni se si dovessero specificareogni volta che si deve fare una certa operazione costringerebbero a scrivere e ariscrivere sempre le stesse cose con il pericolo di aggiungere errori ogni volta chesi ripetono queste scritture

178 La ridefinizione di ambienti esistentiLa ridefinizione di ambienti giagrave esistenti si esegue con renewenvironment cheusa la stessa sintassi di newenvironment Viene scambiato solo il tipo di testse lrsquoambiente da ridefinire non esiste viene emesso un messaggio di errore e lacompilazione viene interrotta

Per gli ambienti non esiste un comando simile a providecommand ma inbase a ciograve che egrave stato detto a proposito dei nuovi ambienti non dovrebbe esseredifficile per chiunque usare due volte il comando providecommand per definirelrsquoapertura e la chiusura di un ambiente purcheacute tutto ciograve sia fatto nel proprio filedi macro personali

Non egrave nemmeno difficile copiare dai file di classe o di estensione le definizionidi ambienti giagrave esistenti travasando le definizioni nel proprio file di macropersonali per poi separare le due definizioni di apertura e di chiusura in duedistinti comandi providecommand dentro alle cui definizioni apportare tutte lemodifiche che si credono opportune

Qui si porteragrave un esempio abbastanza articolato relativo alla modifica diun ambiente di sistema la modifica dellrsquoambiente theindex per la composizionedellrsquoindice analitico

Si vorrebbe cambiare la formattazione nel senso di comporre lrsquoindice semprea due colonne ma facendolo precedere da una spiegazione per lrsquouso composta apiena pagina Vorremmo anche che lrsquoindice analitico figurasse anche nellrsquoindicegenerale La prima cosa da fare egrave quella di esplorare lrsquoarchivio ctan per vederese il problema sia giagrave stato risolto Qui supporremo di non aver trovato nulla chevada bene per il nostro caso e quindi rimboccandoci le maniche ma esercitandola nostra creativitagrave ci accingiamo a modificare la definizione esistente

Bisogna quindi copiare la definizione dellrsquoambiente theindex dal file di classeche stiamo usando per comporre il nostro documento nel nostro file di ma-cro personali mymacrossty Per la classe book copieremo pertanto il codiceseguente

newenvironmenttheindexiftwocolumn

restonecolfalseelserestonecoltrue

fitwocolumn[makeschapterheadindexname]mkbothMakeUppercaseindexname

178 LA RIDEFINIZIONE DI AMBIENTI ESISTENTI 319

MakeUppercaseindexnamethispagestyleplainparindentzparskipz plus 3prelaxcolumnseprule zcolumnsep 35pletitemidxitemifrestonecolonecolumnelseclearpagefi

newcommandidxitemparhangindent 40pnewcommandsubitemidxitem hspace20pnewcommandsubsubitemidxitem hspace30pnewcommandindexspacepar

vskip 10p plus5p minus3prelax

Le ultime definizioni servono per formattare le singole voci in particolare perinserire i debiti rientri per mettere in evidenza i tre livelli di voci disponibiliLrsquoultima definizione quella di indexspace serve per inserire uno spazio verticalenellrsquoelenco composto ogni volta che si inizia una serie di voci con una nuovalettera dellrsquoalfabeto

Per poter scrivere su due colonne dopo aver cominciato a scrivere a pienapagina egrave conveniente aver caricato il pacchetto multicol potremmo anche inserireun test per verificare se il pacchetto egrave stato davvero giagrave caricato ma per semplicitagraveometteremo questo controllo

Allora modifichiamo la definizione dellrsquoambiente in particolare la definizionedei comandi di apertura (a) in modo da inserire lrsquoordine di scrivere nellrsquoindi-ce generale il nome dellrsquoindice analitico e in modo da non usare il comandotwocolumn ma lrsquoambiente multicols fornito dal pacchetto multicol Lasciamostare gli ultimi tre comandi come sono per cui qui non li ripetiamo Ovvia-mente cambiamo newenvironment in renewenvironment visto che stiamoridefinendo un ambiente esistente

renewenvironmenttheindexiftwocolumn

restonecolfalseelse

restonecoltruefimakeschapterheadindexnamemkbothMakeUppercaseindexname

MakeUppercaseindexnameaddcontentslinetocchapterindexnamethispagestyleplainparindentzparskipz plus 3prelaxcolumnseprule zcolumnsep 35pletitemidxitem Testo di spiegazioneIn questo indice analitico le voci hannoil numero di pagina in neretto quando sitratta di una definizione e in corsivo

320 CAPITOLO 17 LATEX NUOVI COMANDI

quando si tratta di un esempio drsquousoparvspacs3baselineskipmulticols2 Fine comandi di apertura

Inizio comandi di chiusuraendmulticolsifrestonecolonecolumnelseclearpagefi

Qualche parola di spiegazione non guasta Il test iniziale eseguito mediante ilcomando iftwocolumn appare allrsquoinizio di ogni definizione di comandi o diambienti che comincino un nuovo capitolo numerato o non numerato Servonoper stabilire se dopo la chiusura dellrsquoambiente sia o non sia necessario ripristinarela composizione a una colonna lrsquoultimo test nei comandi di chiusura eseguitocon il comando ifrestonecol serve appunto per ripristinare la composizionead una colonna nel caso che sia necessario

Il comando makeschaperhead egrave il comando con il quale viene composto iltitolo di un capitolo non numerato in questo caso il titolo del capitolo egrave contenutonella variabile indexname che babel carica con il nome giusto a seconda dellalingua in uso lsquoIndice analiticorsquo lsquoIndexrsquo

Il comando mkboth seguito dai suoi due argomenti serve per impostare ilcontenuto delle due testatine prima viene indicato il contenuto della testatinadi sinistra poi quello di destra Il contenuto egrave sempre il nome in lingua cor-rente dellrsquoindice analitico ma reso in lettere maiuscole attraverso il comandoMakeUppercase

Il comando addcontentsline come dice il nome serve per aggiungere unariga alla lsquotable of contentsrsquo cioegrave allrsquoindice generale I suoi tre argomenti indicanorispettivamente la sigla della lsquotable of contentsrsquo toc il tipo di voce da aggiungerea questa lista in questo caso si tratta di una voce corrispondente al titolo di uncapitolo segue poi il titolo del capitolo che in questo caso continua ad essere ilnome dellrsquoindice analitico nella lingua corrente

Il comando thispagestyle specifica lo stile compositivo di questa primapagina di questo nuovo capitolo in questo caso si tratta dello stile plain che noncontiene la testatina ma contiene il numero della pagina nel piedino Gli altri stilidefiniti di default sono empty senza testatina neacute piedino headings con piedinovuoto e testatina il cui contenuto viene specificato automaticamente dai comandichapter oppure section in particolare nella testatina di sinistra compare iltitolo del capitolo e in quella di destra il titolo del paragrafo corrente allrsquoiniziodella pagina Infine myheadings egrave simile a headings solo che il contenuto delledue testatine deve essere fissato manualmente dal compositore specificando divolta in volta entrambe le testatine oppure solo quella di destra attraverso icomandi markboth oppure markright

La scrittura parindent z serve per specificare che il rientro del capo-verso deve essere di zero punti questo valore egrave memorizzato nella variabile disistema z che equivale alla scrittura 0 pt

La successiva espressione parskipz plus 3prelax serve per spe-cificare un pochino di gomma elastica da inserire fra un capoverso e lrsquoaltroin pratica fra una voce e lrsquoaltra questo minimo di allungamento consente digiustificare verticalmente le colonne della composizione a due colonne

La specificazione successiva columnseprule z specifica che lo spessoredel filetto verticale che separa le colonne egrave di zero punti (quindi il filetto non

179 SITUAZIONI PARTICOLARI 321

crsquoegrave) Invece columnsep 35p dice che la separazione fra le due colonne vale35 pt quindi una decina di millimetri

Al comando item che abitualmente viene usato nelle liste qui viene asse-gnata unrsquoaltra definizione quella che egrave stata attribuita al comando idxitem eche non egrave stata modificata nellrsquoeseguire questa nuova definizione dellrsquoambientetheindex

Segue poi il testo di spiegazione che qui egrave stato limitato a poche righe giustoper fare un esempio alternativamente questo testo potrebbe essere incluso in unamacro e invece di usare il testo completo nella definizione del nuovo ambientesi sarebbe potuto indicare solo il nome della macro

Finita la spiegazione il comando par assicura che il capoverso contenentele spiegazioni sia veramente terminato il successivo comando di spaziaturaverticale dato con vspace inserisce una spaziatura di tre righe di testo infattibaselineskip indica appunto lrsquoavanzamento di riga quindi lrsquoaltezza completadi interlinea di una riga di testo

I comandi di apertura finiscono con lrsquoapertura dellrsquoambiente multicols alquale viene specificato di comporre su due colonne non egrave stata usata la sintassinormale per aprire lrsquoambiente percheacute siamo sicuri di chiuderlo nei comandi dichiusura come in effetti facciamo eseguendo il comando endmulticols

Questo esempio egrave istruttivo sotto molti aspetti dagrave una buona idea di ciograveche viene eseguito dietro le quinte quando si dagrave un comando qualunque dicequanto sia comodo che le macro possano fare tutto quello che fanno cosigrave che conun semplice comando di mark-up si possano sistematicamente e uniformementeeseguire le stesse operazioni compositive quanto lavoro si risparmi nellrsquousaremacro ogni volta che sia possibile e quindi quanto sia opportuno che in base altesto che si sta componendo il file mymacrossty contenga proprio le definizionidelle macro personali che servono per comporre le strutture lessicali che piugravefrequentemente compaiono nel testo

179 Situazioni particolari

1791 Le linee guidaLe linee guida sono quelle linee continue oppure linee di puntini o di altri simboliche guidano lrsquoocchio da una parte allrsquoaltra della pagina come in questa riga

Inizio Fine

In inglese le linee guida si chiamano leadersLATEX contiene giagrave le definizioni di alcune linee guida hrulefill e dotfill

il primo comando produce una linea continua appoggiata alla base della riga distampa comein questa riga formata da una linea spessa 04 pt agendo a livello di comandiprimitivi egrave possibile ridefinire il comando o definirne un altro con una riga piugravespessa eo non adagiata sulla linea di base lrsquoaltro comando produce una fila dipuntini come in questa riga

Egrave possibile definire o ridefinire i comandi che generano le linee guida maovviamente egrave sconsigliabile ridefinire i comandi del nucleo di LATEX indicati soprapercheacute LATEX li usa dentro altri comandi e la loro modifica potrebbe alterare in

322 CAPITOLO 17 LATEX NUOVI COMANDI

modo irreparabile i comandi che ne fanno uso perciograve qui faremmo esempi cheusano newcommand per essere sicuri di non ridefinire nulla di preesistente

Ogni linea guida egrave creata con una serie di comandi secondo la sintassi seguente

leaders〈scatola〉hskip〈gomma〉cleaders〈scatola〉hskip〈gomma〉xleaders〈scatola〉hskip〈gomma〉

La comprensione dei termini usati in queste definizioni egrave facilitata se si rivedonoquesti concetti nellrsquoappendice G

Brevemente in questo contesto per 〈scatola〉 si intende sia una scatola vera epropria da riempire con quello che si vuole sia un rettangolo nero (una scatolariempita di nero) il comando hskip serve per produrre uno spostamentoorizzontale percheacute la linea guida sia arbitrariamente estensibile lo spostamentodeve essere elastico ed egrave per questo che viene chiamato 〈gomma〉 questa 〈gomma〉egrave una speciale lunghezza che egrave formata da tre termini

1 la lunghezza naturale

2 lrsquoallungamento il cui ammontare egrave preceduto dalla parola chiave plussostituita nel nucleo di LATEX dalla macro plus

3 lrsquoaccorciamento il cui ammontare egrave preceduto dalla parola chiave minussostituita nel nucleo di LATEX dalla macro minus

Tutte le lunghezze definite con i comandi di LATEX sono in effetti delle gommePer esempio la lunghezza definita come segue

newlengthlamialunghezzasetlengthlamialunghezza10pt plus 5pt minus 3pt

definisce una lunghezza elastica (gomma) con il nome lamialunghezza la cuilunghezza naturale egrave di 10 pt il cui allungamento vale 5 pt e il cui accorciamentovale 3 pt insomma una lunghezza che si puograve estendere da 7 pt a 15 pt a secondadelle necessitagrave

Tanto per focalizzare meglio la natura della gomma lo spazio interparolaegrave una lunghezza elastica che ha una sua larghezza naturale pari a quella dellalettera lsquoersquo nel font corrente e un allungamento e un accorciamento entrambi piugravepiccoli della larghezza naturale TEX tiene conto di quanto lo spazio interparolapresente fra le parole di una riga si debba allargare o restringere per la suagiustificazione al fine di determinare la ldquobellezzardquo della riga o meglio la sualdquobruttezzardquo in base ad elaborati calcoli eseguiti sui valori di allungamento eaccorciamento effettivi TEX determina un livello di bruttezza da confrontarecon il valore della tolerance o della pretolerance al fine di accettare onon accettare quella particolare riga oppure per decidere se eseguire la cesurain fin di riga oppure se emettere un messaggio che avvisa lrsquooperatore che inquel capoverso crsquoegrave una riga troppo vuota (undefull hbox) o sporgente fuori dalmargine (overfull hbox) Si tratta di concetti molto tecnici ma egrave meglio averneuna conoscenza almeno superficiale

Tornando alle nostre linee guida la 〈gomma〉 da usare deve avere una compo-nente di allungamento infinita se vogliamo che i nostri leader si possano allungarea piacere Infatti le definizioni delle due linee guida predefinite sono

179 SITUAZIONI PARTICOLARI 323

defhrulefillleavevmodeleadershrulehfillkernz

defdotfillleavevmodecleaders hbxt 44emhsshsshfillkernz

Il comando leavevmode assicura che il comando venga usato in modoorizzontale Il comando kernz assicura che dopo la linea guida si proseguasenza ulteriori spazi e senza andare a capo il comando hfill indica di inserireun spazio dato da una gomma con una lunghezza naturale nulla e un allungamentoinfinito

Nella definizione di hrulefill compare la scatola nera il rettangolo nerohrule con una larghezza naturale che non influisce sulla lunghezza della lineaguida con altezza peri a 04 pt e profonditagrave nulla il suo effetto egrave quindi diprodurre una linea guida lunga quanto occorre ma spessa solo 04 pt appoggiataalla linea di base

Nella definizione di dotfill compare il codice hbxt 44em il cui ar-gomento vale hsshss Il primo comando egrave scritto in modo sintetico edequivale al comando LATEX makebox[044em] Lrsquoargomento di questa scatolaegrave un punto fermo e da due gomme hss di spazio orizzontale di lunghezza nullama di allungamento e accorciamento infiniti Il tutto egrave equivalente al comandoLATEX makebox[044em] e il punto egrave centrato dentro la scatola di 044 pt

Tuttavia sopra si sono indicati tre tipi di linee guida uno introdotto daleaders il secondo da cleaders il terzo da xleaders che differenza crsquoegrave fraquesti tre tipi di linee guida

1 leaders introduce i suoi puntini definiti mediante una scatola vera noncon un rettangolo nero come se fossero su una griglia fissa per cui da unariga allrsquoaltra come succede per esempio in un indice generale i puntinisono sempre incolonnati anche se questo comporta un eventuale spaziobianco allrsquoinizio e alla fine che lrsquoincolonnamento dei puntini impedisce diriempire

2 cleaders introduce i suoi puntini centrando la linea di puntini senzapreoccuparsi che siano incolonnati va bene in una linea guida isolata ditesto ma non in un indice generale dove le linee guida se ci sono egrave meglioche abbiano i puntini incolonnati

3 analogamente xleaders introduce i suoi puntini allargando un poco lospazio fra di loro in modo da estendere la linea guida cosigrave che non soloil primo e lrsquoultimo spazio siano uguali ma anche lo spazio restante siadistribuito fra i puntini presenti

Si considerino le seguenti tre definizioni di tre diverse linee guida

newcommandpuntinileadershbox to 10pthsshsshfillkern0ptnewcommandcpuntinicleadershbox to 10pthsshsshfillkern0ptnewcommandxpuntinixleadershbox to 10pthsshsshfillkern0pt

e si inseriscano le linee guida cosigrave definite in una scatola larga 99 pt inserita fradue parole Siccome ogni scatola-puntino delle linee guida egrave larga 10 pt nellospazio di 99 pt ce ne stanno 9 i restanti 9 pt vengono distribuiti diversamentefra lrsquoinizio e la fine a seconda del tipo di linea guida usata

324 CAPITOLO 17 LATEX NUOVI COMANDI

leaders Prima Dopocleaders Prima Dopoxleaders Prima Dopo

Si noti anche che nelle definizioni del nucleo di LATEX la grandezza dellascatola-puntino egrave definita in termini di lsquoemrsquo cioegrave di una unitagrave di misura chedipende dal font usato quindi anche se leaders dovrebbe essere in grado diassicurare lrsquoincolonnamento dei puntini questo non puograve succedere se i capitolisono composti in neretto e i paragrafi in serie media Questo egrave il motivo per ilquale nellrsquoindice generale di questo testo (e nelle classi standard) le righe cheriguardano i capitoli sono senza linee guida Se le avessero succederebbe quelloche appare nel seguente esempio

1 Primo capitolo 111 Primo paragrafo 112 Secondo paragrafo 2

Si vede chiaramente la mancanza dellrsquoincolonnamento fra i puntini della riga delcapitolo e quella dei paragrafi si nota anche la presenza di spazi diversi fra lelinee guida e il contenuto che loro ldquounisconordquo visivamente Queste disuniformitagravecomunque diminuiscono via via che le scatole-puntino vengono accorciate e ipuntini effettivamente inseriti nelle linee guida sono piugrave densi

Va anche da seacute che al posto dei puntini si potrebbero indicare degli altrisimboli testuali matematici o decorativi

1792 Controllo della posizione di grandi oggettiIn questo testo lo schema del layout delle pagine egrave mostrato sia a partire dal versodellrsquoocchiello sia nelle pagine 282 e seguente sia nelle pagine 364 e seguente

Nello stesso modo si potrebbe spezzare una lunga tabella di due pagineaffincheacute cominci su una pagina pari o una larga tabella da mettere su due pagineaffacciate con metagrave delle colonne nella pagina pari e lrsquoaltra metagrave nella paginadispari Gli esempi potrebbero andare avanti a lungo

Si potrebbe pensare di usare il comando afterpage fornito dal pacchettoafterpage Ma questo comando esegue quanto indicato nel suo argomento nonappena egrave finita la pagina corrente indipendentemente dal numero pari o disparidella pagina appena terminata Bisognerebbe procedere a tentoni e correggernela posizione ad ogni modifica del testo del documento

Abbiamo chiesto allrsquoautore del pacchetto afterpage se non avesse volutorimettere le mani sul suo pacchetto per aggiungere altri comandi che verificasseroin automatico la paritagrave del numero della pagina Noi non volevamo mettere lemani sul suo codice tanto piugrave che il suo codice agiva sulla routine di uscita cosache solo un TEXwizard puograve essere capace di fare David Carlisle ci ha rispostogentilmente che non se la sentiva di rimettere le mani nel suo codice scrittoquindici anni prima ma ci incoraggiava ad eseguire un comando ricorsivo di cuici forniva il modello dicendoci che non lrsquoaveva controllato e amichevolmenteinvitandoci a tentare la sorte Ma i veri TEXwizard come lui la sanno molto lungalo ringraziamo moltissimo per averci permesso di realizzare delle macro ricorsivea partire dalle sue indicazioni (che funzionavano benissimo naturalmente)

Nel file MacroGuidasty che contiene le definizioni delle macro usate percomporre questo testo appaiono le righe di codice che seguono dove vengono

179 SITUAZIONI PARTICOLARI 325

definiti i due comandi supaginapari e supaginadispari il secondo dei qualimeno utile del primo ma certamente non inutile

ifpackageloadedafterpagerelaxRequirePackageafterpage

newcommandsupaginapari[1]afterpageifoddvaluepagedefnextafterpage1elsedefnext1finext

newcommandsupaginadispari[1]afterpageifoddvaluepagedefnext1elsedefnextafterpage1finext

Poicheacute i due comandi si affidano allrsquoesistenza della macro afterpage definitadal pacchetto afterpage per prima cosa si verifica che il pacchetto sia giagravestato caricato se non lo fosse si provvede in merito Se la chiamata fosse inseguito ripetuta non sarebbe un problema percheacute i comandi RequirePackagee usapackage verificano sempre da soli se il o i pacchetti indicati nel loroargomento siano o non siano giagrave stati caricati affincheacute non vengano caricatinuovamente con il pericolo di annullare eventuali ridefinizioni di comandi eseguitedal programmatore o da altri pacchetti caricati fra la prima e la secondachiamata

La struttura dei due comandi egrave simile quando lrsquoargomento della macropassato ad una chiamata di afterpage viene eseguito egrave appena stata emessauna pagina e il numero di pagina egrave stato appena incrementato se era stataappena emessa una pagina pari il nuovo numero di pagina egrave dispari o viceversaQuindi il test eseguito con il comando primitivo ifodd verifica la disparitagravedel contenuto del contatore page attraverso lrsquouso della macro value se questocontenuto ha la paritagrave giusta definisce il comando next con lrsquoargomento dellamacro da noi definita altrimenti definisce next in modo che venga rigeneratolrsquoargomento al comando afterpage che verragrave eseguito alla fine della paginasuccessiva Finito il test la macro esegue il comando next che fa quantodesiderato cioegrave a seconda della paritagrave della pagina appena emessa esegue icomandi che noi avevamo passato come argomento oppure li riaccoda con unaltro afterpage

Ecco quindi che i layout delle pagine affacciate di cui si parlava allrsquoinizio diquesto paragrafo egrave stato specificato con

supaginaparilayout

e il disegno delle due pagine affacciate appare sempre a cominciare da una paginapari la prima disponibile dopo aver dato quel comando

1793 Immagini celle e scatoleIl titolo di questo paragrafo egrave un porsquo enigmatico in realtagrave il problema egrave sempliceinserire immagini nelle celle di una tabella puograve risultare difficile a meno che nonsi sia disposti a manipolare le scatole

Nel resto di questo testo non si egrave detto molto sulle scatole lrsquoarte di eseguire lacomposizione tipografica con LATEX dovrebbe astenersi dal manipolare le scatoleinterne dellrsquointerprete TEX almeno in prima battuta

Ciograve non toglie che qualche nozione non possa essere utile anche per capiremeglio alcuni strani costrutti eseguiti con le scatole nella definizione di alcunicomandi

326 CAPITOLO 17 LATEX NUOVI COMANDI

larghezza

altezza

profonditagrave

punto diriferimento

Aquilalinea di base

C Beccari ndash picture - 20090601

Figura 171 Alcune proprietagrave delle scatole Nella figura a destra si vedonole scatole corrispondenti ai caratteri che formano la parola lsquoAquilarsquo allineatesulla linea di base Le crenature fra i caratteri sono visibili dove le scatole sisovrappongono

TEX e quindi LATEX e pdfLATEX maneggia quasi esclusivamente scatolesono scatole i singoli caratteri le righe del testo le pagine composte tantoper fare esempi molto semplici Ogni scatola egrave definita dal suo tipo e da tredimensioni particolari la larghezza lrsquoaltezza e la profonditagrave Il rettangolo chepuograve simboleggiare una scatola ha un punto di riferimento allrsquointersezione delbordo sinistro con la linea che separa la sua parte alta dalla sua parte profondail segmento intercettato su questa linea dal bordo destro e dal bordo sinistro egravelungo quanto la larghezza della scatola lrsquoaltezza egrave la lunghezza del segmentoche parte dal punto di riferimento e raggiunge il vertice in alto a sinistra delrettangolo mentre la profonditagrave egrave la lunghezza del segmento che parte dal puntodi riferimento e raggiunge il vertice in basso a sinistra figura 171

Le scatole dei caratteri vengono allineate a formare una riga semplicementeallineando i loro punti di riferimento sulla linea di base della riga composta comesi vede nella figura 171 TEX prende le dimensioni delle scatole che racchiudonoi caratteri dal file metrico del font che sta usando questo contiene non solo tuttele informazioni dimensionali di ciascun carattere ma anche le dimensioni dellecrenature8 e le possibili legature fra caratteri La riga cosigrave formata rappresentauna scatola orizzontale la cui larghezza egrave la somma delle larghezze dei carattericomponenti e degli spazi bianchi che separano le parole lrsquoaltezza della rigaegrave la maggiore delle altezze delle scatole allineate orizzontalmente mentre laprofonditagrave della riga egrave la maggiore delle profonditagrave delle scatole suddette ilpunto di riferimento egrave perciograve lrsquointersezione della linea di base con il lato sinistrodel rettangolo che racchiude la riga composta

Le scatole formate dalle righe composte vengono incolonnate in verticaleallineando i punti di riferimento di tutte le scatole orizzontali usate lungo unaretta verticale e intercalando alle scatole orizzontali gli spazi bianchi di interlineae i contrografismi verticali prima e dopo ogni scatola che contenga del testo in

8La crenatura (kerning in inglese) egrave lrsquoammontare dellrsquoaccostamento di due caratteri adiacentiin modo da non fare apparire troppo spazio fra caratteri consecutivi dalle forme complementariper esempio lsquoVArsquo sono accostate mentre lsquoVArsquo non lo sono la differenza egrave evidente e un fontnel quale manchi lrsquoaccostamento sarebbe di qualitagrave assai modesta

179 SITUAZIONI PARTICOLARI 327

evidenza La pagina composta egrave quindi una scatola verticale ma TEX puograve gestireanche altre scatole differenti dallrsquointera pagina scatole che a loro volta possonocontenere altre scatole e cosigrave via come una serie di matriosche

LATEX ha due tipi di scatole orizzontali che lrsquoutente puograve usare con comandiaccessibili direttamente dal compositore mbox e makebox alcune varianti sonole scatole con cornice come fbox e framebox il compositore puograve definire pernome dei registri-scatola nei quali puograve salvare scatole orizzontali mediante icomandi newsavebox sbox e savebox il loro contenuto viene richiamato eusato con usebox

LATEX ha due tipi di scatole verticali a cui il compositore puograve accedereliberamente una egrave la scatola verticale prodotta con il comando parbox e lrsquoaltraegrave la lsquominipaginarsquo ottenibile con lrsquoambiente minipage Le scatole verticali di LATEXpossono ricevere il loro contenuto come sequenze di caratteri e di altri oggettitipicamente di tipo orizzontale oppure come scatole orizzontali giagrave compostenel primo caso LATEX provvede a costruire le scatole orizzontali da impilarein verticale La larghezza di simili scatole verticali coincide con quella dellascatola orizzontale piugrave larga lrsquoaltezza e la profonditagrave dipendono dalle opzioniche vengono specificate al comando o allrsquoambiente dipendendo da come questeopzioni specificano la posizione del punto di riferimento La scatola di tre righePippoPlutoPaperino

puograve avere il suo punto di riferimento collocato in modo che la prima

riga sia allineata con il testo circostante oppure

PippoPlutoPaperino puograve avere lrsquoultima

riga allineata con il testo circostante oppurePippoPlutoPaperino

puograve avere il suo asse

matematico allineato con lrsquoasse matematico del testo circostante Come si vededa questo capoverso le scatole verticali non sono molto utili da usare allrsquointernodel testo esse trovano applicazioni particolari in altri tipi di composizione

I comandi primitivi di TEX sono meno elaborati i registri-scatola possonoessere chiamati per nome come in LATEX oppure per numero purcheacute questosia strettamente compreso nellrsquointervallo da 0 a 2549 il registro-scatola 255 egraveriservato e lrsquoutente non lo deve mai toccare le scatole orizzontali sono contenutedentro hbox le scatole verticali si chiamano vbox vtop e vcenter i comandiper utilizzare il contenuto delle varie scatole registrate nei registri-scatola sonoinvece piugrave elaborati di quelli di LATEX Il lettore egrave invitato ad approfondirelrsquoargomento nel TEXbook che dedica a questi argomenti diversi capitoli

Dopo queste premesse possiamo tornare alle nostre immagini e alle caselleper esempio delle tabelle abbiamo visto che uno dei descrittori delle colonne egravep〈larghezza〉 questo in sostanza definisce una scatola verticale di larghezzapari a 〈larghezza〉 dentro la quale viene composto un breve capoverso ma questascatola ha la prima riga allineata con la prima o unica riga delle celle adiacentiMediante lrsquouso del pacchetto array abbiamo visto che si possono usare altri due

9In realtagrave il programma di composizione pdftex che con diversi file di formato soggiace atutti i programmi di composizione del sistema TEX incorpora le estensioni del programmaetex come si egrave giagrave spiegato nei capitoli iniziali e quindi non egrave limitato nel numero dei suoiregistri al numero di 255 ma ne puograve avere 215 numerati da 0 a 215 minus 1 insomma ne puograveavere in pratica un numero illimitato visto che egrave difficile immaginare la composizione di undocumento qualsiasi che impegni simultaneamente un numero cosigrave elevato di scatole

328 CAPITOLO 17 LATEX NUOVI COMANDI

Immagine Descrizione

Il formaggio egrave un pro-dotto derivato dal latteattraverso un processoche coagula la caseinauna proteina del latte

Tabella 171 Tabella in cui lrsquoimmagine e il testo adiacente hanno i punti diriferimento allineati in modo scorretto

Immagine Descrizione

Il formaggio egrave un pro-dotto derivato dal latteattraverso un processoche coagula la caseinauna proteina del latte

Tabella 172 Tabella in cui lrsquoimmagine e il testo adiacente hanno i punti diriferimento allineati correttamente

descrittori b〈larghezza〉 e m〈larghezza〉 che si comportano rispettivamentecome scatole verticali con lrsquoultima riga allineata ovvero con lrsquoasse matematicoallineato

Le immagini introdotte nel documento ricorrendo al pacchetto graphicx me-diante il suo comando includegraphics sono delle scatole orizzontali col loropunto di riferimento coincidente con il vertice inferiore sinistro Si capisce allorache per collocare una immagine bisogna tenere conto di altezza e profonditagrave dellescatole usate e regolarsi in modo da ottenere un buon risultato La tabella 171che si ottiene senza pensare a queste cose egrave orrenda La tabella 172 compo-sta ricordando le proprietagrave delle scatole appena descritte invece egrave compostaabbastanza correttamente

La tabella 172 puograve ancora essere ritoccata aggiungendo un piccolo spaziosopra lrsquoimmagine in modo che il filetto orizzontale non la sfiori tabella 173

La tabella 173 egrave stata composta con i comandi seguenti

begintabularm120ptm35mmhlineImmagine amp Descrizionehlinevspace8exincludegraphics[width=120pt]Formaggio ampIl formaggio egrave un prodotto derivato dal latte attraverso unprocesso che coagula la caseina una proteina del latte

179 SITUAZIONI PARTICOLARI 329

Immagine Descrizione

Il formaggio egrave un pro-dotto derivato dal latteattraverso un processoche coagula la caseinauna proteina del latte

Tabella 173 Tabella in cui lrsquoimmagine e il testo adiacente hanno i punti diriferimento allineati correttamente e dove uno spazio verticale pari a 08 ex separalrsquoimmagine dal filetto sovrastante

hlineendtabular

Premesso che il descrittore di colonna m〈larghezza〉 del pacchetto arrayrisolve il problema che cosa bisogna fare se per qualche motivo non si potesseconservare quello stesso tipo di descrizione per tutte le celle della stessa colonnaBisogna ricorrere a comandi di basso livello cioegrave ai comandi che manipolanodirettamente le scatole in modo da risolvere il problema compositivo solo per lacella specifica che contiene lrsquoimmagine Conviene anzi definirsi un comando cheesegua direttamente lrsquoinclusione dellrsquoimmagine ma con la posizione del puntodi riferimento specificata mediante una opzione Si potrebbe definire un nuovocomando tabularimage con la sintassi

tabularimage[〈posizione〉]〈larghezza〉〈file immagine〉

nel modo seguente

newcommandttoprulehrule height0pt width0pt depth-1exnewcommandctoprulehrule height0pt width0pt depth8exletbtoprulectopruleletbbotrulectopruleletcbotrulebbotrulelettbotrulebbotrulenewcommandtabularimage[3][b]parbox[1]2

csname1topruleendcsname includegraphics[width=2]3parcsname1botruleendcsname

dove la 〈posizione〉 di default egrave la stessa che si avrebbe con il semplice coman-do includegraphics Con questo nuovo comando si potrebbe comporre latabella 174 con i comandi

begintabularlp35mmhlineImmagine amp Descrizionehlinetabularimage[t]120ptFormaggio ampIl formaggio egrave un prodotto derivato dal latte attraverso un

330 CAPITOLO 17 LATEX NUOVI COMANDI

Immagine DescrizioneIl formaggio egrave un pro-dotto derivato dal latteattraverso un processoche coagula la caseinauna proteina del latte

Tabella 174 Tabella con lrsquoimmagine allineata con la parte superiore delleminuscole della prima riga della seconda colonna

processo che coagula la caseina una proteina del lattehline

endtabular

La definizione di tabularimage egrave un porsquo particolare percheacute i filetti (invisibili)inseriti prima e dopo lrsquoimmagine allrsquointerno della scatola verticale parbox nonpossono essere i comuni filetti di LATEX specificati con rule infatti qui abbiamobisogno di incolonnare solo scatole verticali o altri oggetti che si possono metterein una lista verticale il filetto hrule nonostante lrsquoiniziale h egrave un comandoprimitivo che specifica un filetto le cui altezza larghezza e profonditagrave sonospecificate con i parametri che seguono quel comando ma egrave un oggetto che puogravestare solo nelle liste di oggetti incolonnati in verticale I punti di riferimentodi questi filetti diventano quelli della scatola verticale quando le si specifichilrsquoopzione di 〈posizione〉 t oppure b nel caso dellrsquoopzione c non conta tanto ilpunto di riferimento quanto lrsquoasse matematico che TEX determina come lineamediana della scatola Si capisce allora che a seconda che il collocamento dellascatola corrisponda allrsquouna delle tre specificabili i filetti (invisibili) superiore einferiore debbano avere caratteristiche diverse si sono definiti sei filetti invisibiliche in realtagrave sono solo due distinti ma hanno sei nomi che si equivalgono questinomi sono ottenuti agglutinando la lettera di opzione per la collocazione con inomi toprule e botrule questa agglutinazione viene eseguita dalla definizionedi tabularimage solo al momento in cui il parametro 1 che corrisponde aquesta opzione egrave noto e lrsquooperazione viene eseguita dalla coppia di comandicsname e endcsname che creano un nome di comando valido per TEX a partireda qualsiasi stringa essi racchiudano

Questo genere di incapsulamenti di scatole con diversi punti di riferimentopuograve essere fatto anche con le minipagine create con lrsquoambiente minipage o con lescatole orizzontali con diversi allineamenti del loro contenuto e diverse larghezzenominali

Non si insiste oltre essenzialmente per non intimorire lrsquoutente di LATEX alleprime armi Egrave certo che la definizione di questi comandi specialmente ricorrendoai trucchi esposti rientra nella programmazione col linguaggio LATEX certamentenon nellrsquoarte di comporre tipograficamente con LATEX anche se ne costituisce ilsupporto Ma lrsquoappetito vien mangiando prima o poi tutti sentiamo il bisognodi definirci i nostri comandi i nostri ambienti le nostre scorciatoie per comporremeglio e piugrave correttamente

Gli ultimi esempi sono piuttosto ricchi di spunti ma non esauriscono certa-mente la questione della creazione delle proprie macro Questa egrave unrsquoarte difficile

179 SITUAZIONI PARTICOLARI 331

ma non impossibile bisogna avere la pazienza e lrsquoumiltagrave di imparare senzafretta sapendo perograve che la ricompensa saragrave forte sotto lrsquoaspetto della facilitagrave delcomporre

Bisogna avere la pazienza di imparare dai libri e dai manuali esistenti alcunidei quali elencati nellrsquoappendice A Bisogna avere anche la pazienza di leggere ilcodice dei file scritti da altri in primis quelli che definiscono il formato e le classi ei pacchetti standard Alcune parti sono veramente difficili da capire senza lrsquoaiutodi una documentazione ma questa egrave generalmente disponibile nei file dtx questisono file TEX documentati Se si lancia LATEX o pdfLATEX su uno qualunque diquesti file si ottiene un documento nel quale il codice egrave inframezzato a spiegazionise queste siano utili dipende dalla competenza informaticoprogrammatoria dellettore ma egrave certo che superato un primo scoglio per familiarizzarsi con illinguaggio la cosa diventa relativamente semplice e molto fruttuosa

Capitolo 18

LATEXla microgiustificazione

181 IntroduzioneQuando si vogliono fare bene le cose meglio ancora di come le farebbe LATEXda solo che rasenta giagrave la perfezione in fatto di composizione tipografica bi-sogna ricorrere alle potenzialitagrave di LATEX o meglio di pdfLATEX che non sonodocumentate neacute nel libromanuale di Leslie Lamport neacute in molti altri autorevolilibri ma sono riportate solo nella documentazione che accompagna il pacchettomicrotype

Si tratta di questo la composizione tipografica di qualitagrave richiede fra le variecose che il testo composto appaia privo di lsquoruscellirsquo e sia di un lsquocolorersquo uniformeI ruscelli tipografici sono quelle sequenze di spazi interparola che si susseguonoin diverse righe successive in corrispondenza quasi perfetta gli uni con gli altricosigrave che essi formano una striscia bianca che serpeggia attraverso il testo comeun ruscelletto bianco

Non solo ma gli spazi interparola dovrebbero essere il piugrave omogenei possibilee non troppo grandi in modo che il testo visto da una distanza alla quale nonsi riesca a leggere quanto esso contiene appaia di un colore (grigio) uniforme

Gli artisti tipografi sanno che lo spazio interparola ideale dovrebbe esserequello di una lettera lsquoirsquo nel font nel quale egrave composto il testo Knuth invece nelsuo TEXbook afferma che lo spazio interparola ideale sia largo quanto una lsquoersquonel font corrente Probabilmente non esiste un valore di spazio da prescriverecome ideale percheacute la spaziatura piccola della lsquoirsquo puograve andare bene per un testoletterario quello di una lsquoersquo probabilmente egrave un buon compromesso in generalema potrebbero esserci dei testi specifici specialmente di carattere scientificodove la spaziatura interparola diventa importante per separare bene il testodalla matematica dalle parole tecniche eccetera Quello che egrave certo egrave che lacomposizione con noti word processor e la composizione in colonne strettepraticata nelle tipografie di molti quotidiani e molti settimanali rinuncia a questaomogeneitagrave degli spazi interparola producendo risultati lsquoterribilirsquo nonostante imezzi tecnici a disposizione del compositore

A questi problemi pone rimedio il pacchetto microtype che offre soluzionimodeste al semplice LATEX ma che sviluppa tutta la sua forza con pdfLATEX

333

334 CAPITOLO 18 LATEX LA MICROGIUSTIFICAZIONE

182 La composizione dei capoversi

Il TEXbook spiega dettagliatamente come lrsquointerprete pdftex componga il testosorgente in capoversi giustificati I dettagli sono piuttosto complicati ma sottosotto crsquoegrave tutta lrsquoabilitagrave del matematico Knuth che ha prodotto un algoritmo diottimizzazione capace di dividere il capoverso in righe giustificate minimizzandola somma totale dei demerits associati alle righe in cui sarebbe possibile dividereun capoverso questi demerits sono legati quadraticamente alla bruttezza delladivisione scelta fra le divisioni possibili oltre che ad altri elementi costituitigeneralmente da penalitagrave

La bruttezza egrave un indice definito a partire dallrsquoammontare dellrsquoallargamentoo del restringimento dello spazio interparola nelle righe giustificate dellrsquointerocapoverso Le penalitagrave sono presenti esplicitamente per averle specificate neltesto sorgente o anche indirettamente percheacute sono state introdotte dai comandiusati alcune penalitagrave derivano dallrsquoaver inserito divisioni di parole in fin di rigaLe penalitagrave da usare nei diversi contesti sono predefinite nel file di formato ein quelli di classe ma lrsquoutente puograve inserirne di altre attraverso comandi comebreak nobreak linebreak e simili oppure inserendo alcune cesure esplicitemediante il comando -

Altri demerits sono ulteriormente introdotti da pdflatex se la penultima riga diun capoverso riceve la cesura Il pacchetto babel per la lingua italiana impone ilvalore di 50 000 000 al parametro finalhyphendemerits che controlla appuntola cesura della penultima riga di un capoverso In italiano infatti sarebbe quantomai indesiderabile che venga divisa la penultima riga di un capoverso consentendoche nellrsquoultima riga ci possa essere solo un frammento di parola al limite due solelettere corrispondenti alla minima lunghezza di una sillaba terminale secondolrsquoalgoritmo di sillabazione di LATEX per lrsquoitaliano Quellrsquoenorme valore di demeritsnon egrave lsquoinfinitorsquo ma consente praticamente sempre che lrsquoultimo righino di uncapoverso cominci con una parola intera

Tutte le tabelle dei font 112ndash1111 contengono anche i parametri metricicaratteristici dellrsquointera polizza in particolare lrsquoammontare dello spazio interpa-rola e il suo allungamento e il suo accorciamento per esempio nella tabella 112relativa al font a 10 pt usato per comporre questo testo si legge che lo spaziointerparola egrave pari a 33333 pt che lrsquoallungamento vale 16666 pt e che lrsquoaccorcia-mento vale 11111 pt Questo significa che nel giustificare le righe TEX aggiusta glispazi interparola aggiungendo o togliendo allo spazio lsquonormalersquo pari a un terzodel corpo quanto consentito dallrsquoallungamento o dallrsquoaccorciamento previstiaggiungendo alla bruttezza una quantitagrave dipendente dal cubo dellrsquoammontare diquesti allungamenti o accorciamenti relativi rispetto ai valori naturali1

Quando si inserisce il comando di legatura fra due parole o due informazionitra le quali si vieta la divisione della riga quando insomma si usa il carattereattivo ~ per ottenere questo effetto il comando inserisce una penalitagrave pari a10 000 (che per TEX egrave sinonimo di lsquoinfinitorsquo) per cui una eventuale divisione inquel punto provocherebbe una bruttezza infinita al punto che qualunque altradivisione produrrebbe una bruttezza inferiore

1La funzione di bruttezza legata a questi allungamenti o accorciamenti relativi egrave semprecubica ma egrave diversa per lrsquoallungamento che puograve teoricamente assumere qualunque valorerispetto allrsquoaccorciamento che non puograve essere superiore a quello stabilito altrimenti una parolasi sovrapporrebbe alla precedente

183 METODI PER MIGLIORARE LA GIUSTIFICAZIONE 335

Le cesure in fin di riga vengono minimizzate ricorrendo a due distinte compo-sizioni TEX esegue una prima divisione delle righe giustificate senza dividere insillabe e calcola la (minima) bruttezza del capoverso cosigrave ottenuto Se questovalore egrave inferiore ad un certo valore conservato in pretolerance allora questadivisione viene accettata e le righe giustificate del capoverso vengono accodatealla pagina parzialmente composta Se questo valore di pretolerance vienesuperato allora TEX esegue una seconda divisione delle righe consentendo lacesura in fin di riga esso perograve attribuisce una penalitagrave ad ogni cesura introdottauna penalitagrave ad ogni sequenza di due righe consecutive contemporaneamentecontenenti la cesura e una ulteriore dose di demerits se la penultima riga del ca-poverso contiene la cesura Tutte queste penalitagrave contribuiscono ad incrementarei demerits della divisione in righe fra tutte le possibili combinazioni di divisionicon le corrispettive cesure e i corrispettivi allungamenti o accorciamenti deglispazi interparola TEX sceglie quella che produce la minima bruttezza comples-siva e la confronta con un altro valore conservato in tolerance Se questaminima bruttezza non supera tolerance la divisione in righe viene accettataaltrimenti TEX ci prova una terza volta ma il risultato finale viene accodato allapagina in composizione accompagnato dai messaggi relativi alla bruttezza e allapresenza di righe lsquooverfullrsquo o lsquounderfullrsquo le prime sporgenti fuori della giustezzae le seconde con un allargamento eccessivo degli spazi interparola

Questo fatto accade molto raramente nonostante tutto puograve accadere Selrsquoeccesso di lunghezza non supera 1 ptndash15 pt spesso si puograve chiudere un occhio mase si puograve egrave meglio provvedere Se lo spazio interparola viene allargato troppo mala bruttezza della riga non supera qualche migliaio (1000ndash2000) si puograve chiudereun occhio ma di nuovo se si puograve rimediare egrave meglio provvedere Generalmentequesto implica la modifica del testo In linea di massima senza ricorrere allamicrogiustificazione spetta al compositore drsquoaccordo con lrsquoautore il compito dimodificare il testo del capoverso affincheacute la sua bruttezza sia ridotta certamenteTEX egrave molto potente ma non arriva ad modificare il testo da solo

183 Metodi per migliorare la giustificazioneDai paragrafi precedenti si evince chiaramente che LATEX lsquonormalersquo puograve ricorreresolamente allrsquoaggiustamento dello spazio interparola e alla cesura in fin di rigaper comporre i capoversi

I tipografi che lavoravano a mano con i caratteri mobili avevano anche altretecniche per giustificare meglio i capoversi

spazieggiatura In inglese tracking Spazieggiare i caratteri significa comporli conuno spazio interlettera leggermente maggiore di quello di default Per i piugraveautorevoli book designer britannici spazieggiare egrave paragonato al furto dipecore () Per noi il paragone egrave quasi incomprensibile ma la sua forzarisiede nel fatto che il furto di pecore in linguaggio penale lrsquoabigeato eraun reato assai grave nella Gran Bretagna del XIX secolo tanto che venivapunito con la pena di morteOggi si conviene che la spazieggiatura sia accettabile e talvolta consigliabilenella composizione in lettere maiuscole o maiuscolette di titoli o di similibrevi tratti di testo assolutamente improponibile in un testo in lettereminuscole Il lettore attento provi ad esaminare una qualunque rivista pub-

336 CAPITOLO 18 LATEX LA MICROGIUSTIFICAZIONE

blicata ai nostri giorni e cerchi di determinare quali righe siano spazieggiateconstateragrave che la spazieggiatura non solo egrave visibile ad occhio nudo ma ancheche contribuisce non poco a rendere mal composto il capoverso che contengatali righe spazieggiate Egli constateragrave anche che la raccomandazione dinon spazieggiare il testo scritto in lettere minuscole egrave abbondantementedisattesa in quel genere di pubblicazioni probabilmente una composizionegiustificata solo a sinistra sarebbe molto piugrave raccomandabile

protrusione della punteggiatura La protrusione della punteggiatura egrave quella tec-nica che consente di comporre con il margine destro leggermente seghettatoinvece che perfettamente allineato ma in modo che le parti sporgenti sianocostituite solo da segni di punteggiatura segnatamente il punto e la virgolaoltre che dal trattino di cesura Lrsquoocchio data la scarsa forza visiva diquesti segni vede il margine destro giustificato anche se in effetti esso nonlo egrave esattamente

protrusione dei segni grafici Con lo stesso criterio si possono far uscire piccoleparti dei segni alfabetici numerici di punteggiatura eccetera fuori daentrambi i margini purcheacute questa protrusione ammonti ad una frazionepiccolissima del segno che protrude Questo implica che fra le caratteristichemetriche del font deve essere indicata per ciascun segno una coppia divalori numerici che rappresentano la parte millesimale della larghezza delsingolo segno che puograve protrudere nel margine di sinistra o rispettivamentenel margine di destra Spesso nei font con grazie ci si puograve accontentare difar sporgere nei margini parti delle grazie orizzontali

larghezza del font Si puograve ancora ricorrere a varianti del font corrente formateda font dello stesso corpo forma e nerezza ma leggerissimamente piugravelsquoestesirsquo o lsquocompressirsquo Una variazione di larghezza del plusmn2 dovrebbe essereconsiderata come la variazione massima otticamente accettabile affincheacutelrsquoocchio del lettore non si accorga della variazione

legature e segni diacritici Nel comporre si potrebbero usare font dotati di segnilegati in numero maggiore dei soliti ff fi ffi fl ffl e szlig presenti nei font delletabelle 112 e 114 Gli antichi usavano molte altre legature presenti oggisolo nei font esperti e ricorrevano a segni diacritici come per esempio lrsquousodella tilde sulla lettera precedente per marcare una lsquomrsquo o una lsquonrsquo omessanon egrave raro trovare scritture come libru al posto di librum Oggigiornoquesto genere di artifici non viene piugrave usato in italiano In tedesco invecela umlaut sopra certe vocali egrave il residuo di questa pratica e rappresentauna lsquoersquo infatti quando in tedesco bisogna scrivere con font che mancanodella umlaut si mette esplicitamente la lsquoersquo a destra della vocale che non hapotuto ricevere la umlaut Universitaumlt o Universitaet Muumlller o Mueller

184 La microgiustificazioneI prototipografi ricorrevano spesso alle tecniche illustrate sopra Gutenberg stessoavrebbe usato varianti piugrave larghe o piugrave strette del font lsquonormalersquo per comporreuna delle sue famose Bibbie Gutenberg stesso non avrebbe usato allargamentio restringimenti maggiori del 2 tanto che sarebbero state necessarie misure

184 LA MICROGIUSTIFICAZIONE 337

molto accurate da parte degli studiosi di tipografia antica per rendersi conto dellsquotruccorsquo usato al fine di comporre cosigrave bene

I metodi descritti nel paragrafo precedente possono essere usati anche conLATEX e con pdfLATEX

Segnatamente la protrusione della punteggiatura puograve essere usata con LATEXlsquonormalersquo mentre questa protrusione e le altre tecniche possono essere tutte usatecon una versione sufficientemente recente del programma pdftex le versioni 140e quelle successive sono in grado di eseguire tutte le tecniche descritte sopra

Egrave bene ricordare che le versioni moderne del sistema TEX usano sempre ilmotore pdftex come interprete e compositore oltre ad essere la versione estesaapparentemente sembra essere il programma che compone direttamente in for-mato PDF In realtagrave questo programma egrave in grado anche di produrre il file diuscita in formato DVI e questo dipende da due o tre possibilitagrave precisamentedal fatto che il file di formato latexfmt egrave stato creato avendo impostato almomento della creazione il valore zero o un valore positivo nel contatore TEXpdfoutput in secondo luogo il formato di uscita del documento compostoindipendentemente dal file di formato dipende dal fatto che il file sorgentecontiene una assegnazione del valore zero o di un valore positivo al contatorepdfoutput alternativamente la cosa dipende dal fatto che il comando con ilquale lo shell editor (o il compositore stesso) ha invocato lrsquoesecuzione del pro-gramma con lrsquoopzione2 --output-format=pdf oppure --output-format=dviIn mancanza di opzioni o di assegnazioni esplicite vale lrsquoassegnazione eseguitadurante al creazione del file di formato

La scelta quindi di usare la piena potenzialitagrave dei meccanismi di micro-giustificazione o soltanto la protrusione dei segni di interpunzione dipende daaltri fattori come si egrave detto LATEX e pdfLATEX sono praticamente coincidentima hanno idiosincrasie diverse per quel che riguarda i formati dei file grafici daincludere

Detto ciograve la microgiustificazione si ottiene richiamando il pacchetto micro-type Questo pacchetto riconosce da solo se il programma di composizione staoperando per produrre un file di uscita in formato DVI oppure PDF e attivatutte le opzioni di microgiustificazione accettabili dalla modalitagrave di azione delprogramma

Ovviamente il pacchetto microtype egrave configurabile mediante opzioni passateal comando con il quale lo si richiama alcune funzionalitagrave possono essere attivateo disattivate dal compositore a seconda di che cosa egli sta componendo

Non solo ma adeguatamente istruito con comandi da inserire nel preamboloo lungo il file sorgente il pacchetto egrave in grado di cambiare impostazioni a secondadel contesto nel quale sta operando Per esempio nelle note a piegrave di pagina leopzioni da usare potrebbero essere diverse da quelle che sono in azione durantela composizione del testo per esempio in francese dove la spaziatura dei segnidi interpunzione egrave particolare potrebbero essere in vigore le opzioni per lospazio extra prima dei segni di interpunzione oppure allrsquointerno delle partidelimitate dalle virgolette caporali mentre in italiano queste opzioni devonoessere disabilitate in un documento scritto in italiano ed in francese le spaziatureextra prima dei segni di interpunzione apparirebbero solo nelle parti scritte infrancese

2Non tutte le versioni accettano questa opzione tuttavia quelle che non lrsquoaccettano preve-dono la possibilitagrave di assegnare il valore nullo o un valore positivo al contatore pdfoutputdirettamente nella linea di comando

338 CAPITOLO 18 LATEX LA MICROGIUSTIFICAZIONE

Le possibilitagrave di gestire tutte le funzioni di microgiustificazione sono numerosequindi si rinvia il lettore alla documentazione in doclatexmicrotypemicrotypepdf

Questo testo egrave stato composto con lrsquouso del pacchetto microtype con lrsquoaiutodi un righello e una versione stampata di almeno alcune pagine del testo egravepossibile verificare la protrusione dei segni di interpunzione e la protrusione neidue margini di piccole parti di diversi caratteri Lrsquoespansione o la contrazione deicaratteri egrave difficile da misurare tuttavia egrave possibile che la stessa parola compaiain righe diverse con differenti livelli di compressione o di espansione misurandoaccuratamente la larghezza di tali parole si puograve verificare la presenza di questoparticolare tipo di microgiustificazione

Si noteragrave anche che le parole con cesura in fin di riga sono proprio pochegeneralmente si tratta di parole lunghe almeno otto caratteri spesso decisamentepiugrave lunghe gli spazi interparola non sono proprio uguali ma sono molto piugraveomogenei di quelli che si avrebbero senza lrsquouso del pacchetto

Disponendo dei file sorgente di questo testo si puograve provare a vedere che cosasi ottiene senza usare il pacchetto microtype si noteranno spazi interparola piugravedisomogenei molte piugrave righe con cesure in fin di riga e molti piugrave messaggi dioverfull oppure di underfull hbox

Si osservino comunque nella pagina 339 le tre composizioni dello stesso testoa confronto la prima egrave stata ottenuta componendo un capoverso sufficiente-mente lungo su due colonne e con la microgiustificazione attivata la secondacomposizione contiene le stesse parole ma la microgiustificazione egrave disattivatanella terza composizione invece la microgiustificazione egrave attiva solo per quel cheriguarda la protrusione mentre egrave disattivata lrsquoopzione per ricorrere alle variantidel font con larghezze diverse Si tenga presente che allrsquointerno dellrsquoambientemulticols con cui sono eseguite le tre composizioni le penalitagrave per la presenzadi cesure in fin di riga sono drasticamente ridotte proprio per tener conto dellacomposizione in colonne strette

Nel secondo testo non microgiustificato si osserva una riga in piugrave spaziinterparola piugrave grandi e si vedono chiaramente alcuni ruscelli mentre non neappaiono nel testo microgiustificato il testo non microgiustificato contiene anchepiugrave cesure in fin di riga e diverse sequenze di righe consecutive terminanti con lacesura Nel terzo testo si ha una situazione intermedia ma egrave tutto quello che sipuograve ottenere quando il documento egrave composto per lrsquouscita in formato DVI

184 LA MICROGIUSTIFICAZIONE 339

Oggi si conviene che la spazieggiatu-ra sia accettabile e talvolta consigliabilenella composizione in lettere maiuscoleo maiuscolette di titoli o di simili brevitratti di testo assolutamente impropo-nibile in un testo in lettere minuscole Illettore attento provi ad esaminare unaqualunque rivista pubblicata ai nostrigiorni e cerchi di determinare quali ri-ghe siano spazieggiate constateragrave chela spazieggiatura non solo egrave visibile ad

occhio nudo ma anche che contribui-sce non poco a rendere mal composto ilcapoverso che contenga tali righe spa-zieggiate Egli constateragrave anche che laraccomandazione di non spazieggiare iltesto scritto in lettere minuscole egrave ab-bondantemente disattesa in quel gene-re di pubblicazioni probabilmente unacomposizione giustificata solo a sinistrasarebbe molto piugrave raccomandabile

Oggi si conviene che la spazieggia-tura sia accettabile e talvolta consiglia-bile nella composizione in lettere maiu-scole o maiuscolette di titoli o di similibrevi tratti di testo assolutamente im-proponibile in un testo in lettere minu-scole Il lettore attento provi ad esami-nare una qualunque rivista pubblicataai nostri giorni e cerchi di determina-re quali righe siano spazieggiate con-stateragrave che la spazieggiatura non so-

lo egrave visibile ad occhio nudo ma ancheche contribuisce non poco a renderemal composto il capoverso che conten-ga tali righe spazieggiate Egli consta-teragrave anche che la raccomandazione dinon spazieggiare il testo scritto in let-tere minuscole egrave abbondantemente di-sattesa in quel genere di pubblicazioniprobabilmente una composizione giu-stificata solo a sinistra sarebbe moltopiugrave raccomandabile

Oggi si conviene che la spazieggia-tura sia accettabile e talvolta consiglia-bile nella composizione in lettere maiu-scole o maiuscolette di titoli o di similibrevi tratti di testo assolutamente im-proponibile in un testo in lettere minu-scole Il lettore attento provi ad esami-nare una qualunque rivista pubblicataai nostri giorni e cerchi di determinarequali righe siano spazieggiate consta-teragrave che la spazieggiatura non solo egrave

visibile ad occhio nudo ma anche checontribuisce non poco a rendere malcomposto il capoverso che contenga ta-li righe spazieggiate Egli constateragraveanche che la raccomandazione di nonspazieggiare il testo scritto in lettereminuscole egrave abbondantemente disatte-sa in quel genere di pubblicazioni pro-babilmente una composizione giustifi-cata solo a sinistra sarebbe molto piugraveraccomandabile

Capitolo 19

LATEX la geometria dellepagine

191 IntroduzioneUno degli argomenti piugrave trattati nei forum degli utenti di TEX non escluso ilforum di guIt egrave quello dei margini della giustezza del testo delle testatine e deipiedini di come fare per rendere la pagina del documento finale gradevole edefficace

Qualche volta si tratta di rendere un documento il piugrave simile possibile aduna serie di altri documenti composti con altri sistemi qualche altra volta sitratta di ricomporre unrsquoopera antica o comunque fuori commercio per la qualesi vuole mantenere il piugrave possibile lrsquoaspetto originale e questo coinvolge anchela scelta dei font non solo la geometria della pagina o il corpo dei caratteri

Va allora detto prima di tutto che questo genere di attivitagrave puograve rendere undocumento bellissimo se il disegno della pagina e dei suoi elementi egrave fatto dauna persona di gusto colta esperta di grafica editoriale o almeno competentea livello di lsquointenditorersquo se non proprio di grafico professionista Il risultato puograveessere pessimo se viene eseguito da una persona incompetente ancorcheacute animatadalle migliori intenzioni peggio ancora se questa persona tenta di imitare lo stiledi noti word processor specialmente se i documenti scritti con quegli strumentisono stati composti da persone che si sono divertite a scegliere corpo e stiledei caratteri senza nessun criterio in mente spaziature margini inserimento difigure creazione di tabelle eccetera fatte a seconda dellrsquoispirazione del momentoe del comando piugrave facile da raggiungere con un click di mouse

Dietro al disegno di una pagina stampata ci sono in realtagrave quattro o cinquesecoli di storia considerando anche i codici manoscritti una quindicina di secolidi storia Questa lunghissima tradizione non puograve essere ignorata percheacute quelloche la tradizione ha prodotto egrave quello che egrave sopravvissuto alla selezione naturaleche ha tenuto conto dei mezzi a disposizione ma anche della qualitagrave del risultatoconfermata dallrsquoapprezzamento dei lettori

Non bisogna quindi cedere a qualunque tentazione compositiva ma documen-tarsi al meglio e cercare di affinare il gusto per saper discernere i bei prodottieditoriali dai prodotti accattivanti per colori per font fantasiosi per disposi-zione del testo che convoglia il messaggio ma che non potrebbero essere letti

341

342 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

da nessuno per piugrave di due o tre pagine consecutive Non si puograve confondere unopuscolo pubblicitario con un testo di poesie lrsquouno e lrsquoaltro hanno i loro impieghima non si possono comporre le poesie come una serie di reacuteclame e le reacuteclamecome dei poemi

In parte si egrave trattato di questi argomenti nel capitolo 14 qui perograve si desideraandare piugrave a fondo per mostrare non solo come fare ma anche che cosa ci stadietro sapendo il percheacute spesso si evitano errori stilistici che dovrebbero sempreessere evitati quando si cerca di comporre bene secondo lrsquoarte tipografica

Egrave chiaro a tutti che la parte piugrave importante di un documento egrave il suo contenutoQuesto aspetto non verragrave trattato in questo testo esistono ottime grammatichee testi di lsquoretoricarsquo per scrivere in modo efficace e che sappia convogliare ilmessaggio giusto al lettore

Uno degli aspetti piugrave importanti in questa azione egrave proprio quello di eseguireuna buona analisi del lettore se si riesce a fare un buon profilo del lettore alloraegrave possibile confezionare il messaggio in modo che sia adatto a quel tipo di lettoreEgrave facile capire che un testo destinato a una moltitudine di lettori dai profilidifferenti puograve essere difficilissimo da scrivere se si scrive per i lettori piugrave informatiquelli meno informati non capiscono se si scrive per i lettori meno informatigli altri si annoiano Questo stesso testo di introduzione allrsquoarte tipografica conLATEX che si rivolge ad una moltitudine di lettori cerca di essere un compromessofra i lettori esperti e quelli neofiti sicuramente non egrave completamente adatto neacuteai primi neacute ai secondi tuttavia si affida alla loro comprensione nella speranzache i primi possano trovare qualche spunto che non conoscevano e che i secondisiano invogliati ad andare piugrave a fondo

Certamente LATEX consente di dedicarsi con tutta lrsquoattenzione possibile alconfezionamento del messaggio alla sua corretta scrittura alla strutturazioneallrsquoevidenza da dare ai concetti base eccetera Tuttavia questi aspetti vengonosottolineati meglio da una particolare disposizione del testo sulla pagina daifont usati dalle decorazioni dai colori eccetera Questi aspetti fanno partedella grafica editoriale il grafico che si accinge a definire un layout particolaredeve stare attento a non esagerare percheacute il layout non deve attrarre o distrarrelrsquoattenzione del lettore specialmente in un documento contenente un testo moltostrutturato come puograve essere un libro Il layout deve essere sobrio aiutare il lettorenella sua lettura evidenziare ciograve che deve essere evidenziato senza richiamaresu di seacute lrsquoattenzione del lettore Aprendo un libro qualsiasi ben disegnato si hauna immediata percezione dellrsquoequilibrio grafico anche senza leggerne il testosi percepisce una sensazione confortevole che invoglia a leggere Un libro maldisegnato attrae lrsquoocchio sui fronzoli le decorazioni i colori ma distrae dallalettura

Vale la pena di riportare il commento di Peter Wilson lrsquoautore della classememoir a questo proposito1

Lrsquoessenza della buona tipografia egrave che essa non viene notata allaprima occhiata forse nemmeno alla seconda o alle successive se nonda chi abbia un occhio esercitato Se la vostra reazione iniziale quandoguardate un libro egrave quella di esclamare qualcosa a proposito del suo

1The essence of good typography is that it is not noticeable at first or even second or laterglances to any without a trained eye If your initial reaction when glancing through a book isto exclaim about its layout then it is most probably badly designed if it was designed at allGood typography is subtle not strident

192 LA GEOMETRIA DELLA PAGINA 343

layout allora probabilmente quel libro egrave mal progettato ammesso chesia mai stato progettato La buona tipografia egrave fatta di sottigliezzenon di esagerazioni

Qui di seguito si indicheranno alcuni aspetti della grafica editoriale chederivano dalla tradizione e si cercheragrave di spiegare da dove derivano alcune diqueste lsquonormersquo (piuttosto elastiche per fortuna) si indicheranno anche alcunipacchetti di estensione che consentono di personalizzare diverse parti del layout

192 La geometria della paginaIl lettore non si preoccupi se finora si egrave usata la parola lsquolayoutrsquo senza definirla Ininglese la parola deriva dalla locuzione verbale to lay out che vuol dire adagiaredistendere ma in tipografia essa non implica solo la disposizione geometrica dellevarie parti che compongono una pagina ma anche i font e le loro dimensionigli spazi (i contrografismi) fra le varie parti del testo e tanti altri dettagli piugrave omeno evidenti che non hanno a che fare solo con la geometria della pagina mahanno a che fare con la pagina nel suo complesso

Bisogna innanzi tutto stabilire di che tipo di testo si vuole confezionare ildisegno egrave un testo di consultazione un testo letterario un romanzo un saggioprevalentemente testuale un testo tecnico-scientifico un testo artistico conmolte immagini egrave un testo di lusso o si tratta di dispense richiede una letturacontinua oppure puograve o deve essere letto saltando da una parte allrsquoaltra deveessere stampato in grande formato o in formato tascabile

Come si vede giagrave queste poche cose richiedono diverse scelte grafiche alcunedelle quali talvolta sono piugrave di tipo economico che di tipo estetico

1921 Il formato delle pagineIn Italia un formato corrente per libri di ogni genere rilegati in brossura egrave quellola cui pagina rifilata ha le dimensioni di 170mm per 240mm misurando alcunilibri presi a caso chi scrive ha trovato dimensioni leggermente diverse di solitonon piugrave del 10 dai valori indicati Libri piugrave importanti rilegati con copertinarigida (incassati) possono avere dimensioni maggiori anche molto maggiori Ilibri di consultazione anche se incassati possono avere dimensioni minori conla pagina in formato A5 cioegrave di 148mm per 210mm Dimensioni minori peresempio A6 di 105mm per 148mm si incontrano in opuscoletti decisamentetascabili e di piccolo spessore

La scelta dei formati dipende dalla carta disponibile e dal numero di piegheche si possono fare per creare ogni segnatura Oggi si tende a stampare anastro continuo mentre in passato si stampava su grandi fogli di dimensionistandardizzate Il nastro continuo permette di tagliare delle sezioni piugrave o menolunghe che svolgono la funzione dei grandi fogli isolati del passato ed egrave perquesto che con il nastro continuo egrave facile avere piugrave libertagrave nel formato dellapagina Tuttavia una volta piegato il foglio un certo numero di volte si ottieneuna lsquosegnaturarsquo un fascicoletto contenente un numero di facciate pari ad unapotenza di due se le pieghe sono sempre state fatte lsquoa metagraversquo talvolta si fannodelle pieghe in tre per cui il numero di facciate di una segnatura puograve ancheessere divisibile per tre

344 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

Pieghe Nome Formato del foglio da piegare Pagine FacciateA0 A1 A2 A3 A4

1 folio A1 A2 A3 A4 A5 2 42 quarto A2 A3 A4 A5 4 83 ottavo A3 A4 A5 8 164 sedicesimo A4 A5 16 325 trentaduesimo A5 32 64

Tabella 191 Formati delle pagine a seconda delle dimensioni del foglio di partenzae del numero di pieghe

Un grande foglio piegato solamente in due produce una segnatura con duepagine e quattro facciate di solito di grandi dimensioni in passato era comuneper esempio per i messali nelle nostre universitagrave prima di essere sostituiti dalleregistrazioni informatiche i registri relativi agli studenti erano spesso dei libronilsquoin foliorsquo con le pagine di circa 400mm per 600mm

Con unrsquoaltra piega a metagrave si hanno segnature con quattro pagine e ottofacciate sono segnature in lsquoquartorsquo Con unrsquoaltra piega a metagrave si hanno segnaturecon otto pagine e sedici facciate sono segnature in lsquoottavorsquo Via via che si piegaa metagrave lrsquoordinale che indica la segnatura sedicesimo trentaduesimo ricordasempre una potenza di due si capisce perograve che piugrave si piega piugrave diventa spessala piega dove bisogna cucire e meno precisa diventa la posizione della partestampata su ogni facciata La tabella 191 si riferisce alle piegature dei foglidella serie A ISO-UNI il nome della piegatura folio quarto eccetera dagrave luogoa formati sempre della serie A ma piugrave piccoli Evidentemente al crescere delnumero di pieghe le pagine e le facciate diventano sempre piugrave piccole e semprepiugrave numerose la tabella in questione si riferisce comunque sempre a piegature ametagrave non anche in terzi per cui le successive piegature danno sempre luogo aformati della serie A

Eseguendo delle pieghe in tre si possono avere delle segnature in lsquosestorsquo inlsquododicesimo o in lsquoventiquattresimo ma sono segnature meno frequenti e cherichiedono fogli iniziali di dimensioni insolite

A prescindere dal numero di pagine che formano ogni segnatura questarappresenta il risultato della piegatura dei grandi fogli e anche la lsquomateria primarsquoper la cucitura a macchina o a mano per confezionare il libro quando questo egravecucito prima o dopo venire brossurato sicuramente prima di venire incassato ilblocco delle segnature cucite viene rifilato su tre lati per avere le pagine tuttedelle stesse dimensioni e per eliminare quei piccoli difetti di allineamento chepotrebbero essersi formati durante la cucitura Il libro brossurato puograve avere lacopertina un poco piugrave ampia delle pagine che racchiude il libro incassato hasempre la copertina che sporge oltre le pagine il libro incassato spesso ha unasovracoperta destinata a proteggere la copertina rigida talvolta realizzata concoperture di materiali pregiati come stoffa o pelle

1922 Le segnature e le imposizioniQuesta rapida scorsa sulla fabbricazione del libro permette di capire che il lsquodesktop publishingrsquo a cui spesso ci si riferisce quando si usano sistemi di composizionelsquofai da tersquo non puograve prescindere dalla conoscenza di queste regole elementari

192 LA GEOMETRIA DELLA PAGINA 345

anche quando il testo composto su fogli A4 eventualmente lsquoin foliorsquo e perciograve conpagine in formato A5 sono incollati a caldo e brossurati con metodi economicianche in questi casi egrave necessario un passaggio alla taglierina per rendere i taglisuperiore inferiore ed esterno ben pareggiati e facili da far scorrere fra le ditaLATEX puograve essere utile in questi casi sicuramente egrave molto utile per il lavorotipografico a foglio continuo anche se il suo file di uscita contiene una sequenzadi pagine non necessariamente nella sequenza giusta e ruotate quanto basta percomporre i due lati dei grandi fogli che formeranno ciascuna segnatura questaoperazione verragrave eseguita in tipografia con software adeguato e con macchineadatte per marcare le grandi lastre di fotolitografia con le quali verragrave eseguita lastampa con foglio continuo

A casa per produrre un fascicoletto o un libro in formato A5 il sistema TEXoffre un certo numero di possibilitagrave dal punto di vista delle macchine bisognaimmaginare di disporre di una stampante che possa stampare fronte e retro inmancanza bisogna stare attenti a stampare prima tutti i fronti poi ricaricare arovescio il pacco dei fogli stampati da un lato per stamparli dallrsquoaltro egrave ovvioche questa operazione richiede la massima attenzione per essere sicuri che ognifoglio risulti stampato correttamente sui due lati con quello che deve contenereMeglio ancora sarebbe disporre di una stampante che accetti in entrata fogli informato B4 e che possa stampare fronte e retro con le attenzioni esposte sopranel caso essa possa stampare solo fronte Il vantaggio sarebbe che piegando ametagrave segnature su fogli B4 si ottengono pagine in formato B5 cioegrave di 176mmper 250mm che ammettono abbastanza margine ma senza eccessivo sfrido perstappare pagine in formato 170mm per 240mm il formato della maggior partedei libri in Italia

Ma per stampare questi fogli egrave necessario riordinare le pagine bisognadecidere innanzi tutto se si vogliono fare segnature di quattro fogli (otto paginee sedici facciate) o segnature con piugrave o meno fogli Bisogna comporre il file informato PDF magari correggendo i margini affincheacute le pagine appaiano alla giustadistanza dalla piega centrale di ogni foglio A42 Poi bisogna eseguire lrsquoimposizionecioegrave bisogna riordinare e ruotare le pagine affincheacute appaiano nellrsquoordine e nelverso giusto quando si compone la segnatura per fare questo si invoca il pacchettopdfpages per esempio con il file PDF che si chiami librettopdf che contengapagine in formato A5 e disponendo di una stampante A4 bisogna predisporreun piccolo file LATEX cosigrave composto

File segnaturetexdocumentclassarticleusepackage[final]pdfpagesbegindocumentincludepdf[pages=-nup=1x2landscapesignature=16]librettopdfenddocument

Compilando questo file tramite pdflatex si ottiene un file con le pagine A4 inposizione lsquopanoramicarsquo (landscape) su ogni facciata della quale si trovano duepagine A5 estratte dal file iniziale e ordinate correttamente per formare segnaturedi sedici facciate quindi la prima segnatura avragrave un primo foglio che sul fronte

2Si suppone che a casa si disponga dei una normale stampate per fogli A4 se si disponessedi una stampante per fogli A3 quanto viene detto qui vale per un fascicolo in formato A4oppure per segnature in sedicesimo (otto fogli sedici pagine 32 facciate) e in formato A5

346 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

avragrave le pagine 16 e 1 e sul retro le pagine 2 e 15 un secondo foglio con le pagine14 e 3 sul fronte e 4 e 13 sul retro un terzo foglio con le pagine 12 e 5 sul frontee 6 e 11 sul retro un quarto foglio con le pagine 10 e 7 sul fronte e 8 e 9 sulretro Secondo questa stessa sequenza vengono imposte le ulteriori pagine suifogli che formeranno le segnature successive

Stampando il file segnaturepdf sulla stampante A4 in modalitagrave fronte eretro i vari fogli vengono stampati in ordine ogni quaterna di fogli contienegiagrave una segnatura che basta piegare a metagrave per poi impilarla con le successivesegnature in bellrsquoordine non resta che incollare o cucire e poi brossurare o incas-sare Per maggiori dettagli ci si puograve riferire alla documentazione del pacchettopdfpages

Esiste anche il pacchetto booklet per ottenere piugrave o meno lo stesso risultatole differenze sostanziali fra le strategie di imposizione dei due pacchetti sonoessenzialmente queste

bull pdfpages presuppone che il documento di cui si devono creare le imposizionisia giagrave composto in formato PDF booklet invece compone il documento apartire dal solito file sorgente producendo in uscita un file PDF contenentele imposizioni Questo implica specialmente con le segnature con piugrave pagineche si metta a dura prova lrsquointera memoria del programma di composizionepdftex e questa possibilitagrave egrave menzionata anche nella documentazione dibooklet

bull Il testo da comporre potrebbe non avere un numero di pagine complessivopari ad un multiplo intero del numero di pagine delle segnature specificateentrambi i pacchetti aggiungono il numero necessario di pagine biancheallrsquoultima segnatura Ma pdfpages aggiunge un numero di pagine tale chelrsquoultima segnatura abbia lo stesso numero di pagine delle altre mentrebooklet consente che lrsquoultima segnatura abbia un numero di pagine multiplodi 4 anche se questa segnatura dovesse avere meno pagine delle altre

Il testo di Gustavo Cevolani [8] spiega molto dettagliatamente il procedimentodelle imposizioni con molti esempi ed esegue un confronto accurato dei duepacchetti

Naturalmente per un lavoro non casalingo basta predisporre il file PDF ma-gari con i crocini (vedi piugrave avanti) e in tipografia verranno eseguite le imposizionicorrette per la produzione delle segnature sui grandi fogli da piegare con diversepieghe per poi passare le segnature alla sezione di cucitura o incollaggio e poialla sezione di confezionamento finale con la coperta in brossura o incassataprodotte da una linea di produzione diversa

Con riferimento alla figura 191 vale la pena di osservare come sono eseguitele imposizioni per generare le segnature su un foglio piegato a metagrave piegato duevolte a metagrave e piegato tre volte a metagrave Le pieghe si suppongono sempre eseguitepiegando a metagrave il lato lungo del foglio o del fascicoletto parziale le pieghedisegnate in rosso rappresentano quella che diventeragrave il dorso della segnatura lapiega sulla quale viene eseguita la cucitura o la spillatura le pieghe disegnate innero saranno eliminate con la rifilatura dei tre bordi esterni del fascicolo o dellibro

192 LA GEOMETRIA DELLA PAGINA 347

4 1 2 3

2 7

3 6

8 1

5 4

2 15 14 3

7 10 11 6

4 13 16 1

5 12 9 8

CBeccari

ndashpi

ctur

e-20

090

601

Figura 191 Le imposizioni per generare una segnatura in folio in quarto e inottavo

1923 I crocini

Per eseguire il lavoro in tipografia egrave indispensabile poter disporre di una estensionea LATEX che permetta di segnare i lsquocrocinirsquo in italiano i lsquocrop marksrsquo in inglese sitratta di segni spesso a forma di croce che permettono di registrare con precisionele varie pagine durante il lavoro fatto in tipografia in modo che le stampe delledue facciate di una stessa pagina siano esattamente allineate guardando incontroluce il margine sinistro del testo della facciata sul verso deve corrispondereesattamente con il margine destro del testo stampato sul recto della stessa paginae lo stesso deve succedere per tutti gli altri margini corrispondenti

Ogni compositore puograve crearsi i suoi crocini ricorrendo allrsquoambiente picturecome nella figura 192 che mostra un esempio predisposto per una tipografiaitaliana in essa appaiono sia i mezzi crocini che indicano i limiti della paginarifinita e i crocini interi che servono per registrare con precisione le imposizioniNon egrave difficile fare una cosa come quella mostrata nella figura 192 ma egrave delicatain alternativa si puograve ricorrere al pacchetto crop che provvede da solo a disporrei crocini (preconfezionati secondo la tradizione USA) nelle posizioni specificatein relazione alle dimensioni della pagina rifinita La documentazione si trova indoclatexcropcroppdf

348 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

CBeccari

ndashpi

ctur

e-20

090

601

Figura 192 Esempio di crocini predisposti per una tipografia italiana

1924 Dimensioni della gabbia del testoSu ogni facciata va collocata la gabbia del testo stampato chiamata anche specchiodi stampa o gabbia interna questa egrave la parte piugrave significativa della pagina e vadimensionata con cura Non egrave solo una questione di margini il rettangolo checontiene il testo deve essere adeguato al testo che esso contiene e ai font con cuiegrave scritto

Studi di carattere psicosociologico hanno messo in evidenza che il lettoremedio si trova a suo agio nel leggere se le righe non contengono piugrave di 65ndash70caratteri spazi e segni di interpunzione compresi (regola di Bringhurst) Lascelta del font e la scelta del corpo normale quello con cui egrave scritto il testocorrente diventano perciograve fondamentali per definire la giustezza cioegrave la base delrettangolo che circoscrive il testo

Esistono tabelle per determinare la giustezza ottimale per ciascun font e perogni corpo dello stesso font tuttavia non egrave facile procurarsi queste tabelle perqualunque font LATEX perograve offre un metodo semplice e pratico per determinare lagiustezza migliore con un dato font Basta predisporre un piccolo file di prova nelquale si sceglie il font e con quello si misura la lunghezza dellrsquoalfabeto minuscolo

Per esempio con il carattere di default il Computer Modern il semplice fileseguente permette di sapere che la larghezza dellrsquoalfabeto minuscolo di corpo10 pt vale 13758371 pt

documenctlassminimalnewlengthalfabetobegindocumentsettowidthalfabetoabcdefghijklmnopqrstuvwxyz

192 LA GEOMETRIA DELLA PAGINA 349

Lrsquoalfabeto minuscolo CM a 10pt vale thealfabetoenddocument

Sapendo che ci sono 7227 punti in un pollice e che un pollice vale 254mm sipuograve determinare una volta per tutte la dimensione in millimetri di un puntoprecisamente la costante di conversione vale 0351 459 804mmpt Con questacostante di conversione possiamo quindi determinare che lrsquoalfabeto minuscolodi 26 lettere egrave lungo 4836mm quindi si ha mediamente 1859 813mmletteraQuesto semplice conto svolto una volta per tutte permette di calcolare che conquesto font la giustezza ottimale di 65ndash70 caratteri per ogni riga vuol dire unagiustezza da 121mm a 130mm

Esercizio 191 Questo testo testo egrave stato composto con il carattere Latin Moderna 10 punti con la classe book senza modifiche sostanziali Il file bk10cloche specifica le misure relative al font di 10 pt dice che la giustezzatextwidth quando si compone ad una colonna egrave impostata a 345 pt lagiustezza egrave nellrsquointervallo indicato sopra

Il conto appena fatto potrebbe sembrare troppo semplificato non si egrave tenutoconto degli spazi e dei segni di interpunzione siccome gli spazi interparola sonodello stesso ordine di grandezza di una lsquoersquo (anche se possono risultare un pocoallargati o ristretti per la giustificazione) e i segni di interpunzione piugrave frequenti(il punto e la virgola) contano poco anche se contano gli spazi da cui sono seguitiil conto appena fatto bencheacute approssimato fornisce una eccellente stima dellalunghezza della riga ideale

A titolo di esempio nella tabella 192 sono riportate le giustezze in millimetriper righe composte con 60 65 70 e 75 caratteri con diversi font I dati relativi aifont CM e LM sono praticamente identici mentre si osservano diversitagrave sensibilinelle giustezze ottimali con i font TX e PX Ma una differenza che non emergea colpo drsquoocchio egrave la seguente rispetto alle giustezze relative al corpo di 10 ptle giustezze con corpi maggiori o minori per i font TX e PX sono strettamenteproporzionali al corpo percheacute con questi font LATEX lavora solamente con il corpodi 10 pt ingrandito o rimpicciolito a seconda della necessitagrave Con i font CM edLM cade la proporzionalitagrave percheacute LATEX con questi font usa caratteri disegnatiapposta per ciascun corpo3 Il corpo di 10 pt egrave il corpo del testo corrente conlrsquoopzione 10pt il corpo 11 pt egrave relativo allrsquoopzione 11pt e corrispondentementeil corpo di 12 pt si riferisce allrsquoopzione 12pt per il corpo di 10 pt il corpo di 9 ptsi riferisce al comando small e quello di 8 pt al comando footnotesize Sottoquesto aspetto i font nativi del sistema TEX sono migliori di quelli commercialidistribuiti nel solo corpo a 10 pt Fra i font commerciali esistono anche fontlsquoespertirsquo che hanno forme diverse a seconda del corpo ma sono meno diffusi

Il font usato determina pertanto un intervallo ottimale entro cui scegliere ilvalore della giustezza Come si determina lrsquoaltezza La risposta dipende moltodalla natura della testatina e del piedino

19241 Testatine e piedini il pacchetto fancyhdr

Bisogna innanzi tutto decidere che cosa contengano le testatine e i piedini dellepagine dispari e di quelle pari Se il testo egrave un romanzo le testatine e i piedini

3Veramente il corpo indicato con 11 pt in realtagrave egrave di 1095 pt e viene ottenuto peringrandimento del font CM a 10 pt e per rimpicciolimento del font LM a 12 pt

350 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

Giustezze in millimetriNumero di caratteri

Corpo 60 65 70 758 87 95 102 1099 95 103 111 119

10 103 112 120 12911 113 122 132 14112 121 131 141 151

1

(a) Font CM

Giustezze in millimetriNumero di caratteri

Corpo 60 65 70 758 87 95 102 1099 95 103 111 119

10 103 111 120 12911 111 120 129 13812 121 131 141 151

1

(b) Font LM

Giustezze in millimetriNumero di caratteri

Corpo 60 65 70 758 77 83 90 969 87 94 101 108

10 96 104 113 12111 106 115 124 13312 116 125 135 145

1

(c) Font TX

Giustezze in millimetriNumero di caratteri

Corpo 60 65 70 758 86 93 100 1089 97 105 113 121

10 108 117 126 13511 118 128 138 14812 129 140 151 162

1

(d) Font PX

Tabella 192 Giustezze determinate con il metodo della lunghezza dellrsquoalfabetoLe giustezze sono espresse in millimetri e i valori sono arrotondati al valoreintero (a) font CM (Computer Modern) (b) font LM (Latin Modern) (c) fontTX (Times eXtended) (d) font PX (Palatino eXtended)

servono a poco e possono essere anche vuoti o uno dei due puograve contenere solo ilnumero della pagina questrsquoultimo se egrave lrsquounica indicazione oltre al testo presentesulla pagina potrebbe essere collocato nel piedino centrato o a filo del margineesterno del blocco di testo oppure potrebbe essere collocato in testa o al piededel margine esterno della pagina (come una nota marginale) In entrambi i casiesso non impegna visivamente la pagina quindi lrsquoaltezza del blocco di testocontiene effettivamente solo il testo

Se invece il testo egrave un documento di consultazione le testatine destra esinistra e i piedini destro e sinistro giocano un ruolo essenziale nella lsquonavigazionersquodel testo alla ricerca delle informazioni che interessano Ecco allora che il pac-chetto fancyhdr diventa utilissimo per costruire testatine e piedini fortementestrutturati che aiutino davvero nella navigazione del testo questo pacchettoconsente di gestire lrsquoinformazione variabile di pagina in pagina da collocarenelle testatine di sinistra e di destra lo stesso vale per i piedini Il pacchettoconsente di immaginare ogni testatina o piedino diviso in tre parti quella disinistra quella di centro e quella di destra e di scrivere in ciascuna parte unainformazione diversa La documentazione del pacchetto fancyhdr si trova indoclatexfancyhdrfancyhdrpdf

Si capisce subito che questo genere di testatine e di piedini fortemente strut-turati possono essere molto utili nei rapporti tecnico-scientifici adeguatamentepredisposti possono indicare in un vocabolario il primo e lrsquoultimo lemma checompaiono in una pagina Ma quello che egrave piugrave importante egrave che questi elementi

192 LA GEOMETRIA DELLA PAGINA 351

di riferimento sono otticamente lsquoingombrantirsquo e quindi bisogna ritagliarli dalrettangolo del testo tenendo conto anche di un adeguato spazio di separazioneeventualmente anche di un filetto di delimitazione

19242 Le proporzioni della gabbia di testo

Stabilito se le testatine eo i piedini facciano o non facciano parte della gabbia deltesto bisogna decidere quali proporzioni abbia la gabbia del testo il rettangoloche racchiude il testo in relazione al rettangolo che rappresenta la pagina rifinitaSi puograve decidere che abbia le stesse proporzioni (lo stesso rapporto altezzabase)come si puograve optare per proporzioni diverse Per altro non si puograve prenderequesta decisione se non si prendono in considerazione anche i margini e ciograve cheeventualmente questi devono contenere

Una decisione preliminare molto importante egrave se si stampa solo sul recto osul recto e il verso (in bianca e volta come si dice in gergo tipografico) In realtagravese si stampa solo in bianca lo stile grafico perde abbastanza la sua importanzapercheacute si sta parlando di un fascicolo o incollato a caldo o semplicemente inseritoin una legatura a spirale o a punti o ad anelli Ciograve non toglie che non si debbaprendere qualche precauzione per evitare che una parte di testo risulti illeggibile

Normalmente se si stampa solo in bianca le proporzioni della gabbia deltesto rispecchiano le proporzioni della pagina fisica eventualmente depuratadellrsquoulteriore margine a sinistra per tener conto della legatura artigianale o deifori per gli anelli su un foglio A4 si puograve pensare di assegnare circa 7-8mm per larigidezza della incollatura a caldo o della legatura a spirale un poco di piugrave per ifori per i raccoglitori ad anelli La larghezza utile della pagina diventa perciograve da202-203mm a 195mm e la proporzione altezza su larghezza va da circa 147 acirca 152 invece del valore di circa

radic2 asymp 141 tipico della serie UNI

Per esempio per un raccoglitore ad anelli il rapporto utile vale 152 Se lagiustezza egrave di 125mm allora lrsquoaltezza della gabbia del testo deve essere di 190mmCentrando la pagina nello spazio utile i margini superiore e inferiore diventanodi (297 mmminus 190 mm)2 = 535 mm I margini destro e sinistro diventano invecediversi se si deve tenere conto dei 15mm assegnati allo spazio per i fori deglianelli il margine destro diventa (210 mm minus 15 mm minus 125 mm)2 = 35 mm eil margine sinistro egrave 15mm piugrave grande e risulta 50mm come controprova50 mm + 125 mm + 35 mm = 210 mm

Per la stampa in bianca e volta crsquoegrave maggiore libertagrave sia pure tenendo contoche le pagine destre e sinistre sono diverse se non altro percheacute i margini internidevono essere diversi dai margini esterni anche in questo caso si puograve tenere contodi qualche millimetro per contrastare lrsquoeffetto di curvatura in corrispondenzadel margine interno il margine di cucitura Tuttavia non si egrave tenuti a rispettarela stessa proporzione della pagina fisica Anzi i grandi book designer giocanocon la forma della pagina e la forma della gabbia del testo per ottenere effettispeciali Bringhurst per esempio gioca con i rapporti geometrici come se fosseroi rapporti di note musicali sia della scala diatonica sia di quella cromatica ericerca i rapporti che formino accordi gradevoli altri invocano il rapporto aureoaltri invocano i rapporti che esistono negli elementi delle figure geometriche inparticolare dei poligoni regolari Un esempio egrave dato dal disegno riportato nelcapitolo 14 nella figura 142 Definita la diagonale di un poligono regolare comela corda piugrave lunga allora la diagonale di un triangolo equilatero sta al lato inrapporto unitario e dagrave quindi luogo ad una gabbia quadrata Con il quadrato

352 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

il rapporto egraveradic

2 con il pentagono il rapporto egrave quello aureo 1618 conlrsquoesagono il rapporto vale 2 con lrsquoettagono il rapporto vale 2247 con lrsquoottagonoil rapporto vale 2613 Raramente si usano rapporti cosigrave grandi (superiori a 2) manon sono esclusi per particolari documenti in un catalogo di una casa editriceho trovato una gabbia con il rapporto pari a 225 praticamente il rapportodellrsquoettagono

19243 I margini

Tradizionalmente i margini inferiore e superiore stanno fra di loro come il margineesterno sta al margine interno Inoltre in una coppia di pagine affacciate (ininglese uno spread) spesso si desidera che la coppia di margini interni sianocomplessivamente equivalenti a ciascuno dei margini esterni Esaminando il layoutdi diversi testi antichi e moderni Wilson ha trovato che in realtagrave questa tradizionenon era rispettata nemmeno secoli fa sebbene moltissimi libri pubblicati inpassato la rispettassero Wilson ha raccolto diversi disegni di layout antichi emoderni nella parte preliminare del manuale della sua classe memoir che ora sitrova in un file separato ctantex-archiveinfomemdesignmemdesignpdf

Per seguire questa regola gli antichi usavano squadra e compasso ed eseguivanodelle ingegnose costruzioni geometriche per determinare le proporzioni dellagabbia e dei margini

Gutenberg avrebbe disegnato la gabbia delle sue famose Bibbie e di diversialtri stampati seguendo la costruzione della figura 193 La costruzione egrave piugravelunga da commentare che non da valutare graficamente Comunque si basa sulmetodo delle due diagonali La diagonale AB indicata nella figura egrave la diagonaledella pagina di destra mentre la diagonale CD egrave la diagonale delle due pagineaffacciate ed egrave per questo che interseca il margine sinistro della pagina di destraa metagrave altezza Le due diagonali si intersecano nel punto E per il quale si tracciala verticale EF di qui si traccia la parallela FG alla diagonale delle due pagineaffacciate il punto di intersezione H di questa parallela con la diagonale dellapagina individua il primo vertice della gabbia dal quale egrave semplice tirare le debitelinee verticali ed orizzontali per completare il rettangolo HIJK della gabbia

Analizzando la costruzione geometrica si determina abbastanza facilmenteche il risultato della costruzione di Gutenberg egrave lo stesso di quello che si ottienecon il metodo delle nove strisce discritto qui di seguito Infatti la prima metagravedella costruzione determina il punto E tale che il segmento AE egrave un terzodel segmento AB la seconda parte della costruzione determina il punto H inmodo che nuovamente il segmento AH sia un terzo del segmento AE perciograve ilmargine interno e quello superiore sono rispettivamente un nono della larghezzae dellrsquoaltezza della pagina rifinita sulla base della quale si egrave fatta la costruzionegeometrica Per la similitudine dei vari triangoli che hanno generato il margineinterno e quello superiore i margini esterno e quello inferiore sono esattamenteil doppio quindi due noni della corrispondente dimensione della pagina rifinita

La costruzione piugrave semplice consiste nel dividere il rettangolo della paginarifinita un un certo numero di strisce uguali sia in verticale sia in orizzontaledue strisce verticali esterne vengono riservate al margine esterno e due strisceorizzontali in basso vengono riservate al margine inferiore una striscia orizzontalein alto viene riservata al margine superiore e infine una striscia verticale vieneriservata al margine interno In questa maniera le proporzioni della gabbia deltesto risultano uguali a quelle della pagina il margine interno egrave metagrave del margine

192 LA GEOMETRIA DELLA PAGINA 353

h

h2

A C

B

D

E

F

H

G

I

JK

CBeccari

ndashpi

ctur

e-20

090

601

Figura 193 Costruzione geometrica usata da Gutenberg per determinare leproporzioni e la posizione della gabbia delle sue famose Bibbie

esterno e il margine superiore egrave la metagrave del margine inferiore La figura 194permette di seguire la costruzione su un foglio con le proporzioni della carta A4nella costruzione della figura (a) viene usato il rapporto 2 1 tra la larghezzadel testo e la larghezza complessiva dei margini cosigrave come tra la larghezza delmargine esterno rispetto al margine interno e lo stesso viene fatto per le altezzeQuindi sei strisce per il testo e tre complessivamente per i margini delle qualidue per il margine maggiore e una per il margine minore

Sempre usando le strisce ma con un rapporto diverso si puograve ottenere unacostruzione differente ma che conserva la stessa proporzione fra le dimensionidella pagina e quelle della gabbia Per esempio se si sceglie il rapporto 3 2occorrono complessivamente 25 strisce 4 per il margine piccolo 6 per il marginegrande 10 in totale per i margini 15 per la gabbia questo egrave quello che si egrave fattonella figura 194(b)

Sviluppando i calcoli in modo algebrico senza fare riferimento alle strisce(che diventerebbero infinite) si potrebbe calcolare la divisione della pagina con ilrapporto aureo il margine piccolo sta a quello grande come 1 φ e il testo staai margini complessivi ancora come 1 φ Quindi il margine piccolo sta a quellogrande che sta al testo come la proporzione 1 φ φ(1 + φ) Svolgendo i calcolisi ottiene che se w egrave la dimensione orizzontale o verticale della pagina rifinita

354 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

(a) (b) (c) (d)

(e)CBeccari

ndashpi

ctur

e-20

090

601

(f) (g) (h)Figura 194 Determinazione della gabbia e dei margini con il metodo delle strisce(a) esempio con 9 strisce e rapporto 2 1 (b) esempio con 25 strisce e rapporto3 2 (c) esempio con il rapporto aureo ndash si noti che la gabbia non egrave un rettangoloaureo (d) esempio con il rapporto 4 3 Nella seconda riga viene rappresentato ilmetodo delle strisce riferito solo al rapporto dei margini (e) metodo dei marginicon 11 strisce (f) metodo delle 10 strisce usato dalla classe octavo (g) metododei margini con 8 strisce (h) gabbia aurea con margini aurei su foglio A4

allora le dimensioni orizzontali o verticali rispettivamente dei margini e dellagabbia sono 0145 898w per il margine piccolo 0236 068w per il margine grandee 0618 034w per la gabbia Ciograve egrave quanto si vede nella figura 194(c)

La situazione egrave diversa per il disegno (h) In questo disegno si impone che lagabbia sia un rettangolo aureo quindi la base della gabbia sta alla sua altezzacome 1 sta a φ Il foglio egrave un rettangolo UNI (A4) con rapporto fra la base elrsquoaltezza pari a

radic2 se si impone il rapporto aureo anche fra i margini piccoli e

quelli grandi questo puograve essere fatto indipendentemente dalle dimensioni dellagabbia Quindi egrave possibile imporre per esempio che la base della gabbia abbia ilrapporto aureo rispetto alla somma dei margini laterali ma non si puograve imporrela stessa relazione fra lrsquoaltezza della gabbia e la somma dei margini superioree inferiore Infatti eseguiti i calcoli4 si ottiene il disegno (h) che egrave piuttostodiverso dal disegno (c)

Nei primi tre schemi della figura 194 i rapporti numerici indicati sono sempre

4I calcoli dannobase del foglio 210000mm margine interno 30639mm

altezza del foglio 297000mm margine esterno 49574mmbase della gabbia 129787mm margine superiore 33231mm

altezza della gabbia 210000mm margine inferiore 53769mm

192 LA GEOMETRIA DELLA PAGINA 355

(a)CBeccari

ndashpi

ctur

e-20

090

601

(b) (c)Figura 195 Confronto fra tre gabbie che sulla carta UNI A4 tengono contodel rapporto aureo (a) gabbia ottenuta con il pacchetto layaureo (b) gabbiacon proporzioni auree fra le dimensioni della gabbia e i corrispondenti marginipiccolo e grande (c) gabbia aurea con margini aurei

costituiti da due successivi numeri di Fibonacci5 egrave noto che la sequenza diFibonacci ha il rapporto fra due successivi termini che tende al rapporto aureonon egrave un caso che la figura 194(c) assomigli molto alla figura 194(b) bencheacute inquesta il rapporto 3 2 = 15 non sia tanto vicino al rapporto aureo 1618 034 ma la costruzione della figura 194 basata sulle strisce consente anche rapportiformati da numeri che non appartengono alla sequenza di Fibonacci Se si sceglieil rapporto 4 3 le strisce occorrenti sarebbero 49 e si omette di disegnarle siottiene la figura 194(d) e come si vede le differenze non sono enormi

Visto che in diverse figure si sono presentati dei disegni della pagina conmargini aurei si egrave riportata ancora la figura 195 dove sono messi a confronto itre schemi ripetendone le caratteristiche

(a) In questo schema prodotto dal pacchetto layaureo la gabbia ha la basepari alla lunghezza ottimale in base alla regola di Bringhurst aumentata di4 pc ndash secondo la tabella 192 la giustezza conterrebbe 75 caratteri del fontLatin Modern lrsquoaltezza in rapporto aureo con la base il margine interno eil margine esterno in rapporto aureo fra di loro il margine superiore

radic2

volte piugrave piccolo del margine inferiore La pagina egrave A4 e la larghezza dellagabbia egrave di 31 pc per il font da 10 pt come specificato sopra Secondo ilpacchetto layaureo la gabbia risulterebbe linearmente piugrave grande di circail 6 per il corpo di 11 pt e di un altro 6 piugrave grande per il corpo di 12 pt

(b) In questo schema i margini sia in orizzontale sia in verticale sono inproporzione aurea e la loro somma egrave in proporzione aurea con la dimensioneorizzontale o verticale della gabbia il rettangolo della gabbia ha quindi lestesse proporzioni della pagina

(c) In questo schema invece il margine interno egrave in proporzione aurea con ilmargine esterno e la loro somma in proporzione aurea con la base dellagabbia lrsquoaltezza della gabbia egrave in proporzione aurea con la base il marginesuperiore e il margine inferiore sono in proporzione aurea fra di loro manon con lrsquoaltezza della gabbia

5La sequenza di Fibonacci comincia con 1 1 e prosegue con ogni elemento costituito dallasomma dei due precedenti quindi 1 1 2 3 5 8 13

356 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

In questi tre esempi la giustezza egrave sempre circa 4 pc (circa 17mm) piugrave grandedi quella raccomandata dalla regola di Bringhurst ma probabilmente solo dicinque o sei caratteri in piugrave quindi una misura assolutamente accettabile Peraltro si vede ad occhio che almeno per la composizione in corpo di 10 pt le gabbie(a) e (c) sono praticamente identiche cosigrave come lo sono i margini Con lo schema(a) usando un corpo maggiore per il font normale si avrebbe un riempimentodella pagina significativamente maggiore

Come si vede solo gli schemi (a) e (c) hanno la gabbia con la base e lrsquoaltezzain proporzione aurea mentre nello schema (b) la gabbia ha la base e lrsquoaltezza inproporzione di

radic2 Nello schema (a) la base della gabbia egrave determinata in base

alla regola di Bringhurst mentre negli schemi (b) e (c) la base egrave determinata inbase alla proporzione aurea rispetto alla somma dei margini Le tre filosofie sirifanno tutte e tre al numero aureo ma ne fanno un uso completamente diversoSta al compositore scegliere quella delle tre soluzioni che considera piugrave gradevolecome sta a lui decidere se rifarsi al numero aureo o al metodo delle strisce

Alcuni pacchetti determinano la gabbia e i margini riferendosi alle strisceusando sempre una striscia per il margine piccolo e due strisce per il marginegrande ma senza imporre nessun rapporto particolare fra le dimensioni dellagabbia e quelle dei margini lasciando quindi libera la scelta del numero dellestrisce nei disegni (e) (f) (g) della figura 194 sono rappresentate semprecon riferimento ad un foglio A4 le gabbie che si ottengono rispettivamente con11 10 e 8 strisce (il disegno con nove strisce egrave il disegno (a)) Si vede dunqueche il metodo delle strisce realizzato dal pacchetto typearea o per le 10 striscedalla classe octavo egrave molto versatile volendo con numeri alti di strisce si puogravestabilire anche un rapporto diverso fra le strisce da dedicare al margine piccolorispetto al margine grande ed egrave quello che il parametri opzionali al pacchettotypearea consentono di fare

Si osservi infine che in tutti i disegni della figura 194 tranne il disegno (h)la gabbia ha sempre le stesse proporzioni del foglio inoltre per costruzione imargini grandi stanno ai margini piccoli come lrsquoaltezza del foglio sta alla basePer cui la gabbia del testo rimane sempre adagiata con la sua diagonale sullacorrispondente diagonale del foglio Lrsquounico disegno che si discosta da questaproprietagrave egrave per costruzione il disegno (h) e quindi la diagonale della gabbia nongiace sulla diagonale del foglio Tuttavia la differenza non egrave enorme ma alla finfine il disegno (h) presenta una maggiore copertura del foglio con margini nontroppo piccoli e ben proporzionati

Il metodo delle strisce permette di suddividere anche le strisce destinate aidue margini in modo diverso fra i margini verticali e quelli orizzontali egrave quindiun metodo molto versatile Tuttavia si richiama ancora il lavoro di Wilson dove inmolti casi le suddivisioni fra i margini non rispettano affatto la regola delle striscee non ci si avvicina affatto al rapporto aureo Appaiono curiosi gli esempi in cui ilmargine interno egrave vistosamente maggiore del margine esterno Un caso particolareche ha la sua giustificazione egrave il libro di Knuth Concrete Mathematics peril quale lrsquoautore ha sviluppato anche la famiglia di font denominata ConcreteComputer Modern con la sigla CC A parte lrsquointeresse specifico per il contenuto illayout della pagina presenta un margine interno vistosamente maggiore di quelloesterno ma anche pieno di note marginali sistemate in questo margine doveriporta le battute dei suoi studenti in corrispondenza degli argomenti trattatiQuesta libertagrave stilistica e di contenuto egrave forse tipica dello humor anglosassonema certamente la lettura di quelle battute alleggerisce molto la difficoltagrave della

193 LrsquoAVANZAMENTO DI RIGA 357

materia Ecco quindi che con uno scopo preciso in mente si possono lsquoviolarersquo leregole dettate dalla tradizione

193 Lrsquoavanzamento di riga e i contrografismiverticali

Sarebbe desiderabile che lrsquoaltezza della gabbia in particolare quella che contieneil testo corrente abbia un avanzamento di riga costante e contenga un numerointero di righe La cosa non egrave semplicissima da calcolare percheacute la prima riga deltesto non dovendo essere distanziata da nessuna riga precedente ha una altezzaconvenzionale indicata da topskip quasi sempre pari a 10 pt mentre le distanzefra le righe di base di tutte le righe successive sono pari a baselineskip Percalcolare lrsquoaltezza del testo textheight in modo che contenga un numero interodi righe bisogna eseguire dei calcoli fra numeri interi con una aritmetica che nonegrave familiare a chi egrave abituato ai calcoli a mano ma che viene benissimo quando sieseguono i calcoli a macchina si tratta di eseguire le divisioni conservando laparte intera del quoziente e gettando via il resto

Scelto lrsquoavanzamento di riga ottimale normalbaselineskip per il font dicorpo normale prescelto (anche questa una operazione delicatissima che occupadiversi capitoli in ogni libro di tipografia) si puograve eseguire il calcolo in questamaniera dal calcolo della gabbia si sottrae lo spazio destinato alle testatinee ai piedini e ai loro contrografismi se si egrave scelto che tutti questi elementifacciano parte della gabbia si ottiene quindi una prima approssimazione ditextheight che chiameremo x1 si toglie topskip che chiameremo y e si divideper normalbaselineskip che chiameremo z il risultato di questa divisionein generale non egrave un numero intero ma la divisione che tex o pdftex eseguonoegrave una divisione intera quindi il risultato egrave la parte intera del quoziente chechiameremo N lrsquoaltezza della scatola del testo corrente non saragrave quindi x1 comeassunto in partenza ma saragrave il nuovo valore x2 calcolato come segue

x2 = Nz + y dove N = intero(x1 minus yz

)Esercizio 192 Per un romanzo privo di testatina e con un piedino contenente

solo il numero della pagina e che quindi non si considera facente partedella gabbia textheight coincide con lrsquoaltezza della gabbia Se si usa ilmetodo delle strisce e il rapporto 2 1 con una pagina rifinita di 170mmper 240mm e si egrave scelto il font Computer Modern di corpo 10 pt e unavanzamento di riga normale di 12 pt quanto deve valere textheightpercheacute contenga un numero intero di righe

Si puograve procedere anche a rovescio scelto lrsquoavanzamento di riga che si vorrebbeusare z1 si calcola quante righe Nt totali stanno nellrsquoaltezza desiderata poisi ricalcola il nuovo avanzamento z2 in modo che nellrsquoaltezza specificata stianoesattamente le N righe cosigrave definite Perciograve i calcoli da fare sono i seguenti

M = Nt minus 1 = intero(xminus yz1

)e poi z2 =

(xminus yM

)Lrsquoultima divisione deve essere una divisione fratta egrave piugrave facile da calcolare conuna ordinaria calcolatrice che non farla determinare a pdftex in realtagrave oggi

358 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

questo sarebbe perfettamente in grado di eseguire la divisione senza problemioggi infatti le versioni moderne di pdftex consentono di determinare nativamenteil valore di alcune espressioni aritmetiche grazie alle estensioni di etex incorporategiagrave da qualche anno Si tralascia qui di mostrare come fare per far fare i calcolial programma stesso ma si indirizza il lettore alla documentazione di etexcontenuta in docetexbaseetex-manpdf al paragrafo 35 intitolatosignificativamente Expressions

Nel presente testo lrsquoavanzamento di riga egrave di 12 pt per il corpo normale di10 pt il file bk10clo corrispondente allrsquoopzione 10pt determina lrsquoaltezza deltesto con una prima approssimazione pari allrsquoaltezza del foglio diminuita di 35pollici un valore forfettario che tiene conto dei margini della testatina e del suospazio di separazione dal testo della prima riga di testo ma non del piedinopoi divide il risultato per lrsquoavanzamento di riga normale conservando la parteintera del risultato infine rimoltiplica lrsquoavanzamento normale per questo numerointero a alla fine aggiunge topskip Praticamente quel che si egrave indicato con ilprimo procedimento

Sarebbe desiderabile che le righe di testo corrente che si vedono controluce frail recto e il verso della pagina siano appoggiate sulle stesse linee di base in questomodo si riduce lrsquoeffetto della semitrasparenza della carta che provocherebbe undisturbo alla lettura se ciograve non avvenisse

Bisognerebbe quindi che ogni struttura del testo stampato che compare suogni pagina dalla semplice riga di testo ai titolini dei paragrafi e delle lorosuddivisioni dalle formule in display alle inserzioni di figure tabelle o altrofossero sempre anche loro dei multipli interi dellrsquoavanzamento di riga normaleQuesto egrave molto difficile da ottenere anche se si prendono tutte le misure e leprecauzioni possibili e immaginabili per avere strutture fatte come si egrave dettoNei testi letterari ci si riesce abbastanza bene ma in testi tecnici egrave difficilissimoAnche i compositori che lavorano con programmi di impaginazione professionalitrovano serie difficoltagrave e nella migliore delle ipotesi devono aggiustare a manolrsquoaltezza di ogni struttura che non sia costituita da semplice testo composto conil font di default nel corpo normale

In pratica bisogna determinare gli spazi bianchi i contrografismi in modoche la loro altezza sommata a quella delle strutture in evidenza sia sempre unmultiplo intero dellrsquoavanzamento di riga normale Questo non egrave difficilissimo dafare ma richiede una pazienza infinita

Il punto egrave che bisogna fare i conti con lrsquoalgoritmo che tex o pdftex usano persuddividere il testo in pagine Come si puograve bene capire lrsquointerprete non lasciail titolo di un paragrafo in fondo ad una facciata per cominciare il testo delparagrafo nella facciata successiva (molti word processor di tipo WYSIWYG lofanno) lrsquointerprete cerca anche di evitare le righe orfane e le righe vedove Unariga orfana egrave una riga isolata in fondo alla pagina quando il capoverso proseguenella pagina successiva (ldquole righe orfane non hanno un passato ma hanno unfuturordquo egrave la frase per ricordare di che cosa si tratta) una riga vedova egrave unariga isolata allrsquoinizio di una pagina il cui capoverso egrave cominciato nella paginaprecedente (ldquole righe vedove hanno un passato ma non hanno un futurordquo)

Questo significa che un paragrafo con il suo titolo corrente puograve cominciare a4 o 5 righe equivalenti di testo corrente dal fondo di una pagina percheacute devecontenere il suo titolo corrente il suo contrografismo e almeno due righe di testoaltrimenti la sua sola prima riga resterebbe orfana Analogamente la fine diun capoverso non puograve avvenire mandando a capo in una nuova pagina la sua

194 I CAPOVERSI 359

ultima riga percheacute questa resterebbe vedova Quando crsquoegrave della matematica indisplay si possono avere altre possibilitagrave di righe orfane o vedove prima o dopo laformula Quando dunque si devono evitare le righe orfane o vedove si hanno duepossibilitagrave o si compone senza giustificare il piede delle pagine affacciate oppuresi giustificano questi piedi ma si introduce dello spazio in piugrave nei contrografismio fra un capoverso e lrsquoaltro in sostanza si disturba la griglia delle righe

Una soluzione sarebbe quella di accorciare di una riga due pagine affac-ciate (uno spread) in modo che la riga vedova che apparirebbe nella paginadi destra senza lrsquoaccorciamento suddetto verrebbe preceduta dallrsquoultima rigadalla pagina di sinistra riportata a destra grazie allrsquoaccorciamento nello stessotempo scorciando anche la pagina di destra le due griglie dello spread restanoallineate Se invece la riga vedova gira nella pagina di destra la prima riga diuno spread accorciando di una riga le due pagine dello spread precedente lavedova non resta piugrave tale percheacute verrebbe preceduta da due righe provenientidallo spread precedente Queste correzioni come egrave facile immaginare vanno fatteallrsquoultimo percheacute qualunque modifica del testo potrebbe distruggere tutta lapaziente operazione appena descritta

Certo in fase di rifinitura finale si puograve intervenire inserendo in punti strategiciopportuni comandi di newpage che eliminano la giustificazione al piede dellepagine oppure comandi enlargethispage con o senza asterisco che ugualmentepossono eliminare la giustificazione al piede delle pagine affacciate Questo fattonon ha nulla a che vedere con il disegno grafico ma bisogna sempre ricordarseneper capire percheacute un disegno accuratamente pensato possa deludere le aspettative

Unrsquoaltra tecnica poco conosciuta per gestire la lunghezza dei capoversi perallungarli o per accorciarli senza modificarne il testo consiste nello specificareil comando primitivo looseness alla fine del capoverso insieme ad un valoreintero positivo o negativo per esempio looseness1 serve per consentire lrsquoallun-gamento del capoverso di una riga Questa tecnica egrave efficace (a) se il capoversoegrave sufficientemente lungo (b) se il capoverso egrave da allungare e il suo ultimo rigo egravesufficientemente lungo (c) se il capoverso egrave da accorciare e il suo ultimo rigoegrave sufficientemente corto Se queste condizioni non sono verificate il comandolooseness lascia le cose come stanno e quindi non risulta efficace ma nondisturba la composizione In questo testo lrsquoartificio indicato egrave stato usato undecina di volte

194 I capoversiUna delle caratteristiche che piugrave distinguono le varie composizioni tipograficheriguarda lo stile di composizione dei capoversi

In generale sarebbe preferibile che ogni capoverso non fosse separato dalcapoverso precedente da una interlinea Con LATEX generalmente questa sepa-razione dei capoversi con una interlinea egrave attuata solamente allrsquointerno delleliste semplici o delle enumerazioni o delle descrizioni In questi casi visto che iltesto ha giagrave un margine sinistro rientrato il tipico rientro del capoverso sarebbeprobabilmente eccessivo

Invece i capoversi del testo lsquonormalersquo non sono separati da una interlineama hanno la prima riga rientrata Questo rientro serve per marcare lrsquoinizio diun capoverso ed egrave particolarmente utile quando il capoverso precedente ha ilsuo ultimo rigo che termina praticamente a filo del margine destro Si capisce

360 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

subito allora che il primo capoverso di un paragrafo non ha bisogno di nessunrientro percheacute non egrave direttamente preceduto da nessun altro capoverso ma solodal titolo del paragrafo

Nella tradizione compositiva francese invece anche il primo capoverso diun paragrafo egrave rientrato NellrsquoOttocento e fino alla prima metagrave del Novecentoanche la tipografia italiana seguiva la tradizione francese non solo per quel cheriguarda il rientro del primo capoverso ma anche per le spaziature davanti aisegni di interpunzione alti e anche fra i caporali e il testo fra loro contenuto Sesi desidera seguire la tradizione francese di rientrare anche il primo capoverso diun paragrafo basta caricare il pacchetto indentfirst

Il rientro del capoverso dovrebbe essere costante indipendentemente dalcorpo usato per esempio 10 pt Se si specifica il rientro mediante una unitagravedi misura dipendente dal font in uso per esempio 1 em questo coincide con10 pt con il corpo 10 ma aumenta o diminuisce con il corpo del font con cuiil capoverso viene composto questo potrebbe essere un inconveniente esteticopercheacute se si usano spesso incisi composti in corpo minore i rientri dei capoversinon appaiono piugrave incolonnati Si consiglia quindi nellrsquousare i pacchetti checonsentono di modificare il layout della pagina di definire il rientro medianteuna misura assoluta per esempio lo stesso ammontare dellrsquoavanzamento di rigaper il testo normale da 12 pt a 15 pt

Non sempre il primo capoverso egrave preceduto dal titolo del paragrafoDipende dal contesto ma in diversi tipi di documenti a stampa o in certe

loro sezioni come per esempio una introduzione non si divide il testo in paragrafibencheacute vengano trattati diversi argomenti fra di loro non tanto correlati tanto dadover essere sezionati con i rispettivi titoli Spesso si ricorre a delle decorazioni

Nei libri moderni le decorazioni sono spesso assenti altrettanto spesso siriducono a una breve sequenza di simboli per esempio un asterisco centratocome alla fine del paragrafo precedente (prima del capoverso precedente) evengono usati per separare verticalmente parti di testo che non richiedono unsezionamento vero e proprio ma nello stesso tempo non sono propriamentecontigue da un punto di vista testuale

Esistono font che contengono sequenze di motivi floreali o motivi geometricicon i quali si possono realizzare decorazioni piugrave eleganti ma che spesso stonanonei libri moderni

Se invece si deve riprodurre un libro antico o anche solo vecchiotto si puogravericorrere a questi font e si possono cercare su ctan i pacchetti per gestire questedecorazioni nel modo piugrave efficace tra gli altri si segnala il pacchetto fourier

Al contrario anche in alcuni libri moderni si usano i capilettera queste sonolettere di corpo decisamente maggiore di quello del testo circostante e vengonousate rialzate o ribassate per marcare lrsquoinizio di un capoverso o meglio ancorail capoverso iniziale di un capitolo eo di un paragrafo anticamente si usavanoanche capilettera decisamente ornati e di corpo diverse volte maggiore del corponormale per esempio in corpo 70 pt quando si compone in corpo 10 pt

Per usare i capilettera (versal in inglese e lettrine in francese) si puograve age-volmente usare il pacchetto lettrine con il quale sono disponibili comandi eopzioni di diverso genere per collocare i capilettera nella posizione desideratascegliendone il font le dimensioni e gli altri parametri stilistici Vale la pena dileggerne la documentazione in doclatexlettrinelettrinepdf ma egrave

195 TESTATINE E PIEDINI 361

molto interessante esaminare gli esempi riportati in doclatexlettrinedemopdf

Egrave importante considerare anche lrsquoeffetto che si ottiene quando si cominciaun capoverso con un capolettera e si prosegue con il maiuscoletto per qualcheparola per poi tornare al font normale questo egrave un espediente che viene usatospesso quando si usano i capilettera per mitigare la transizione fra le grandidimensioni della lettera iniziale e il corpo normale egrave esattamente quello che si egravefatto allrsquoinizio di questo paragrafo

195 Testatine e piediniDelle testatine e dei piedini si egrave giagrave commentato abbastanza sul fatto cheintervengano o non intervengano nella definizione della gabbia si egrave anche dettodel pacchetto fancyhdr per mettere nella forma dovuta testatine e piedini

Non si ritorna su questi argomenti ma ci si sofferma sulla sostanziale differenzache per il sistema TEX esiste fra una testatina e un piedino non si trattasemplicemente di due blocchetti di testo generalmente composti di una sola rigaciascuno messi uno in testa e uno al piede del testo adeguatamente spaziati daquesto e talvolta adeguatamente separati da semplici decorazioni in generaleformate da un sottile filetto orizzontale

Il punto egrave che lo spazio di separazione fra la testatina (eventualmente com-prensiva del suo filetto) e il testo sottostante egrave costituito da spazio vero e propriodi una dimensione ben specificata dal grafico editoriale Invece lo spazio specifi-cato per distanziare il piedino dal piede del testo rappresenta lrsquoavanzamento diriga fra la linea di base dellrsquoultima linea del testo (o dal fondo del rettangoloideale che lo contiene) e la linea di base della prima o unica riga del piedino

In buona sostanza se si specifica che la distanza headsep fra lrsquoheader(testatina) e il testo egrave di 10mm una volta composta una pagina con quellatestatina si prende il doppio decimetro si misura e si rilevano esattamente 10mm

Se si specifica che la spaziatura del piedino footskip sia di 10mm eattenzione non crsquoegrave nulla da specificare per lrsquoaltezza del piedino dopo averstampato una pagina piena con quel piedino si misurano i 10mm fra le linee dibase dellrsquoultima riga del testo e della prima o unica riga del piedino si trovanoquei 10mm ma considerando i discendenti dellrsquoultima riga e il fatto che la primao unica riga del piedino giace sopra la sua linea di base la distanza effettiva frail piedino e il testo risulta decisamente minore di 10mm e questa differenza egraveotticamente ben percepibile Drsquoaltra parte si egrave giagrave mostrato lo schema quotatodelle due pagine affacciate sinistra e destra nella pagina 282 e nella successivasi vede chiarissimamente che la freccia che inidica la misura di footskip vadalla base del testo alla base del piedino mentre la freccia che indica la misuradi headsep va dalla base della testatina al colmo del testo

Di questo fatto bisogna tenere ben conto nel progettare la geometria dellapagina certamente i pacchetti impiegati per determinare i parametri geometriciaiutano ma non si puograve fare a meno di eseguire alcune prove di stampa per valutaregli effetti questi ultimi saranno tanto piugrave vistosi quanto piugrave lsquoingombrantersquo egrave ilpiedino un semplice numero di pagina centrato nel piedino ma un porsquo troppovicino al testo sovrastante disturba la vista ma lo si puograve sopportare se invecelo stesso piedino contiene a sinistra il nome dellrsquoautore al centro il numerodella pagina e a destra il nome della collana di pubblicazioni a cui appartiene

362 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

il rapporto corrente allora un simile piedino troppo vicino al testo disturbadavvero e non lo si puograve accettare

Per avere lo schema metrico delle due pagine affacciate lo si riporta di nuovonella pagina 364 e nella successiva in modo da avere a disposizione piugrave facilmentele varie misure della pagina descritte in questo capitolo Ci si ricordi per altroche le quote indicate sono relative alla classe book con un formato della paginaA4 ma senza avere modificato le dimensioni predefinite Su fogli della serie ISOla disposizione del testo non egrave perfetta ma egrave accettabile specialmente se si fa unlargo uso di note a margine Si capisce quindi percheacute la maggior parte degli utentiricorre ai pacchetti di personalizzazione specialmente geometry e typearea perdisporre di una maggiore flessibilitagrave nel disegno della pagina6 Questo egrave benema non bisogna esagerare quei pacchetti eseguono al posto nostro i vari calcolinecessari e seguono le nostre indicazioni stilistiche come meglio possono ma staal compositore valutare il risultato da un punto di vista estetico

196 I pacchetti di personalizzazione

1961 Il pacchetto geometry

Il pacchetto geometry egrave un pacchetto che contiene tutte le necessarie opzioni emacro per descrivere il layout geometrico di una pagina lsquonormalersquo tenendo ancheconto dellrsquoingombro ottico delle testatine e dei piedini permette di specificare imargini di scegliere un layout classico di scegliere le proporzioni adeguate allostile desiderato e al font usato Esegue insomma tutte le operazioni descrittenei paragrafi precedenti

Date le molteplici applicazioni la sua documentazione egrave piuttosto importantela si trova in doclatexgeometrymanualpdf

Una delle cose piugrave utili del pacchetto egrave la sua capacitagrave di determinare leinformazioni geometriche mancanti a partire da un certo numero di parametri didefault Per esempio esso usa un rapporto predefinito (che ovviamente puograve esseremodificato dal compositore) fra il margine interno (o superiore) e il margineesterno (o inferiore) delle pagine se il documento egrave stampato solo in bianca ilrapporto di default viene usato solo per i margini superiore e inferiore mentreper quello interno ed esterno viene usato il rapporto 1 1 vale a dire che la gabbiaviene centrata orizzontalmente fra margini uguali Se invece il documento vienestampato in bianca e volta il rapporto predefinito o specificato dal compositoreviene usato per tutti i margini Conoscendo le dimensioni della pagina rifinita ilpacchetto egrave in grado di calcolare la gabbia e i margini a partire da una sola diqueste informazioni

Per esempio il manuale presenta questo caso supponiamo di avere una paginafinita in formato A4 quindi di 210mm per 297mm e di specificare il margineesterno di 24mm il rapporto predefinito vale 2 3 (come nella figura 194(b)) e ilriempimento della pagina vale 07 (un porsquo maggiore rispetto al valore di 35 che

6La classe memoir contiene i suoi propri comandi per la creazione della geometria dellapagina essi sono molto flessibili e potenti memoir mette anche a disposizione dei comandi perpresentare graficamente la disposizione dei blocchi di testo i titoli e altre cose del genere inmodo da aiutare il compositore a scegliere meglio i parametri geometrici delle varie pagine

196 I PACCHETTI DI PERSONALIZZAZIONE 363

appare nella figura 194(b) ) Allora

margine interno = (23)times 24 mm = 16 mmgiustezza orizzontale = 210 mmminus 24 mmminus 16 mm = 170 mm

giustezza verticale = 07times 297 mm = 2079 mm

margine superiore = 22 + 3 times (297 mmminus 2079 mm) = 3564 mm

margine inferiore = (32)times 3564 mm = 5346 mm

Allo stesso modo si sarebbe potuta specificare qualunque altra singola dimen-sione (oltre alle dimensioni della pagina finita) e si sarebbero potute calcolare lemisure mancanti geometry si incarica poi di tradurre i valori di giustezze e dimargini in termini di lunghezze usate dallrsquointerprete per eseguire la composizionetipografica

Non si insiste oltre percheacute la funzionalitagrave del pacchetto egrave talmente vastache continuando con gli esempi si finirebbe con riscrivere il manuale Ciograve nonimpedisce di ribadire che il pacchetto geometry egrave uno dei pacchetti preferiti daogni compositore che voglia personalizzare un pochino i suoi documenti senzaconformarsi agli stili predefiniti dalle classi standard della distribuzione delsistema TEX Come egrave giagrave stato notato le funzionalitagrave di geometry sono tutteincorporate nella classe memoir che le estende ulteriormente se si usa questaclasse non egrave necessario caricare il pacchetto geometry a meno che non se nevogliano sfruttare i comandi invece di affidarsi ai comandi di memoir che hannonomi diversi Chi scrive ha usato sia lrsquouna che lrsquoaltra strada e la sua opinioneegrave che se si usa memoir egrave meglio non caricare neacute geometry neacute typearea (vedisotto) e usare solo i comandi e le altre funzionalitagrave della classe

Anche la collezione KOMA-script dispone di un insieme di comandi perspecificare la geometria della pagina anzi questi comandi sono contenuti nelpacchetto typearea che puograve essere caricato separatamente anche quando si usinoclassi non appartenenti alla collezione KOMA-script Vale la pena di documentarsinella guida scrguienpdf (in inglese) in doclatexkoma-script pervedere che cosa offra il pacchetto typearea il quale di default usa il metododelle strisce per la specificazione della geometria della pagina naturalmente sonodisponibili comandi accessori per eseguire delle variazioni sul layout basato sullestrisce in ogni caso il procedimento di calcolo egrave molto flessibile

1962 I titoli e i titolini i pacchetti titlesec fancyhdrsectsty e tocloft

Per definire lo stile compositivo dei titoli correnti (titolini) ci sono diversipacchetti sempre senza trascurare la classe memoir che include in seacute la maggiorparte della funzionalitagrave dei vari pacchetti sparsi in rete

Uno di quelli maggiormente citati egrave titlesec il cui manuale a sua voltasi premura di avvisare i possibili utenti che se desiderano usare strumentipiugrave semplici possono usare i pacchetti fancyhdr sectsty e tocloft Sono tuttipacchetti validissimi in effetti ma ognuno egrave destinato a modificare lo stile solo

Testatina

Corpo

Piedino

NoteMarginali

8

7

1

3

10

9

11

24

5

6

1 un pollice + hoffset 2 un pollice + voffset3 evensidemargin = 79pt 4 topmargin = 23pt5 headheight = 12pt 6 headsep = 18pt7 textheight = 598pt 8 textwidth = 345pt9 marginparsep = 7pt 10 marginparwidth = 115pt

11 footskip = 25pt marginparpush = 5pt (non mostrato)hoffset = 0pt voffset = 0ptpaperwidth = 597pt paperheight = 845pt

Testatina

Corpo

Piedino

NoteMarginali

8

7

1

3

10

9

11

24

5

6

1 un pollice + hoffset 2 un pollice + voffset3 oddsidemargin = 28pt 4 topmargin = 23pt5 headheight = 12pt 6 headsep = 18pt7 textheight = 598pt 8 textwidth = 345pt9 marginparsep = 7pt 10 marginparwidth = 115pt

11 footskip = 25pt marginparpush = 5pt (non mostrato)hoffset = 0pt voffset = 0ptpaperwidth = 597pt paperheight = 845pt

366 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

delle testatine oppure dei titoli correnti oppure degli indici7 Invece titlesecdovrebbe poter agire su tutti i fronti con una interfaccia unificata

Per quel che riguarda lrsquoaspetto da dare ai titolini il pacchetto puograve semplice-mente essere invocato con alcune opzioni queste controllano la famiglia la seriee la forma dei font si puograve stabilire il corpo usato nei titolini come anche la suacomposizione giustificata centrata o in bandiera Si puograve facilmente sceglierecome comporre lrsquoetichetta identificativa della sezione sia per quel che contienesia per il font con cui egrave scritta

Se si vogliono fare personalizzazioni piugrave estese il pacchetto offre una mol-titudine di comandi per specificare ogni possibile dettaglio relativo a titoli etitolini Naturalmente queste cose sono applicabili non solo a titoli correnti diogni sezione ma anche alle testatine e ai piedini

Caricando il pacchetto color si possono usare anche i colori per tutte questelsquoiscrizionirsquo particolari Naturalmente sta al buon gusto del compositore o delgrafico editoriale decidere se usare i colori e sceglierli in modo adeguato anche altipo di documento che viene composto Negli anni rsquo90 era abbastanza frequentelrsquouso di un colore celeste sia per i titolini sia per le formule sia per le figure eraun tentativo per evitare le fotocopie visto che le fotocopiatrici di quellrsquoepocaavevano difficoltagrave a copiare alcuni colori fra i quali il celeste Oggi il celeste puograveancora essere usato (magari non cosigrave chiaro come allora) ma certamente non perevitare le fotocopie percheacute oggi le fotocopiatrici copiano perfettamente qualsiasicolore

I comandi estesi per affrontare personalizzazioni importanti nello stile dellapagina servono anche per definire nuovi stili o per modificare quelli giagrave definiti Inparticolare egrave possibile definire variazioni di stile rispetto alla pagine normali perle pagine che contengono solo oggetti flottanti nelle quali si possono usare altreiscrizioni nelle testatine eo nei piedini e si possono eventualmente eliminarei filetti normalmente presenti affincheacute non possano essere confusi con oggettiappartenenti agli oggetti flottanti

Si possono gestire anche i lsquomarkrsquo TEX e LATEX lavorano con tre specialimarcatori per definire che cosa deve essere scritto nelle testatine eo nei piediniSono il topmark botmark e firstmark essi sono caricati con il 〈titolo breve〉dei comandi chapter section (ed eventualmente subsection con la classearticle) e consentono di avere sulla pagina corrente o sulle pagine di destralrsquoinformazione del titolo del paragrafo (o del sottoparagrafo) corrente per lapagina nella quale compare lrsquoindicazione se nel corso della pagina correnteviene iniziato un nuovo paragrafo a seconda del tipo di documento puograve essereimportante mostrare nella testatina per esempio il titolo del paragrafo che erain vigore allrsquoinizio della pagina oppure quello in vigore alla fine della paginatutte queste informazioni vengono gestite diversamente da TEX e da LATEXma in entrambi i casi esse sono limitate a quei tre marchi LATEX li gestisceattraverso entitagrave che si chiamano leftmark e rightmark che vengono lsquocaricatirsquomediante lrsquouso implicito di markboth e markright attraverso i comandi disezionamento il processo egrave abbastanza schermato allrsquoutente normale che cosigravenon deve preoccuparsi di queste cose piuttosto delicate Con il pacchetto titlesecsi hanno molte piugrave possibilitagrave percheacute si dispone di piugrave mark e di piugrave flessibilitagravenei campi delle testatine e dei piedini

7Egrave opportuno aggiungere anche il pacchetto caption che consente di personalizzare ledidascalie degli oggetti flottanti

196 I PACCHETTI DI PERSONALIZZAZIONE 367

Il pacchetto consente anche di comporre indici parziali per esempio allrsquoiniziodi ogni capitolo si potrebbero stampare lrsquoindice interno del capitolo e anchegli elenchi delle tabelle eo delle figure contenute nel capitolo naturalmentequesti indici parziali possono essere composti con uno stile diverso dallrsquoindicegenerale tuttavia anche in questo caso lrsquouso di questi indici parziali deveessere adeguatamente pensato in funzione del particolare documento che vienecomposto Non vale il principio lsquoitalicorsquo che ldquosiccome lo si puograve fare allora lo sideve farerdquo

Vale quanto viene detto nel paragrafo 8 della documentazione

Avendo letto questa documentazione dovrebbe essere chiaro chequesto non egrave un pacchetto per lrsquoutente occasionale a cui piace illayout standard e vuole fare qualche piccola modifica Questo egraveinvece uno strumento per il tipografo professionale che ha una ideaprecisa del layout che vuole realizzare ma non ha le conoscenze[informatiche] per farlo Non si egrave fatto nessuno sforzo per migliorareil vostro gusto nella composizione dei titoli8

1963 TestatineLa descrizione dello stile delle pagine fatta nel paragrafo precedente egrave piuttostosommaria ed egrave meglio approfondire per poter rendersi conto esattamente comesono composte le testatine negli stili delle pagine headings o myheadings o inqualunque altro stile che il compositore si voglia definire

I comandi per definire il contenuto delle testatine di sinistra e di destra sonocontenuti nelle macro evenhead e oddhead comandi interni protetti con ilsegno Se il documento egrave composto solo in bianca viene usata solo la testatinacomposta con lo stile delle pagine dispari se il documento egrave composto in bianca evolta vengono usate entrambe le macro in particolare oddhead per le testatinedelle pagine dispari e evenhead per le testatine delle pagine pari

Per la classe book queste due macro contengono (semplificato un porsquo) ilcodice seguente

defoddheadtextslMakeUppercaserightmarkhfillthepagedefevenheadthepagehfilltextslMakeUppercaseleftmark

Come si vede e come si constata guardando la pagina corrente le testatinehanno i titoli correnti composti con un font nella forma inclinata e completamentein lettere maiuscole grazie ai comandi MakeUppercase il numero della paginaviene composto allrsquoestremitagrave esterna delle testatine in carattere normale Mache cosa viene scritto nelle testatine Per la classe book che compone di defaultin bianca e volta Nella testatina di sinistra pagina pari viene inserito il titolodel capitolo mentre nella testatina di destra pagina dispari viene inseritoil titolo del paragrafo Queste due informazioni sono contenute nelle macrorightmark e leftmark A loro volta questi marchi sono inseriti quando siusano esplicitamente o implicitamente il comandi markboth o markright Lagrande macro che definisce lo stile dalla pagina per esempio headings non

8Once you have read the documentation it should be clear that this is not a package forthe casual user who likes the standard layout and wants to make simple changes This is atool for the serious typographer that has a clear idea of what layout wants and doesnrsquot havethe skill to get it No attempt is made to improve your taste in section formatting

368 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

definisce solo il contenuto delle testatine stesse ma anche che cosa i comandichapter e section caricano attraverso i comandi markboth e markrightrispettivamente tenendo conto del fatto che capitoli e paragrafi siano numerati ecompaiano nel corpo del testo (mainmatter) invece che nelle parti preliminari(frontmatter) o nelle parti finali (backmatter) Quando si usa un comandochapter nel corpo del testo il suo titolo (breve) viene implicitamente usato nelcomando markboth a sua volta chiamato dal comando chaptermark che a suavolta viene chiamato da chapter Quando si usa lo stile di pagina myheadings icomandi markboth e markright vengono usati esplicitamente dal compositoreEgrave inoltre possibile definire altri stili di pagina attraverso i pacchetti citati primaoppure attraverso i comandi giagrave presenti dentro alcuni file di classe come memoir infine possono venire usati i comandi primitivi simili a quelli che vengono usatinel nucleo di LATEX per definire gli sili headings e myheadings a cui ci si puograveriferire per prendere spunto

Bisogna capire bene come agiscono questi comandi di marcatura Egrave benericordare che LATEX consiste di moltissime macro che durante la loro esecuzionevengono sviluppate fino ai comandi primitivi Nella fattispecie i comandi primitivirelativi ai marchi sono firstmark topmark e botmark Quando la routine diuscita di LATEX compone la pagina completa di testatine piedini inserti flottantieccetera fa riferimento ai marchi contenuti in firstmark e botmark comesuggerisce il loro nome il primo rappresenta il marchio che si incontra allrsquoiniziodella pagina e il secondo egrave quello che si incontra alla fine della pagina Invecetopmark egrave quello che ogni pagina eredita dallrsquoultimo marchio della paginaprecedente ed egrave quello che viene usato se la pagina non contiene un altro primomarchio Se la pagina non contiene nessun nuovo marchio tutti e tre sono ugualia topmark il cui valore viene passato per ereditagrave alla pagina successiva e cosigravevia Dopo il primo marchio che LATEX incontra nel comporre un documentoin tutte le pagine successive che siano presenti o assenti nuovi marchi i treparametri sono sempre definiti

Per rendere le cose un poco piugrave flessibili LATEX usa i due comandi markbothe markright che inseriscono rispettivamente o due o una sola informazione inogni marchio che viene messo nel codice da cui la routine di uscita preleveragrave leinformazioni per le testatine Precisamente il contenuto di ogni marchio egrave fattodi due informazioni raccolte fra parentesi graffe secondo lo schema seguente

〈marchio di sinistra〉〈marchio di destra〉

dove le qualificazioni ldquodi sinistrardquo o ldquodi destrardquo si riferiscono al contenuto delgruppo di sinistra piuttosto che a quello di destra ma non si riferiscono egraveimportante sottolinearlo neacute alla pagina di sinistra neacute alla pagina di destra Disolito dunque il titolo di un capitolo forma il 〈marchio di sinistra〉 e il titolodel paragrafo forma il 〈marchio di destra〉

Ecco la spiegazione del meccanismo il comando rightmark preleva dalprimo marchio nella pagina firstmark oppure topmark la componente didestra di quel marchio invece leftmark preleva la componente di sinistradellrsquoultimo marchio presente nella pagina botmark

Questo spiega percheacute se in una pagina non compare lrsquoinizio di nessun para-grafo o un dato paragrafo inizia a metagrave pagina il titolo corrente nella testatinaegrave quello corrispondente al paragrafo che era ancora in vigore quando la pagina egraveiniziata (marchio ereditato dalle pagine precedenti) non allrsquoeventuale paragrafoiniziato a metagrave pagina Se si desiderasse lrsquoindicazione del paragrafo che egrave in

196 I PACCHETTI DI PERSONALIZZAZIONE 369

vigore alla fine della pagina non bisognerebbe prenderlo dal firstmark o daltopmark ma dal botmark

Ecco percheacute se si volesse indicare nella testatina di un dizionario il primo elrsquoultimo lemma che compaiono nella pagina bisognerebbe innanzitutto definire ilcomando per inserire il lemma con per esempio

newcommandlemma[1]1markboth11

e poi inserire il lemma con

lemmalemma

Bisogna definire un nuovo stile di pagina in modo che le testatine di sinistrasia quelle di destra non contengano il numero della pagina il quale va quindimesso nel piedino ma contengano i riferimenti al primo lemma in vigore allrsquoiniziodella pagina e lrsquoultimo lemma inserito nella pagina bisognerebbe cioegrave che letestatine e i piedini siano definiti nello stile della pagina pressappoco9 cosigrave

defoddheadnullhfill rightmark -- leftmarkdefevenheadrightmark -- leftmark hfillnulldefoddfootnullhfillthepagehfillnulldefevenfootnullhfillthepagehfillnull

Si noti che null rappresenta una scatola vuota contro cui spinge lo spazioelastico hfill per cui la sequenza costituita dal primo e dallrsquoultimo lemmacompare allineata con il bordo esterno della testatina mentre i numeri di paginasono centrati nel piedino

Se il dizionario egrave composto su due colonne come succede quasi semprebisogna caricare il pacchetto fixltx2e che sistema meglio il comportamento dellaroutine di uscita in merito ai marchi (e sistema anche altre cose che risultano nontroppo ben definite quando si compone a due colonne) senza questo pacchettole informazioni relative al primo e allrsquoultimo lemma si riferirebbero alla solacolonna di destra di ciascuna pagina

Egrave anche vero che la classe book egrave una classe generica non direttamenteutilizzabile per comporre un dizionario sarebbe meglio usare la classe memoirche incorpora giagrave molte delle estensioni e dei comandi necessari per eseguireogni genere di personalizzazione allo stile di composizione di qualunque partedel documento che si intende comporre

Con la classe memoir la personalizzazione per lo stile delle pagine interne diun dizionario si ridurrebbe alle seguenti righe ognuna autoesplicativa

makepagestyledizionariomakeheadruledizionariotextwidthnormalrulethicknessmakeevenheaddizionariobfseriesrightmarkbfseriesleftmarkmakeoddheaddizionariobfseriesrightmarkbfseriesleftmarkmakeevenfootdizionariothepagemakeoddfootdizionariothepage

Si noti il filetto che separa la testatina dal blocco del testo si noti che testatinee piedini sono fatti di tre parti quella di sinistra quella di centro e quella didestra e a queste parti si riferiscono gli ultimi tre argomenti alcuni lasciativuoti di ciascuna testatina e di ciascun piedino Infine in questo stile il primo

9Il ldquopressappocordquo si riferisce al fatto che sono possibili infinite varianti

370 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

lemma della pagina egrave indicato a sinistra e lrsquoultimo lemma egrave indicato a destraentrambi in neretto Ecco quindi un altro modo di personalizzare lo stile dellepagine di un dizionario

197 La pagina del titoloNon egrave un caso che la pagina del frontespizio non sia componibile con nessuno deipacchetti disponibili su ctan Lrsquoambiente titlepage della classe book offre unospazio per inserire il comando maketitle ma per la veritagrave il risultato egrave moltomodesto come si puograve vedere dalla pagina vii di questo documento Nella primapagina senza usare titlepage si egrave cercato di ottenere un frontespizio accattivanteda stampare sulla copertina (in brossura) di un esemplare stampato su cartaAnche questo risultato non egrave esaltante

Il motivo egrave semplice ed egrave chiaramente espresso da Wilson nel manualedella sua classe memoir il titolofrontespizio va disegnato apposta per ciascundocumento tenendo conto del suo contenuto del tipo di titolo delle immaginievocative che possono esservi associate eccetera Ovviamente quanto verragraveeventualmente stampato sulla prima pagina della copertina egrave una cosa mentre egraveuna cosa completamente diversa quello che verragrave stampato nella pagina del titolo(solitamente la terza delle facciate composte e cucite la prima puograve contenerelrsquoocchiello detto half title in inglese10)

Probabilmente secondo Wilson esistono programmi grafici interattivi piugraveadatti per comporre la prima e la quarta di copertina noncheacute per comporre ilfrontespizio (e lrsquoocchiello) non egrave nemmeno da escludere che queste pagine equelle che devono contenere le informazioni di carattere legale debbano o possanoessere prodotte separatamente dalle segnature che compongono il documento

Tuttavia chi scrive ha trovato piuttosto comodo ridefinire un ambiente title-page in modo che dentro ai delimitatori drsquoambiente il compositore possa scriveretutte le informazioni che ritiene necessarie egli le introduce mediante macrocome titolo autore eccetera non dissimili da quelle che si possono usarecon i nomi inglesi nel preambolo title author date sono solo in numeromolto maggiore che non quelle previste di default da LATEX

Il comando di apertura dellrsquoambiente praticamente non fa nulla salvo verifica-re che si stia lavorando in una nuova pagina il comando di chiusura fa tutto nelsenso che prende ogni informazione definita con i comandi dati dal compositoree ogni altra informazione definita di default per collocarle in una griglia difrontespizio abbastanza elastica ma definita una volta per tutte esso metteanche nel verso del frontespizio (talvolta impropriamente chiamato lsquocolophonrsquo)tutte le informazioni di carattere legale necessarie puograve se il compositore haspecificato il numero corrente dellrsquoopera generare e stampare anche il barcodecalcolando persino la cifra di controllo per il barcode a 13 cifre ovviamente questoegrave stato fatto per una collana di volumi di una data casa editrice dove propriopercheacute si ha a che fare con una collana i frontespizi non possono essere moltodiversi lrsquouno dallrsquoaltro anche gli argomenti trattati nei volumi sono sempre di

10Comunque la pagina dellrsquoocchiello non deve essere confusa con il risguardo iniziale che egravegeneralmente una doppia pagina di carta piugrave pesante incollata fra la seconda di copertina e ilblocco delle segnature il risguardo allrsquoinizio del libro e quello alla fine sono sostanzialmentedue elementi strutturali usati per collegare la copertina con il blocco delle segnature questastruttura egrave particolarmente importante ed egrave sempre presente nei libri incassati

198 LE INSERZIONI FLOTTANTI E NON FLOTTANTI 371

carattere tecnico Tuttavia la casa editrice pur mantenendo lo stesso layout delleparti scritte affida ad un grafico il compito di disegnare la prima e la quarta dicopertina sovrapponendo (talvolta ricomponendo) il testo del frontespizio soprauna immagine di fondo in modo che anche lrsquoimmagine sia di aiuto al lettore percapire (o di farsi unrsquoidea) di che cosa venga trattato allrsquointerno del volume

198 Le inserzioni flottanti e non flottanti

1981 Gli oggetti flottantiIl pacchetto float la cui documentazione si trova in doclatexfloatfloatpdf serve per definire nuovi oggetti flottanti oltre alle tabelle e alla figuree serve anche per dare loro uno stile un formato adeguato al loro contenutosecondo il gusto del grafico editoriale Naturalmente serve anche per modificarele definizioni degli oggetti flottanti giagrave definiti

Per esempio puograve servire per specificare la collocazione della didascalia ab-biamo notato piugrave volte che con la classe standard book (ma in effetti con tuttele classi standard) la didascalia egrave sempre collocata sotto allrsquooggetto flottantementre per le tabelle (obbligatoriamente per quelle lunghe che si sviluppano sudiverse pagine) in Europa egrave uso mettere la didascalia prima della tabella Lastessa cosa potrebbe essere necessaria per altri stili di oggetti flottanti

Questi potrebbero essere dei medaglioni degli algoritmi dei programmi delleraccolte di formule composte in modo particolare eccetera Egrave evidente allora cheogni oggetto flottante deve avere una sua numerazione una sua coda di gestioneeventualmente un suo elenco (come lrsquoelenco delle figure o lrsquoelenco delle tabelle)potrebbe essere riquadrato come un medaglione potrebbe essere delimitato dafiletti potrebbe avere lo sfondo colorato

Il pacchetto in questione serve appunto per fare tutte queste cose ed altreancora Va perograve notato che mentre egrave relativamente facile anzi con questopacchetto egrave facilissimo definire nuovi oggetti flottanti la parte difficile consistenella loro gestione

Uno dei problemi apparso nel forum di guIt riguardava un tipo di medaglioneflottante il cui contenuto potesse svolgersi su piugrave pagine in modo da non inter-rompere per tutte le sue pagine la composizione del testo corrente tipicamenteil medaglione avrebbe dovuto avere uno sfondo colorato e ogni suo monconeavrebbe dovuto essere delimitato da filetti e da adeguate intestazioni in testa ein calce ad ogni moncone nello stesso tempo i vari monconi avendo deciso cheognuno non avrebbe superato la metagrave dellrsquoaltezza della pagina ordinaria avreb-bero dovuto uscire in pagine assolutamente consecutive senza essere disturbatidagli oggetti flottanti di altro genere eventualmente ancora in coda

Oggi esiste una soluzione di Agostino De Marco membro di guIt che sperovoglia pubblicare il suo risultato su ArsTEXnica11 La soluzione molto parzialeche lo scrivente ha trovato egrave basata su comandi di bassissimo livello del linguaggioprimitivo dellrsquointerprete pdftex e sulla programmazione avanzata eseguita me-diante il comando whiledo del pacchetto ifthen tuttavia essa egrave evidentementetroppo complicata per essere riportata qui Si egrave voluto perograve esporre questo caso

11A tuttrsquooggi Agostino De Marco e Massimiliano Dominici hanno pubblicato un articolo suArsTEXnica di ottobre 2008 in merito a questo problema ma non hanno ancora pubblicato ilfile di estensione

372 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

per far capire meglio la problematica relativa agli oggetti flottanti alla lorocomposizione ma soprattutto alla loro gestione

1982 Gli oggetti non flottantiSembra strano che qui si aggiunga un paragrafo sugli oggetti non flottanti matalvolta egrave necessario farne uso sia pure con estrema moderazione

Certe figure fotografie riproduzioni di stemmi o altri simboli del genere spes-so vengono trattati come delle piccole figure non flottanti alle quali se si dovesseapporre una didascalia sarebbe preferibile usarne una senza numero in modo dalsquoessere costrettirsquo a riferirsi ad esse in via indiretta come per esempio lsquola fotografiadella pagina 125rsquo oppure la lsquofotografia qui a latorsquo Questo si rende necessario perevitare che questi oggetti possano essere trattati come delle figure e quindi gestitiin automatico dalla stessa coda che LATEX usa per le figure questa gestione infat-ti non mette mai una figura con un numero drsquoordine superiore prima di unrsquoaltrafigura con un numero drsquoordine inferiore non deve succedere che una piccola fotoinserita e contornata dal testo abbia una didascalia con una numerazione piugravealta di unrsquoaltra fotografia di maggiori dimensioni trattenuta in memoria fino aquando LATEX trova la pagina giusta per aggiungerla ad una pagina in uscitaContemporaneamente la piccola figura non puograve essere trattenuta in memoriada una grande figura che ne ritarda la collocazione rendendone vano lrsquouso

Ecco percheacute sarebbe opportuno evitare gli oggetti non flottanti ma se proprioquesti oggetti devono venire usati allora egrave bene che non siano trattati alla stessastregua degli oggetti flottanti della stessa natura Si veda anche piugrave avanti ladescrizione delle funzionalitagrave di un altro pacchetto wrapfig che consente direndere flottanti gli inserti contornati dal testo

Esiste un piccolo pacchetto picinpar purtroppo privo di una decente docu-mentazione ma fornito di un file di esempi drsquouso con il testo in tedesco doclatexpicinparpincinpardvi nessun problema per chi conosce il tedescoma il suo uso potrebbe essere proibitivo per la maggioranza degli utenti italianiche di fatto non conosce il tedesco Il pacchetto ha qualche annetto e il filesorgente della lsquodocumentazionersquo egrave scritto con il vecchio linguaggio di LATEX209LATEX2ε conserva perograve una forma di compatibilitagrave con il vecchio LATEX cosiccheacutenon egrave particolarmente faticoso leggere il codice sorgente del file di esempi

In sostanza il pacchetto mette a disposizione un ambiente window con lasintassi seguente

beginwindow[〈lista di opzioni〉]〈testo che contorna lrsquoimmagine〉endwindow

Il testo deve essere un capoverso abbastanza lungo da poter contornare lrsquoimmaginee dal quale lrsquoambiente ritaglia via lo spazio rettangolare per inserire lrsquooggettonon flottante Questo puograve essere anche un capolettera oltre che una immaginenel vero senso della parola infatti anche un capolettera egrave un lsquodisegnorsquo attorno alquale gira il testo

Con la stessa sintassi opera lrsquoambiente figwindow solo che una delle opzio-ni della 〈lista di opzioni〉 puograve essere costituito da una figura vera e propriaeventualmente disegnata con lrsquoambiente picture Questo ambiente perograve accettaanche una ultima opzione che contiene (fra parentesi graffe) la didascalia

198 LE INSERZIONI FLOTTANTI E NON FLOTTANTI 373

Anche piccole tabelle possono venire collocate con gli ambienti prodotti daquesto pacchetto in particolare con lrsquoambiente tabwindow sempre con la stessasintassi

La 〈lista di opzioni〉 egrave una lista di qualificatori o di oggetti separati da virgoleesse sono quattro La prima opzione dice dopo quante righe dallrsquoinizio del 〈testoche contorna lrsquoimmagine〉 bisogna cominciare a ritagliare il rettangolo nel qualecollocare lrsquoimmagine o la tabella con la sua eventuale didascalia

La seconda opzione specifica con le solite lettere l (left) r (right) e c (center)se il rettangolo debba essere ritagliato a sinistra a destra oppure nel centroquestrsquoultima egrave una specificazione da non usare percheacute lrsquoeffetto visivo non hanulla a che vedere con lrsquoarte tipografica tuttavia puograve servire per indicare checosa non imitare negli esempi di composizione ottenuti con altri software Peraltro componendo a due colonne non sarebbe troppo strano inserire una piccolafigura al centro ritagliando parte dello spazio per la figura dal margine destrodella colonna di sinistra e mutatis mutandis il resto dello spazio dalla colonnadi destra Non esiste a tuttrsquooggi una estensione simile a picinpar che sia in gradodi realizzare questo artificio LATEX produce una composizione tipografica sobriaquesto genere di artifici non lo egrave Tuttavia se il compositore ha molta pazienzapuograve sfruttare intelligentemente picinpar cominciando a mettere lrsquoinserto a destradella prima colonna facendo credere al pacchetto che lrsquoinserto sia largo la metagrave diquanto non lo sia in realtagrave compone la pagina a due colonne e prende nota conquali righe della colonna di destra lrsquoinserto interferisce infine inserisce un altroinserto a sinistra della colonna di destra in modo che cada in quelle righe malrsquoinserto egrave composto da una scatola vuota alta come linserto vero e larga la metagrave

La terza opzione fra parentesi graffe egrave lrsquooggetto vero e proprio nel caso di uncapolettera potrebbe essere semplicemente lrsquoindicazione del corpo e il segno dellalettera da usare come capolettera nel caso di una immagine o di una tabellasempre fra parentesi graffe vanno messi i comandi per includere o per generarelrsquooggetto Lrsquooggetto potrebbe essere anche una formula matematica come peresempio una matrice relativamente grande

Lrsquoultima opzione sempre fra parentesi graffe egrave la didascalia usando gliambienti figwindow o tabwindow il testo della didascalia egrave preceduto dal suonome e dal suo numero per esempio Figura 1 oppureTabella 2 Con lrsquoambientewindow invece il testo della didascalia non viene preceduto da nessuna etichettaquesto egrave lrsquoambiente preferibile per gli oggetti non flottanti si puograve evitare deltutto la didascalia percheacute basta lasciare vuoto il contenuto di queste ultimeparentesi graffe

Il 〈testo che contorna lrsquoimmagine〉 puograve essere composto con diversi capoversiindicando la fine di ciascuno con la solita riga bianca gli ambienti di questopacchetto trattano i capoversi come se fossero veri e propri capoversi e quindicon le normali caratteristiche stilistiche che i capoversi hanno nel resto del testorientranza spaziatura eccetera Tuttavia questi capoversi sono delle lsquosimulazionirsquopercheacute il linguaggio primitivo dellrsquointerprete contiene speciali comandi comehangindent hangafter parshape per creare le rientranze sagomate perlrsquoinserimento di questi oggetti ma la cui efficacia si svolge nellrsquoarco di un solocapoverso per poter sagomare piugrave di un capoverso bisogna ricorrere a varitrucchi uno dei quali egrave quello di lsquoimbrogliarersquo lrsquointerprete facendogli credere chepiugrave capoversi ne costituiscano uno solo

Ecco in questo paragrafo egrave stato necessario addentrarci un poco nella pro-grammazione anche per dare qualche indicazione ai lettori che non conoscono

374 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

il tedesco Ma al di lagrave dellrsquoaspetto tecnico ci si ricordi sempre di evitare glioggetti non flottanti se proprio si devono usare li si usi con una didascalia nonnumerata In ogni caso non li si usi mai al centro della giustezza Chi scriveha usato degli oggetti non flottanti ritagliati nel margine esterno in un librocommemorativo dove allrsquoinizio di ogni capitolo veniva inserita non flottante inun riquadro ritagliato dal lato destro del testo la fotografia del personaggiocommemorato Il risultato era accettabile per lo scopo di quel volume ma ingenerale si tratta di artifici da evitare

A questo proposito anche se lrsquoambiente window rende lrsquoaspetto tecnico piugravesemplice dopo aver gestito a mano lrsquoinserimento di una figura non flottantese per qualche motivo egrave necessario allungare o accorciare il testo che precedelrsquoinserimento dellrsquooggetto non flottante potrebbe essere necessario rivederea mano la nuova collocazione rinunciando alla comoditagrave dellrsquoottimizzazioneeseguita da LATEX per inserire gli oggetti flottanti Ecco percheacute la foto delpersonaggio commemorato andava bene allrsquoinizio di un capitolo non crsquoera testoprecedente da accorciare o da allungare e lo stile della pagina iniziale del capitoloassicurava almeno una ventina di righe dalle quali ritagliare il riquadro doveinserire la fotografia

Il lettore attento puograve vedere se riesce a usare questo pacchettoe i suoi ambienti per inserire oggetti non flottanti che non sianocompletamente inseriti in un ritaglio del testo ma sporgano nelmargine adiacente un inserimento di questo genere senza didascaliapotrebbe essere piugrave elegante di un analogo inserimento completa-mente collocato nel ritaglio del testo La particolare soluzione usataqui12 prescinde dal pacchetto picinpar e si affida a una macro chericorre ai comandi primitivi dellrsquointerprete

La soluzione adottata attraverso un nuovo ambiente inserto13 quiimpegna due capoversi logici ma imbroglia lrsquointerprete facendoglicredere che si tratti di un unico capoverso questo si ottiene forzan-do lrsquoa capo con il nuovo comando npar che ordina di cominciare

una nuova riga indentandola esattamente della rientranza specificata mediantehspaceparindent ma senza assolutamente lasciare righe bianche

La rientranza per il numero corretto di righe si ottiene mediante le specifichehangindent e hangafter calcolandone i parametri in base alle dimensionidellrsquoinserto il codice usato per inserire lrsquoinserto egrave il seguente

begininsertoincludegraphicsasterix-romancioIl lettore attento puograve vedere se riesce a usare questo pacchettomacro che ricorre ai comandi primitivi dellrsquointerpretenparLa soluzione adottata attraverso un nuovo ambiente ambinsertoil codice usato per inserire lrsquoinserto egrave il seguente

12Lrsquoimmagine contiene il frontespizio di un album di Asterix pubblicato dallrsquoeditore Dar-gaud come tutti gli altri album della collana tradotto in reto-romancio e pubblicato perinteressamento della comunitagrave romancia del Canton Grigioni in Svizzera

13La definizione i questo ambiente compare nel file MacroGuidasty con lrsquoausilio del quale egravestata composto questo testo si tratta di una definizione un porsquo elaborata percheacute ricorre aduna soluzione asincrona per essere sicuri di collocare lrsquoinserto nel margine esterno tramite unanota marginale usata in modo insolito Richiede di comporre il testo due volte

199 CONCLUSIONI 375

endinserto

Come si vede la cosa non egrave particolarmente difficile da realizzare anche consemplici comandi di base ma egrave comunque consigliabile usare gli ambienti delpacchetto picinpar che sono piugrave versatili anche se direttamente non riescono arealizzare quanto fatto in questo esempio

Un altro pacchetto interessante per inserire oggetti non flottanti attorno aiquali fluisca il testo egrave wrapfig questo pacchetto definisce due ambienti wrapfiguree wraptable simili nelle prestazioni ai normali ambienti flottanti figure e tablema che richiedono due argomenti facoltativi e due obbligatori il primo dei qualidice con una opportuna lettera di posizionamento se lrsquooggetto deve flottare orestare fisso in entrambi i casi lrsquooggetto puograve essere collocato nel lato destroo sinistro del testo oppure componendo in bianca e volta dal lato esterno odal lato interno del testo La documentazione egrave un poco nascosta si trova nellostesso file wrapfigsty dopo la riga che contiene endinput il file in questionesi trova in texlatexwrapfig Invece nel ramo della documentazionedoclatexwrapfig si trova un piccolo file testuale che spiega a qualiartifici bisogna ricorrere quando si compone a due colonne

Il vantaggio di wrapfig rispetto a picinpar egrave che riesce a far flottare anche gliinserti contornati dal testo e riesce anche a farli sporgere nello spazio fuori dellospecchio di stampa destinato alle note marginali o a farli sporgere di quanto ilcompositore desideri Lo svantaggio egrave che non si possono inserire didascalie senzaetichetta per cui la numerazione della didascalia potrebbe in certi casi esseresuperiore a quella di un corrispondente oggetto flottante che egrave rimasto nella codadelle figure o delle tabelle flottanti lsquonormalirsquo La documentazione bencheacute un porsquonascosta egrave chiara e scritta in inglese probabilmente piugrave conosciuto del tedesco

199 ConclusioniIn questo capitolo sono stati illustrati diversi pacchetti per ottenere lsquoeffettispecialirsquo nella composizione tipografica con LATEX Sta al compositore deciderese e come usare questi strumenti percheacute come egrave stato detto allrsquoinizio lrsquoartetipografica si basa su sottigliezze non su vistosi effetti speciali

Si egrave raccontato in breve come si produce un libro e come lo si disegnaovviamente queste poche pagine non possono essere considerate nemmeno unabreve introduzione alla tipografia quindi non si raccomanderagrave mai abbastanza didocumentarsi non solo negli aspetti programmatori di LATEX ma specialmentesulla tipografia stessa senza lasciarsi catturare dalle mode del momento maesercitando il proprio giudizio estetico adeguatamente educato

Lo scopo egrave quello di sviluppare una propria competenza nello scegliere lesoluzioni compositive lsquonon acrobatichersquo ma che siano effettivamente capaci ditrasmettere il messaggio al lettore nel modo piugrave chiaro possibile e senza sottoporloa stress inutili causati da errori stilistici nella composizione

Capitolo 20

Ortografia tipografica

Che cosa si intende per ortografia tipografica Tutti conoscono il significato dellaparola ortografia la scrittura corretta Ma questo significato di solito viene intesoin senso limitativo come la scrittura corretta delle singole parole

Quando si scrive con un potente word processor o con un programma dicomposizione come LATEX le regole da osservare sono molto piugrave numerose percheacutemolto piugrave numerosi sono i modi di scrivere sia per lrsquoabbondanza dei segnia disposizione sia per le famiglie serie forme corpi dei caratteri sia perla posizione dei segni sia per la disposizione del testo sulle pagine sia perlrsquointerpunzione insomma la tipografia egrave unrsquoaltra cosa

Egrave ovvio che lrsquoortografia tipografica quindi comprende anche lrsquoortografiatestuale ma la scrittura tipografica corretta richiede di rispettare anche altreregole

Se ne egrave accennato anche in altri capitoli alcuni degli argomenti verrannoquindi ripresi e sviluppati con maggiore respiro cercando di spiegare il percheacutedi certe regole anche per imparare a deviare coscientemente da quelle esposte oper dirimere la questione delle ambiguitagrave ldquoin questo caso si puograve fare cosigrave oppurecosigraverdquo va bene ma allora che cosa egrave meglio fare Conoscendo i percheacute si puogravetrovare la risposta a ragion veduta

201 Ortografia testualeNon crsquoegrave bisogno di raccomandare la scrittura corretta di ogni parola del testoegrave del tutto ovvio Ma la pratica insegna che durante lrsquointroduzione del testo sicompiono numerosi errori di battitura anche se il ldquotastieristardquo conosce benissimolrsquoortografia Si suole dare il nome di refusi a questo tipo di errori percheacute aitempi della composizione con i caratteri metallici spesso era necessario fonderedi nuovo i caratteri di una o piugrave righe al fine di eseguire la correzione

Oggi ogni programma di elaborazione di testo permette di fare la verificaortografica spesso la verifica puograve essere fatta solo su testo evidenziato in mododa poter usare regole ortografiche diverse per lingue diverse Tuttavia egrave ben notoche questi correttori ortografici permettono di eliminare un gran numero di refusima non permettono di eliminare quei refusi che generano altre parole validei famosi fischi e fiaschi corpo e copro viene e vine anche insolite1 lrsquoelenco

1La parola vine egrave il plurale di vina nome di uno strumento musicale indiano

377

378 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

potrebbe andare avanti a piacere Ne consegue che la rilettura del testo va fattada una persona possibilmente diversa dal ldquotastieristardquo magari un correttore dibozze professionista in ogni caso la rilettura non va fatta subito ma bisognalasciar trascorrere alcuni giorni e anche il ldquotastieristardquo puograve rendersi conto di altrirefusi sfuggiti ai precedenti controlli

2011 Ortografie alternativePer altro crsquoegrave un numero di parole che ammettono diverse ortografie per esempioobbiettivo e obiettivo uguale e eguale in questi casi egrave necessario verificare su unbuon dizionario della lingua italiana se per caso non esistano delle preferenzeper lrsquouna o lrsquoaltra scrittura se non esistano degli ambiti testuali nei quali siapreferita una scrittura e altri ambiti nei quali sia preferita lrsquoaltra

Ortograficamente in italiano sono soggetti ad oscillazioni i plurali maschilidelle parole che terminano in -co in -go e in -io e delle parole femminili cheterminano in -cia e -gia Esistono delle regole sia per i nomi maschili sia perquelli femminili ma queste regole presentano numerose eccezioni quindi in casodi dubbio egrave meglio riferirsi a un buon dizionario

Per i maschili in -co e -go vale la regola di default che le parole pianemantengono il suono gutturale (e quindi viene inserita una lsquohrsquo) mentre le parolesdrucciole perdono la pronuncia gutturale e quindi non prendono nessuna lsquohlsquochirurgo produce chirurghi fico produce fichi ma amico produce amici Invecepsicologo produce psicologi elettrico produce elettrici eccetera

Per i maschili terminanti in -io con la lsquoirsquo tonica (quindi io non forma undittongo) non ci sono problemi e la lsquoorsquo muta in lsquoirsquo e si hanno quindi due lsquoirsquoconsecutive come terminazione zio produce zii formicolio produce formicolii

Ma per i maschili terminanti con il dittongo ascendente -io una volta iplurali venivano eseguiti con due lsquoirsquo (studii) oppure con una lsquoirsquo segnata daun circonflesso (studicirc ) oppure con la desinenza j (studj) e persino -ij (studij)oggi si preferisce generalmente scrivere il plurale con una sola lsquoirsquo assumendoche la lsquovocalersquo terminale lsquoirsquo assorba la lsquosemivocalersquo precedente lsquoirsquo Tuttavia simantengono le due lsquoirsquo anche modernamente quando certi plurali si potrebberoconfondere assassinio produce assassinii percheacute questa parola non sia confusacon il plurale di assassino nonostante lo spostamento dellrsquoaccento anche desiderioproduce desiderii per non confondere con la seconda persona del presente delverbo lsquodesiderarersquo desideri se si usasse sistematicamente lrsquoaccento sulle parolesdrucciole non ci sarebbe nessun motivo per derogare dalla regola lsquonormalersquo Dinuovo nel dubbio egrave meglio consultare un buon dizionario

Per i femminili in -cia e -gia purcheacute la lsquoirsquo non sia tonica i plurali oggi sicompongono quasi senza eccezioni conservando la lsquoirsquo semiconsonantica se lasillaba finale egrave preceduta da una sillaba aperta mentre al contrario la perdonose essa egrave preceduta da una sillaba chiusa2 camicia produce camicie ma bilanciaproduce bilance valigia produce valigie ma cengia produce cenge A questa regoladella sillaba precedente aperta o chiusa sembrano3 sfuggire le parole terminanti

2Una sillaba egrave aperta se termina con una vocale mentre egrave chiusa se termina con unaconsonante

3Sembrano soltanto se si prende la definizione in senso troppo letterale egrave vero che cia egravepreceduto da s ma il nesso sci si riferisce ad una pronuncia particolare diversa dalla pronunciadi s seguito dalla pronuncia di cia in alcuni dialetti italiani o pronunce dialettali non egraveinfrequente questa pronuncia separata e lrsquoortografia italiana non egrave predisposta per renderla in

201 ORTOGRAFIA TESTUALE 379

in -scia che hanno costantemente il plurale in -sce ascia e asce biscia e biscestriscia e strisce Come sempre la consultazione di un buon dizionario permettedi risolvere eventuali eccezioni a questa regola infatti ciliegia ammette entrambii plurali ciliegie e ciliege Il dizionario della lingua italiana di Aldo Gabrielli(Hoepli) indica entrambi i plurali ma negli esempi usa solo la desinenza -gie

Anche scrivendo in lingue straniere avvengono gli stessi fenomeni con lrsquoag-gravante che esistono circostanze nelle quali in una nazione si usa una certaortografia diversa da quella di unrsquoaltra nazione Tipica egrave la differenza fra lrsquoingleseamericano e lrsquoinglese britannico dove non solo alcune parole omografe hannosignificati completamente diversi ma parole molto comuni hanno ortografiediverse per esempio colour e color behaviour e behavior to analize e to analise

In queste circostanze il compositore deve scegliere una delle grafie alternativee usare sempre quella per il lettore non crsquoegrave nulla di piugrave fastidioso del trovarela stessa parola scritta in modi diversi Ovviamente se si cita un brano altruideve essere rispettata anche la sua ortografia ma il fatto di avere evidenziato lacitazione fa capire al lettore che quelle parole sono scritte da unrsquoaltra persona

2012 lsquodrsquo eufonica e lsquoirsquo prostetica apostrofiNel parlare si usano spesso le lsquodrsquo eufoniche e le lsquoirsquo prostetiche Nel parlare sipronuncia spesso una lsquodrsquo fra una congiunzione o una preposizione terminantein vocale e la parola seguente specialmente quando inizia con la stessa vocaleTipiche le pronunce di ad ed e od Nello scrivere egrave generalmente accettata lalsquodrsquo eufonica per evitare lo lsquoscontrorsquo di due lsquoarsquo o di due lsquoersquo ad altro scopo adavere ed essere Egrave anche accettata la scrittura di ad esempio negli altri casi lalsquodrsquo eufonica dovrebbe essere evitata

Questa norma vale a maggior ragione per la lsquoirsquo prostetica quella lsquoirsquo cheviene spesso pronunciata dopo preposizioni che finiscono con una consonante seprecedono parole che cominciano con la lsquos impurarsquo in iscuola in istrada Anchese questa lsquoirsquo viene pronunciata non dovrebbe venire mai scritta si tollera lalocuzione per iscritto

Probabilmente esistono simili variazioni di grafia anche in altre lingue egravequindi molto opportuno conoscere a fondo la lingua in cui si scrive oppurecitando brani altrui bisogna essere certi di riprodurli integralmente nella linguain cui sono scritti (eventualmente una traduzione in nota potrebbe essere moltogradita al lettore)

Lrsquoapostrofo viene impiegato abbondantemente in italiano in francese incatalano anche nella variante valenciana e in retoromanzo per indicare lrsquoelisionedi una vocale in italiano bisogna stare attenti a non confondere lrsquoelisione conil troncamento sarebbe sbagliatissimo scrivere unrsquouomo dove invece lrsquoarticoloindeterminativo maschile subisce solo il troncamento (la semplice caduta dellalsquoorsquo) e di fatto egrave un errore rarissimo negli scritti a stampa Invece egrave piuttostofrequente incontrare espressioni errate come qualrsquoegrave

Salvo poche locuzioni ormai cristallizzate lrsquoelisione si manifesta in italiano solocon gli articoli determinativi maschili e femminili e con gli articoli indeterminativifemminili Ma oggigiorno lrsquoelisione viene eseguita raramente limitandola agliarticoli singolari e anche in questi casi spesso non viene eseguita si trova quasi

modo semplice in piemontese si trova per esempio s-centragrave ma in molte parti di Italia sisente pronunciare in lsquoitalianorsquo s-centrato

380 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

sempre lrsquoequazione o talvolta nei testi tecnici la equazione ma non si incontramai lrsquoequazioni Sessanta anni fa era comune vedere scritto glrsquoitaliani oggi nonsi incontra piugrave questa scrittura Vista la possibilitagrave di eseguire o di non eseguirelrsquoelisione il compositore deve decidere come comportarsi e poi deve coerentementeseguire la sua decisione come al solito il lettore apprezza la coerenza

Lrsquoapostrofo viene anche usato per marcare apocopi e aferesi che oggi initaliano si incontrano poco un porsquo scuro rsquosta volta In espressioni da recitare siusa lrsquoapostrofo per indicare gli imperativi di alcuni verbi darsquo qui farsquo attenzione4In passato era molto comune scrivere ersquo per indicare il pronome maschile diterza persona ei ma questrsquouso egrave durato solo nei primi secoli di vita dellrsquoitalianoOggi egrave corretto scriverlo solo nelle citazioni di brani tratti da testi antichi

In tipografia non bisogna confondere lrsquoapostrofo con lrsquoapice molti font di-spongono di due segni distinti con i font normalmente usati con LATEX si usa unsolo segno nel testo (rsquo) mentre in matematica il segno (prime) egrave diverso ma ci pensasempre LATEX ad usare i segno giusto se nel file sorgente si usa sempre il segnodellrsquoapostrofo

202 AccentiIn italiano gli accenti obbligatori sono da porre solo sullrsquoultima vocale delle paroletronche una apposita norma UNI regola la questione ma in buona sostanzatutte le vocali terminali delle parole tronche ricevono lrsquoaccento grave tranne lalsquoersquo che puograve riceverlo o grave o acuto secondo precise regole ortografiche

Lrsquoaccento acuto (acute) si pone su cheacute e sui suoi derivati percheacute affincheacute ecceterasui derivati di tre re e fersquo (fede) ventitreacute vicereacute autodafeacute eccetera su alcuneparole come scimpanzeacute seacute

Lrsquoaccento grave (`) si pone sulla terza persona singolare del verbo essereegrave e sui suoi derivati come cioegrave sulle parole acquisite in italiano e derivateprevalentemente dal francese come bidegrave relegrave su nomi di bevande come caffegravetegrave (la scrittura the egrave errata) sui derivati di me come ahimegrave sui nomi propricome Noegrave Mosegrave Giosuegrave Josegrave (anche se in spagnolo si scrive Joseacute che per altroegrave ugualmente corretto) eccetera

Si fa osservare che gli italiani sono piuttosto sciatti nel distinguere gli apostrofigrave e acuto non egrave raro trovare scritto perchegrave comprensibile per il fattoche con la tastiera italiana la lsquoegraversquo si ottiene premendo un solo tasto ma sitrova scritto anche eacute che non egrave nemmeno comprensibile percheacute con la tastieraitaliana bisogna premere due tasti Il compositore e il ldquotastieristardquo che vuolrispettare lrsquoortografia tipografica oltre che quella grammaticale deve quindiporre particolare attenzione alla distinzione di questi due accenti

La norma UNI per altro egrave piuttosto poco impegnativa nel senso che dagraveindicazioni poco restrittive essa consente per esempio di usare lrsquoaccento acutosulle vocali lsquoirsquo e lsquoursquo vocali naturalmente chiuse per le quali sembrerebbe piugraveadeguato lrsquouso dellrsquoaccento acuto che specifica il suono chiuso delle vocali lsquoersquoe lsquoorsquo Mentre sulla lsquoersquo la norma egrave chiara (e nel caso di dubbio egrave consigliabilerivolgersi ad un buon dizionario) sulla lsquoorsquo delle parole tronche il suono egrave sempreaperto quindi lrsquoaccento obbligatorio sulla lsquoorsquo egrave sempre grave

4Si noti la differenza dagrave terza persona singolare dellrsquoindicativo di dare darsquo seconda personasingolare dellrsquoimperativo di dare

203 SILLABAZIONE 381

Il filologo italiano Gian Luigi Beccaria usa regolarmente gli accenti acutisulla lsquoirsquo e sulla lsquoursquo (cosiacute piuacute) cosa che egrave permessa anche dalla norma UNI macon la tastiera italiana egrave difficile da realizzare egli usa anche il circonflesso suiplurali dei maschili terminati in -io (principicirc )

Ma la norma UNI consente anche gli accenti facoltativi cioegrave sulle sillabeinterne In questo caso se si vuole distinguere coacutelto (istruito) da cogravelto (raccolto)bisogna scegliere lrsquoaccento secondo lrsquoapertura della vocale lsquoorsquo egrave quanto maiopportuno verificare la pronuncia corretta su un buon dizionario moderno dovespesso la pronuncia egrave descritta mediante i segni dellrsquoalfabeto ipa (InternationalPhonetic Association)

Il filogravelogo Migliorini membro della commissione che curograve la redazione dellanorma UNI in questione vi fece introdurre la specificazione che non si acceacutentanomai le parole piane se non per indicare il suono aperto o chiuso della vocaletogravenica lsquoersquo oppure lsquoorsquo si pogravessono accentare e si consiglia di farlo le parolesdrugravecciole e bisdrugravecciole5 il consiglio diventa quasi un imperativo quando vipossa essere confusione con parole omogravegrafe con pronuncia piana Seguendoquesta indicazione si distingueragrave prigravencipi da principi ma non si scriveragrave maiprincigravepi si distingueragrave seacuteguito da seguito ma non si scriveragrave mai seguigraveto amaggior ragione si distingueragrave lagravevati (imperativo) da lavati (participio) e anessuno verrebbe in mente di scrigravevere lavagraveti Tuttavia si incoacutentrano spesso parolepiane accentate in violazione dellrsquoindicazione espressa nella norma UNI Anche ilrispetto di questa norma costituisce un aspetto dellrsquoortografia tipogragravefica

Non era cosigrave un tempo Su un libro stampato da Bodoni nel 1803 ho trovatoche lrsquoaccentazione dellrsquoitaliano era eseguita con le regole del greco accentograve sulle parole tronche e accento acuto sulle parole sdrucciole o bisdruccioleindipendentemente dallrsquoapertura della vocale Ovviamente una citazione di queltesto richiede il rispetto di quel tipo di accentazione ma il fatto che il testo siamesso in evidenza come citazione giustifica il fatto di non essere conforme allanorma UNI (che non esisteva nel 1803)

203 SillabazioneSecondo alcuni sarebbe meglio comporre in modo che nessuna parola sia divisain sillabe in fin di riga Probabilmente egrave vero ma la necessitagrave di eseguirela cesura dipende dalla lunghezza della riga di testo e dalla lunghezza dellaparola sicuramente non fa parte della lsquoortografiarsquo tipografica avere diverse righeconsecutive che terminano con la lineetta di lsquoa caporsquo Se la giustezza egrave decisamentepiccola egrave meglio comporre in bandiera allineata a sinistra piuttosto che con lagiustificazione da entrambi i lati Egrave qui che il compositore deve esercitare il suogiudizio per comporre lsquogiustorsquo

Tuttavia una delle cose che salta allrsquoocchio quando si legge un testo con moltecesure egrave non solo se queste cesure siano corrette (ci mancherebbe altro) mase sono eseguite in modo da rendere confortevole la lettura Egrave per questo peresempio che le regole di sillabazione realizzate da LATEX per la lingua italianaevitano di dividere i possibili dittonghi i gruppi di vocali che potrebbero esseretali ma che non sapendo leggere e non sapendo dove cade lrsquoaccento LATEXnon puograve trattare con certezza In questo modo si perdono possibili punti di

5Egrave quello che si egrave fatto in questo capoverso

382 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

cesura ma la lettura resta molto piugrave confortevole Si pensi ad una parola comepaura le lettere au in altre parole formano un dittongo discendente ma quiformano uno iato e la parola grammaticalmente si potrebbe dividere in pa-u-raLATEX divide invece solamente in pau-ra In effetti non sarebbe sbagliato se LATEXdividesse come dice la grammatica ma il lettore si troverebbe a disagio se la rigafinisse con lsquopa-rsquo e la riga successiva iniziasse con lsquourarsquo Questo genere di problemiavviene piugrave spesso di quanto non si immagini ma la sillabazione tipografica (equindi lrsquoortografia tipografica) differisce dalla sillabazione ordinaria (e quindidallrsquoortografia ordinaria) proprio percheacute tende ad avere anche il lettore non solola grammatica come metro di misura della lsquocorrettezzarsquo

Bisogna ricordarsi di selezionare la lingua giusta con babel in modo che LATEXpossa usare le regole di sillabazione adatte alla lingua in uso bisogna ricordarsidi specificare la lingua ogni volta che si compone in una lingua diversa da quellaprincipale forse il testo in lingua non subiragrave nessuna cesura in fin di riga manon lo si puograve sapere in anticipo quindi egrave meglio provvedere per tempo

Per altro se componendo in colonne strette si vuole aggiungere qualche puntodi divisione in fase di correzione delle bozze si puograve sempre inserire nellrsquoargomentodel comando hyphenation una lista di parole con iati divise tenendone contoper esempio si potrebbero inserire (con tutte le varianti e sempre che le parolesiano effettivamente usate nel testo)

hyphenationpa-u-ra pa-u-re i-de-a-le i-de-a-li ba-u-le ba-u-licro-a-to cro-a-ti cro-a-ta cro-a-te

Anche le parole scientifiche ottenute dallrsquoagglutinazione di varie radici egrave beneche siano divise etimologicamente per facilitarne la comprensione da parte dellettore le norme UNI che regolano la questione sono piuttosto flessibili in questosenso esse danno le regole generali per la divisione fonetica ma non proibisconoal compositore di eseguire la divisione etimologica Se una parola scientifica diquesto genere capita sovente nel testo egrave meglio inserirla con le sue variazioninella lista di hyphenation se la si incontra sporadicamente puograve essere piugravesemplice introdurre una divisione opzionale mediante lrsquouso del carattere attivo che consente la divisione anche negli altri lsquomonconirsquo della parola piuttosto cheil comando LATEX - che invece consente la divisione solo nel punto dove egraveindicato Il carattere attivo produce questo effetto solo mentre si compone initaliano6 non egrave possibile usarlo componendo in altre lingue per le quali esistonocomandi analoghi formati da due segni

204 PunteggiaturaIl problema della punteggiatura si presenta sia nella composizione del testo siaquando si inseriscono parti matematiche se ne egrave giagrave parlato diffusamente in altricapitoli Si tenga presente che i segni di punteggiatura non sono solo i quattro osei segni ai quali siamo soliti dare questi nomi In tipografia ci sono

1 i segni di marcatura logica la virgola il punto e virgola i due punti e ilpunto

6Quando si usa xelatex e si specifica babel come pacchetto da usare per la gestione dellelingue il doppio apice dovrebbe poter essere usato come descritto qui se invece si gestiscono lelingue con polyglossia il doppio apice non egrave piugrave attivo e non puograve venire usato per la divisionein sillabe su base etimologica

204 PUNTEGGIATURA 383

2 I segni di espressione il punto interrogativo il punto esclamativo e i puntinidi sospensione (usati anche per le omissioni)

3 I segni di enfasi le virgolette alte le virgolette basse (in entrambi i casisemplici o doppie)

4 I delimitatori principalmente le parentesi tonde e quadre ma anche lecoppie di virgole

5 I segni di sezionamento o di opposizione la barra obliqua il trattino olineetta il trattino medio e il trattino o lineato lungo

6 I segni di sezionamento usati anche come simboli a seacute stanti il segno diparagrafo sect e il segno di capoverso para

Direi che quelli piugrave difficili da usare correttamente sono i semplici segni dimarcatura logica Infatti fin dalle scuole elementari siamo stati tutti esposti alladefinizione di tali segni come dei segni che marcano le pause Non egrave vero lavirgola il punto i due punti e il punto e virgola servono per marcare le divisionisintattico-grammaticali del testo secondo regole che nulla hanno a che vedere conla marcatura prosodica Questa infatti non puograve essere marcata adeguatamentecon i soli quattro segni indicati e ogni oratore che debba leggere un discorso hala sua personale maniera di indicare i segni prosodici per modulare le inflessionidella voce per marcare le pause drsquoeffetto eccetera Questo naturalmente nonvuol dire che i segni di interpunzione non contribuiscano alle pause se unodovesse leggere ad alta voce ma non generano necessariamente pause brevimedie o lunghe in corrispondenza alla virgola al punto e virgola e al puntopossono invece aiutare a mutare il tono della voce Tuttavia queste pause e questimutamenti non sono la funzione principale della punteggiatura sono solo lrsquoaiutoalla comprensione per il lettore che esegue le pause e i mutamenti in base a quelloche egli ha compreso Dare la definizione dei segni di punteggiatura mediante ladurata delle pause significa scambiare la causa con lrsquoeffetto

I segni prosodici servono per leggere ad alta voce un testo I segni di punteg-giatura servono per dare risalto alle sezioni sintattico-grammaticali del testo eservono in sostanza ad aiutare il lettore a comprendere lo scritto leggendo congli occhi non con la bocca gli occhi non hanno bisogno di respirare

La virgola serve in generale some separatore seriale nelle enumerazioni serveper separare certe frasi subordinate dalla frase principale usata a coppie serveper marcare gli incisi puograve essere usata per spostare lrsquoattenzione del lettore dauna parola ad un altra anche a poca distanza Le coppie di virgole delimitatricidi un inciso possono non essere apparenti percheacute se risultano adiacenti ad unsegno di interpunzione di maggiore importanza ne vengono assorbite

La funzione seriale egrave evidente ldquoChiare dolci fresche acque La funzione di separazione di frasi non egrave altrettanto semplice da illustrare ci

sono frasi subordinate che si pensano sempre come subordinate e quindi separateda una virgola ed altre che non svolgono sempre lo stesso ruolo anche se lagrammatica le classifica nello stesso modo

Per esempio lrsquoipotesi di una costruzione ipotetica egrave quasi sempre separatacon una virgola dalla tesi ldquoSe arrivo in tempo posso cenare con voirdquo Invece unafrase relativa viene separata con una virgola dalla principale solo se ha carattereesplicativo o appositivo mentre non egrave separata dalla virgola se ha significatospecificativo o restrittivo ldquoIl paziente che ha manifestato una forte poliuria va

384 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

trattato con rdquo la frase relativa egrave specificativa nel senso che la sua eliminazionetoglierebbe significato a quello che resta Viceversa una relativa egrave esplicativaquando la sua eliminazione toglie qualcosa dal discorso ma la sua assenza nonpreclude la comprensione del testo restante La professoressa Mortara Garavelliin [34] mostra un bellrsquoesempio di relative che svolgono ruoli diversi le parolesono le stesse mentre i periodi differiscono solo per una virgola

bull Non seguo i programmi televisivi che mi sembrano scadenti

bull Non seguo i programmi televisivi che mi sembrano scadentiI due ruoli della frase relativa sono assolutamente evidenti nel primo caso ilsoggetto non segue alcuni programmi televisivi quelli che gli sembrano scadentinel secondo caso il soggetto non segue nessun programma televisivo e spiega chenon li segue percheacute tutti i programmi gli sembrano scadenti

La virgola serve anche per spostare lrsquoattenzione Poicheacute nella frase ordinariaitaliana i concetti piugrave ldquopesantirdquo vengono collocati alla fine introducendo unainterruzione con una virgola egrave possibile spostare lrsquoattenzione su un concettoprecedente si osservi ancora la coppia di frasi proposte dalla professoressaMortara Garavelli

bull poveri ma belli

bull poveri ma belliNel primo caso lrsquoattenzione cade su ldquobellirdquo mentre nel secondo caso cade suldquopoverirdquo

Ecco quindi che molte regole delle grammatiche elementari diventano dellecostrizioni che impediscono di comunicare correttamente il pensiero in formascritta

Forse anche il problema della punteggiatura esterna alla matematica in dis-play potrebbe essere visto alla luce di queste considerazioni Puograve darsi che loschieramento a favore di uno o lrsquoaltro dei due approcci comprenda che lrsquoaltroapproccio egrave piugrave conforme alla punteggiatura in generale puograve darsi anzi cheentrambi gli schieramenti si orientino verso una interpunzione esterna alla mate-matica che non sia neacute la totale assenza di interpunzione neacute la presenza di unainterpunzione abbondante Qui non si prende posizione nel modo piugrave assoluto sivuole semplicemente osservare che lrsquointerpunzione va vista con uno sguardo piugraveampio di quello che le grammatiche scolastiche hanno postulato e che noi tuttici portiamo dietro fin dai tempi delle scuole elementari

Il punto e virgola svolge o puograve svolgere funzioni simili a quelli della virgolama solitamente serve per separare frasi autonome grammaticalmente nella suafunzione di serializzazione serve per separare frasi che contengano esplicitamenteo implicitamente anche il verbo Il ruolo di enfasi egrave ancora piugrave importante con ilpunto e virgola che con la virgola

Il punto serve per terminare un periodo se dopo si va a capo esso segnaanche la fine di un capoverso puograve servire anche per le abbreviazioni

I due punti sono un porsquo particolari essi servono per introdurre una frase chesia una spiegazione della precedente comunque costituisce un modo per creareuna aspettativa per ciograve che segue

Vale la pena di ricordare che in inglese la virgola i due punti e il punto sichiamano rispettivamente comma colon e period Queste sono le forme rimastenella lingua inglese delle denominazioni latine che venivano usate nei manuali

204 PUNTEGGIATURA 385

di oratoria come quello di Quintiliano In latino vigeva la scrittura continuasenza nemmeno gli spazi fra le parole Solo verso la metagrave del primo millenniosi cominciograve a scrivere almeno nelle iscrizioni sulle lapidi inserendo un puntoa mezza riga fra una parola e lrsquoaltra Per i non latinisti egrave piuttosto difficileleggere iscrizioni latine con la scrittura continua Lo doveva essere anche pergli antichi e Quintiliano insegnava a distinguere le locuzioni dalle frasi e daiperiodi (rispettivamente in latino comma colon e periodus) mediante dei segnidi interpunzione il comma veniva terminato con un punto basso il colon conun punto medio e il periodo con un punto alto Questi erano allo stesso temposegni demarcatori sintattici e segni prosodici ma Quintiliano insegnava ancheche per enunciare correttamente il discorso bisognava prima capirlo poi lo sipoteva leggere ad alta voce

Nei secoli questi tre segni hanno cambiato forma e funzione nel testo [35]sono descritte queste evoluzioni in tutte le lingue europee principali si trattadi una lettura molto interessante anche se puograve sembrare una lettura piuttostopesante I collaboratori della curatrice in varia forma hanno esposto i loro studialcuni in un registro da iniziati altri in un registro piugrave divulgativo ma tutti inmodo interessante

In italiano la virgola (da virgula diminutivo latino di verga asta) svolgetra le altre la funzione del comma Gli altri segni hanno nomi descrittivi dellaforma del segno ma il punto e virgola svolge il ruolo del colon mentre i duepunti sono particolari nel compito di introdurre una nuova frase In italianola parola comma egrave rimasta solo ad indicare una sola modesta articolazione deltesto spesso un solo periodo di un articolo di legge Oggi il termine colon initaliano indica un segmento ritmico di un testo individuato da pause metriche ologiche (non necessariamente marcate con segni di interpunzione)

Va ancora notato che ci sono alcune cose fortemente vietate nella pun-teggiatura come per esempio separare il soggetto dal verbo con una virgolaapparentemente il Manzoni lo faceva ma ad una seconda lettura si capisce chele sue virgole hanno lo scopo di marcare certe enfasi che solo apparentementeseparano il soggetto dal verbo ecco un criticatissimo esempio tratto dai PromessiSposi

Perograve di tante belle parole Renzo non ne credette una neacute che ilnotaio volesse piugrave bene a lui che arsquo birri neacute che prendesse tanto acuore la sua reputazione [ ]

Oggi noi (che non siamo Manzoni) considereremmo questa frase errata e mette-remmo la virgola prima di lsquoRenzorsquo In realtagrave leggendo meglio sembra di guardarein faccia il narratore che arrivato a questo punto del racconto strizza lrsquoocchiocome a dire ldquomica stupido il ragazzordquo

In inglese americano egrave invece comune incontrare questa funzione prosodicadi separazione del soggetto dal verbo ma non sembra un esempio da imitarenemmeno in inglese

Qui non egrave il caso di riscrivere il Prontuario della professoressa Mortara Ga-ravelli [34] a cui reindirizziamo il lettore Perograve si sottolinea lrsquoimportanza dellapunteggiatura nella buona tipografia interpungere bene componendo tipografica-mente puograve voler dire trasmettere un messaggio piuttosto che un altro evitandodi travisare il senso del discorso rispetto a come lrsquoaveva in mente lrsquoautore

Per i segni di espressione il punto interrogativo lsquorsquo ed esclamativo lsquorsquo talvoltageminati in lsquorsquo non dovrebbero esserci problemi interpretativi per i puntini di

386 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

sospensione egrave chiara la loro funzione tipograficamente parlando in Italia si suolescrivere i puntini di sospensione attaccati alla parola precedente nella tipografiaanglo-americana i puntini si scrivono attaccati se rappresentano una sospensionementre si scrivono staccati se rappresentano una omissione Nella tradizionetipografica italiana i tre puntini restano tre anche alla fine del periodo nel sensoche conglobano anche la funzione di punto fermo

I demarcatori come le virgolette alte o basse non richiedono spiegazioniparticolari tuttavia disponendo di entrambi i tipi di segni si egrave soliti dedicare levirgolette basse (chiamate anche caporali sergenti virgolette uncinate virgolettequadrate) per evidenziare parole o locuzioni importanti ovvero per racchiudere idialoghi le virgolette alte (o inglesi) allora si usano per evidenziare parole usatecome tali oppure per segnalarne un uso ironico o traslato comunque inconsuetoLe brevi citazioni nel corpo del testo vanno racchiuse fra virgolette una brevecitazione che ne contenga unrsquoaltra richiede lrsquouso di virgolette diverse la citazioneinterna avragrave per esempio le virgolette semplici e quella esterna le virgolettedoppie oppure quella esterna le virgolette basse e quella interna le virgolettealte

I problemi si complicano dal punto di vista della correttezza tipograficaquando si devono evidenziare i dialoghi per esempio in un romanzo Ci sonodiversi modi di evidenziare i dialoghi e le battute non facenti parte propriamentedi un dialogo Possono essere introdotte da un trattino medio possono essereracchiuse fra virgolette basse come detto sopra possono racchiudere un altrabattuta possono essere solo pensate ma non dette eccetera Le cose si possonocomplicare molto Si veda piugrave avanti anche in merito allrsquouso del trattino

Come al solito la coerenza egrave il metro principale per eseguire le scelte tipogra-fiche giuste I trattini le virgolette alte o basse semplici o doppie sono lsquocodicirsquoper distinguere le battute

Un modo coerente per usare questi segni egrave il seguente

bull si usano le virgolette basse doppie aperte e chiuse per racchiudere ciascunabattuta detta

bull si usano i trattini per separare incisi narrativi allrsquointerno di una battutadetta per esempio laquoSigrave egrave proprio cosigrave ndash affermograve con decisione ndash ne sonoassolutamente sicuraraquo

bull si usano le virgolette alte doppie aperte e chiuse per racchiudere unabattuta dentro unrsquoaltra battuta per esempio laquoMi hai detto testualmenteldquoCattivordquo con un tono troppo aggressivoraquo

bull si usano le virgolette alte doppie aperte e chiuse per racchiudere unabattuta pensata per esempio pensai ldquoOra qui devo cavarmela da solordquo

bull si usano le virgolette alte semplici aperte e chiuse per racchiudere unabattuta dentro una battuta pensata per esempio pensai ldquoGianni miha detto lsquoSigraversquo con poca convinzionerdquo

Chiaramente questo schema egrave coerente ma non egrave lrsquounico che si possa usareA differenza del francese e di altre lingue oltre che dalla pratica tipografica

italiana dei secoli scorsi le virgolette alte o basse non richiedono mai spaziaggiuntivi al loro interno quelle di apertura sono precedute da uno spazio mentre

204 PUNTEGGIATURA 387

quelle di chiusura sono seguite da uno spazio o da un segno di interpunzioneseguito a sua volta dallo spazio necessario

Si faccia attenzione nelle citazioni in lingua straniera dove le virgolettevengono usate come nella lingua drsquoorigine in alcune nazioni le virgolette sonousate con la concavitagrave verso lrsquoesterno in alcune nazioni le virgolette di aperturasono della stessa forma delle virgolette alte di chiusura ma sono poste alla basedella riga di stampa in alcune nazioni le virgolette vengono ripetute allrsquoiniziodi ogni riga per le citazioni che durino piugrave righe Come giagrave detto in francesele virgolette sono distanziate con normali spazi interparola dal loro contenutomentre in italiano questo oggi egrave assolutamente vietato Nel xix secolo anche inItalia andava per la maggiore lo stile tipografico francese per cui anche in Italiale virgolette erano distanziate cosigrave come anche i segni di interpunzione compresila virgola e il punto Oggi sarebbe inaccettabile Anche in latino ecclesiastico7 siusa uno stile tipografico del tipo francese ma con spazi piugrave ridotti rispetto aquelli francesi

Le parentesi tonde servono per incisi piugrave importanti di quelli che si possonodelimitare con una coppia di virgole anche le parentesi tonde non voglionospazi al loro interno Le parentesi quadre servono per inserire delle correzionispecialmente nelle citazioni delimitano insomma delle parti che nella citazioneoriginale mancavano o erano diverse Le parentesi tonde e quelle quadre possonoavere anche altre funzioni come quelle di delimitare le numerazioni delle formuleo delle citazioni bibliografiche sarebbe importante per una buona e correttatipografia che le parentesi di ogni tipo non svolgessero piugrave di due ruoli peresempio quello di incisi e di numerazione delle formule per le parentesi tondee quello delle correzioni e delle citazioni bibliografiche per le quadre Sarebbetroppo confuso per il lettore distinguere piugrave ruoli affidati alla stessa coppia disegni

I trattini hanno ruoli diversi a seconda della loro lunghezza Il trattino breveserve principalmente come indicatore di cesura in fin di riga puograve svolgere ancheil ruolo di trattino che unisce due parole associate nel loro significato cumulativoma tenute distinte per non formare una sola parola indo-europeo Va notatoche quando il trattino unisce due locuzioni a loro volta formate da piugrave di unaparola il trattino viene separato con spazi insecabili dalla prima e dalla secondalocuzione Trentino - Alto Adige

Il trattino medio lsquondashrsquo (en dash in inglese) non deve essere confuso con il segnomeno lsquominusrsquo LATEX mantiene anche graficamente un lunghezza diversa Il segnomeno si usa solo in matematica se si deve indicare una quantitagrave negativa espressain cifre la si componga in modo matematico non si cerchi di simulare il segnomeno con un trattino medio ldquola borsa ha avuto variazioni giornaliere dal 2al minus35rdquo Il trattino medio viene usato specialmente per indicare intervallinumerici senza ricorrere alla composizione matematica che usa altri simboli piugraveprecisi per esempio nelle bibliografie specialmente se si tratta di articoli egraveopportuno indicare le pagine nelle quali essi si trovano stampati dentro al volumeche li raccoglie si scriveragrave dunque ldquopag 321ndash347rdquo

Nei romanzi il trattino medio serve anche in sostituzione delle virgoletteper demarcare i dialoghi In particolare una battuta generalmente inizia con un

7Il latino ecclesiastico egrave latino moderno non medievale oltre ad avere uno stile france-sizzante usa gli accenti Questo sembra sia richiesto per consentire ai fedeli e ai religiosi dileggere correttamente e allrsquounisono indipendentemente dallrsquoaccentazione che spontaneamenteuserebbero in base alla sensibilitagrave ritmica derivata dalla loro lingua madre

388 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

trattino medio e uno spazio se essa finisce con il punto a capo non ha bisognodi avere anche il trattino di chiusura Se invece viene interrotto da una partenarrativa o il testo prosegue sulla stessa riga con una parte narrativa allorala battuta viene separata da quanto segue con il trattino medio preceduto dauno spazio Nella letteratura anglosassone questo ruolo del trattino medio vienesvolto dal trattino o lineato lungo

Il trattino lungo (em dash in inglese) viene usato poco nella tipografia italianaprincipalmente viene usato per indicare delle omissioni di lettere in una parolaper esempio per non svelare il nome di un personaggio si puograve scrivere ldquoil signorAmdashrdquo Talvolta imitando le tradizioni tipografiche angloamericane il trattinolungo viene usato al posto del trattino medio

Il segno di paragrafo lsquosectrsquo e di capoverso lsquopararsquo vengono usati raramente ilprimo certamente viene usato piugrave del secondo questo a sua volta trova la suacollocazione specialmente nei libri liturgici insieme ad altri numerosi segni specialilo si vede anche nei libri che cercano di imitare la scrittura dei codici

205 AbbreviazioniLe abbreviazioni sono un altro terreno infido spesso esse formano degli acronimiin questo caso solitamente viene usata la lettera iniziale maiuscola (talvolta anchele due lettere iniziali) di ciascuna delle parole che formano il nome dellrsquoente odellrsquoentitagrave di cui si usa lrsquoacronimo Alcuni acronimi sono diventati parole a seacutestanti di cui si egrave perso nel comune sentire il significato della locuzione originaleper esempio la parola comune radar egrave in realtagrave un acronimo inizialmentescritto in lettere maiuscole RADAR che sta per la locuzione inglese RAdioDetection And Ranging Lrsquoacronimo coreco sta per COmitato REgionale diCOordinamento Lrsquoacronimo onu sta per Organizzazione delle Nazioni Uniteovviamente in altre lingue come lrsquoinglese lrsquoacronimo corrispondente egrave unoCome fatto qui gli acronimi sono composti con lettere maiuscole preferibilmentein minuscole del maiuscoletto senza punti di abbreviazione interposti

Le abbreviazioni piugrave comuni sono formate dalla prima sillaba e dalle primeconsonanti della seconda sillaba e vengono terminate dal punto di abbreviazioneRaramente le abbreviazioni sono formate solo dalle prime consonanti della solaprima sillaba In rari casi al contrario lrsquoabbreviazione egrave costituita dalle primedue sillabe della parola da abbreviare seguite dalle prime consonanti della terzasillaba e terminando il tutto con il punto di abbreviazione per esempio lsquoteoremarsquopuograve essere abbreviato in lsquoteorrsquo

Il burocratese ci ha inquinato con usi strampalati delle abbreviazioni dupli-cando alcune lettere per indicare il plurale dalla parola abbreviata questo avvieneanche negli acronimi VVF (Vigili del Fuoco) OOSS (Organizzazioni Sindacali)pagg (pagine) sigg (signori) proff (professori) Sebbene il meccanismo siachiaro il plurale indicato in questo modo egrave pleonastico e fuorviante visto che ilsignificato plurale egrave implicito dal contesto

In alcuni altri casi si sono sviluppate abbreviazioni stenografiche usando soloalcune consonanti della parola da abbreviare btg (battaglione) cfr (confronta)e simili

Altre volte vengono usate abbreviazioni quando non crsquoegrave nessun bisogno diabbreviare quando si abbrevia lsquosigrrsquo al posto di lsquosignorrsquo si risparmia solo unabattuta lo stesso avviene per lsquosigrarsquo e lsquosignarsquo Certamente queste abbreviazioni

206 APPELLATIVI E MAIUSCOLE 389

sono piugrave adatte a una lettera commerciale che a un testo a stampa il burocratesesia lasciato alla burocrazia

Ma questi malvezzi si trovano anche negli scritti a stampa per esempio inuna bibliografia a piegrave di pagina puograve capitare di citare una nota e il numero di unvolume entrambi ammettono lrsquoabbreviazione lsquonrsquo ma egrave evidente che non si puograveusare la stessa abbreviazione per cose diverse quindi egrave meglio non abbreviarepiuttosto che abbreviare lsquonotarsquo in lsquonotrsquo piuttosto si abbrevieragrave lsquonumerorsquo in lsquonumrsquoriservando lsquonrsquo alla nota ma in entrambi i casi egrave meglio evitare lrsquoabbreviazioneoppure se proprio manca spazio si puograve usare il simbolo mediante il comandotextnumero

Direi anche che le abbreviazioni del tipo Flli Illmo Chiarmo con o senzasottolineatura dellrsquoesponente dovrebbero essere evitate in ogni modo anche inburocratese tranne nel caso in cui si debba scrivere la ragione sociale di un enteil cui ldquologordquo comprende proprio questo genere di abbreviazioni

Si ricorda infine che le abbreviazioni eccettuati gli appellativi per i qualivalga la pena non si usano mai nel testo corrente ma si possono usare solonegli incisi fra parentesi si diragrave dunque ldquolrsquoequazione 23 dimostra che rdquo eldquo(v fig 33)rdquo ma non si diragrave ldquolrsquoeq 23 dimostra che rdquo o peggio ancora ldquola 23dimostra che rdquo8

206 Appellativi e maiuscoleIn italiano le maiuscole si usano con grande parsimonia purtroppo lrsquoimitazionedellrsquoinglese ci ha abituato a certe forme dove le maiuscole si sprecano

Cominciamo dagli appellativi Questi sono quei nomi che permettono didistinguere le persone o sul piano professionale o sul piano istituzionale comeingegnere professore re presidente eccetera Anche il semplice lsquosignorersquo egrave unappellativo che la buona educazione fa premettere (nel genere e nel registrogiusto) al nome di qualunque persona Gli appellativi non vanno scritti conlrsquoiniziale maiuscola quando sono seguiti dal nome della persona quindi diremosemplicemente ldquolrsquoingegner Rossirdquo ldquoil professor Brunirdquo ldquoil re Gustavordquo ldquoil presi-dente Napolitanordquo Useremo lrsquoappellativo con la maiuscola quando lrsquoappellativonon egrave seguito dal nome proprio e si riferisce alla posizione istituzionale ldquoilRerdquo ldquoil Presidenterdquo ldquoho parlato con il Direttorerdquo eccetera Penso che lrsquoultimoesempio sia giagrave un porsquo tirato per i capelli personalmente scriverei ldquoho parlatocon il direttorerdquo Tuttavia si prenda in considerazione che la Gazzetta Ufficialegeneralmente scrive ldquoil Presidente della repubblicardquo lasciando lrsquoiniziale minuscolaa ldquoRepubblicardquo

In qualche manuale di indicazioni editoriali si trova scritto che i nomi deglienti si scrivono con le iniziali maiuscole se sono locuzioni formate solo da unao due parole in tutti gli altri casi si scrive con la maiuscola solo la primaparola apparentemente le istruzioni editoriali della Gazzetta Ufficiale seguonoquesta regola Siccome lrsquoarticolo fa parte integrante dei titoli di alcuni giornalibisogna scrivere ldquoLa Stampardquo ldquoIl Giornordquo ma sempre secondo questa regolabisognerebbe scrivere ldquoIl resto del carlinordquo

8Tuttavia in scritti molto tecnici se il numero dellrsquoequazione egrave racchiuso fra certe parentesiche vengono usate solo per indicare le equazioni per esempio le parentesi tonde allora si puograveomettere del tutto la parola ldquoequazionerdquo e si scriveragrave ldquola (23) dimostra che rdquo

390 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

Certamente in italiano non vanno scritte con la maiuscola le parole cheindicano nomi comuni figura tabella equazione teorema nemmeno quandovi si fa riferimento con il numero identificativo Siccome poi la ldquofigura 33rdquo egrave unoggetto ben determinato la locuzione ldquofigura 33rdquo deve essere usata con lrsquoarticolodeterminativo o con la preposizione articolata In nessun caso introducendoiniziali maiuscole Cosigrave vale per tutti gli altri oggetti numerati o numerabili

I titoli degli articoli o dei libri hanno in italiano la sola prima parola conlrsquoiniziale maiuscola i titoli degli articoli vanno sempre citati fra virgolettepreferibilmente alte i titoli dei libri non vanno mai citati fra virgolette ma incorsivo

Lrsquoiniziale maiuscola va usata anche per i nomi propri dei palazzi dei monu-menti degli aerei delle navi dei treni delle automobili

Gli aggettivi di nazionalitagrave vanno minuscoli se sono personalizzati e riferitiad una persona specifica allora possono avere lrsquoiniziale maiuscola Parlando degliolandesi si indicheragrave la parola con lrsquoiniziale minuscola ma parlando di Van Goghsi potragrave dire ldquolrsquoOlandeserdquo allo stesso modo come quando si dice ldquoil Nostrordquoo volendo ldquolrsquoArtistardquo Si tratta di usare un qualche appellativo senza farloseguire dal nome proprio ma come detto sopra egrave giagrave tirato per i capelli usarelrsquoappellativo maiuscolo quando non ci riferisca ad una carica istituzionale

I nomi dei giorni e dei mesi vanno minuscoli i nomi dei punti cardinali vannominuscoli a meno che non vengano usati per indicare delle regioni geografichequindi si parleragrave ldquodel grande Nordrdquo ma si diragrave che ldquogli uccelli migrarono versonordrdquo

Per concludere in italiano le maiuscole si usano con parsimonia e la correttezzatipografica italiana non vuole che si imitino gli anglo-americani come non siimitano i tedeschi o altri modi di scrivere nazionali che usano le maiuscole conregole diverse dalle nostre Nel dubbio ci si astenga dallrsquousare iniziali maiuscole

207 Uso dei fontLa scrittura tipografica consente di sfruttare le possibilitagrave espressive dei fontmediante lrsquouso sistematico di certe serie o di certe forme che scrivendo a manonon sono disponibili Non egrave opportuno fare sfoggio di infiniti font appartenenti afamiglie serie forme e corpi diversi Bringhurst [4] afferma che si dovrebbe usaresolo la forma tonda quella corsiva e quella maiuscoletta e sempre e soltantonella serie media questa affermazione egrave ripresa da Serra in [41] Il nero dovrebbeessere sempre evitato A queste raccomandazioni si ispirano sia il pacchetto Clas-sicThesis sia la classe octavo e senzrsquoaltro questa raccomandazione egrave validissimaper testi di tipo letterario Per quelli di tipo tecnico-scientifico non si rifugge dalnero per i titoli anche di sezioni di livello inferiore a quello del capitolo ma lo siesclude nel corpo del testo

Cosigrave si egrave fatto anche in questo testo che usa le impostazioni di default perla classe book ma si egrave cercato di evitare ogni comando che impostasse la serienera specialmente quando si sono definiti i comandi che compaiono nel fileMacroGuidasty usati per certe composizioni particolari necessarie per questotesto In particolare rispetto alle precedenti versioni si egrave abbandonato il caratterebastoncino nero per caratterizzare i nomi dei pacchetti e lo si egrave sostituito con ilcarattere obliquo della famiglia a spaziatura variabile variabile typewriter type

208 LE NOTE 391

della collezione Latin Modern facilmente distinguibile dal corrispondente fontobliquo della famiglia a spaziatura fissa typewriter type

Per evidenziare qualche cosa si usa preferibilmente il corsivo mai la sottoli-neatura pratica esclusivamente destinata alla dattiloscrittura o alla scrittura amano Per i nomi propri si puograve usare il maiuscoletto questo viene fatto quasisempre nelle bibliografie come per altro viene fatto anche in questo testo

Come giagrave detto i titoli dei libri e delle opere anche teatrali vengono evi-denziati in corsivo mentre i titoli degli articoli pubblicati in periodici o rivistespecializzate vengono evidenziati mettendoli fra virgolette I nomi propri deipalazzi monumenti aerei eccetera vanno scritti in tondo

Il corsivo si usa anche per scrivere parole in lingua straniera (latino compreso)se una parola egrave di origine straniera ma egrave entrata in modo stabile nel lessicoitaliano la si puograve scrivere in tondo ma in questo caso la si assoggetta alle regolegrammaticali dellrsquoitaliano in particolare la si lascia invariata al plurale tennisgolf goal file software eccetera Se la si vuole mettere al plurale con le regoledella lingua di origine la si deve trattare come parola straniera e quindi la sideve comporre in corsivo Si scriveragrave quindi ldquoi curriculumrdquo oppure ldquoi curriculardquoma non si potragrave scrivere ldquoi curriculardquo Drsquoaltra parte percheacute curriculum dovrebbepoter essere declinato mentre ldquolapisrdquo ldquoalbumrdquo ldquoiterrdquo eccetera non vengonodeclinati

Va da seacute che se si vogliono usare i plurali delle lingue di origine egrave necessariooltre allrsquouso del corsivo anche la perfetta conoscenza della grammatica dellalingua drsquoorigine Attenzione Questo egrave un terreno estremamente sdrucciolevolespecialmente se le parole in questione terminano con vocali presenti anche nelledeterminazioni delle parole italiane I frutti kaki sono caratterizzati da un nomegiapponese quindi non si puograve scrivere anche italianizzando con la sostituzionedella lsquokrsquo con la grafia corrispondente italiana il caco i cachi infatti la linguagiapponese non modifica le parole al plurale e kaki vale tanto per un kaki quantoper tanti kaki

In matematica la scelta dei font egrave vincolata da norme molto precise almenoper la varietagrave di matematica scritta dai fisici e dai tecnologi percheacute ci sono dellenorme ISO e delle norme CNR-UNI che ne prescrivono gli usi corretti Si ripetequi che le norme UNI in Italia hanno valore di legge qualunque documento concarattere legale un contratto un capitolato una perizia perde la sua validitagravese non vengono rispettate le norme le conseguenze negative potrebbero esseremolto molto pesanti

208 Le noteLe note di commento al testo possono essere di tre tipi le note marginali le notea piegrave di pagina le note di fine capitolo o di fine documento

Le ultime andrebbero evitate con cura sono di disagevole lettura qualunquefunzione svolgano percheacute sono lontane dal testo a cui si riferiscono

Le note marginali possono costituire dei commenti puntuali che si riferisconoal testo che esse affiancano purcheacute siano sufficientemente brevi e possano trovareposto davvero vicino al testo a cui si riferiscono Richiedono la presenza dimargini larghi e la capacitagrave di allineare la prima riga della nota alla riga deltesto a cui si riferiscono Vengono usate raramente nei testi tecnico-scientificima nei testi di scienze umane vengono usate abbastanza spesso Ricordiamoci

392 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

che le edizioni critiche possono avere diversi apparati di note se in calce adogni pagina ci fossero 5 apparati di note ogni pagina sarebbe tremendamentecomplicata Spostare un apparato di note nel margine puograve costituire una notevolesemplificazione

La tradizione anglo-americana vorrebbe che per le note a piegrave di pagina ilrichiamo fosse costituito da un numero o una lettera o un simbolo ad esponentee lo stesso richiamo fosse ripetuto in calce prima del testo della nota Fin quinon crsquoegrave nessuna differenza con la tipografia italiana Ma la stessa tradizioneanglo-americana vorrebbe che il richiamo nel testo segua lrsquoeventuale punteggia-tura dopo la parola a cui la nota si riferisce si dovrebbe scrivere ldquoamigdala9rdquoe non ldquoamigdala9rdquo Questa raccomandazione o tradizione non sembra averealtra ragione che lrsquoestetica alla luce di quanto egrave stato detto sulla funzione del-lrsquointerpunzione apparirebbe piugrave corretto scrivere il richiamo di nota prima delsegno di punteggiatura in quanto la nota si riferisce ad una parola che si trovaprima di quel segno di punteggiatura segno che appunto separa una partesintattico-grammaticale da unrsquoaltra

Tuttavia entrambe le collocazioni del richiamo hanno la loro ragione drsquoessereil compositore sceglieragrave quella che gli sembra piugrave adatta al tipo di documentoche scrive ed avragrave cura di rimanere fedele a quella scelta per lrsquointero documento

209 ConclusioniCome si vede le regole da seguire in tipografia sono molte e sono molte anche leconsuetudini tipografiche alternative che si possono seguire qualunque composi-tore dovrebbe seguire come prima regola la coerenza Per rispettare la coerenzacompositiva egli si trova avvantaggiato se usa LATEX percheacute mediante la defini-zione di opportune macro egrave in grado di comporre molte cose nello stesso stile sein un secondo tempo dovesse decidere di cambiare stile gli basta cambiare ladefinizione della macro e automaticamente tutto il documento viene compostonel nuovo stile in modo corretto e coerente

LATEX perograve non basta ci sono diverse situazioni come quelle relative allapunteggiatura che vanno usate con coerenza ma che non possono essere codificatedentro a opportune macro Egrave utile allora che il compositore se non gli fosse giagraveimposto uno stile della casa editrice per cui compone si scrivesse autonomamenteun manualetto di stile bastano poche pagine dove vengono riassunte tutte leregole scelte e magari dove sono indicati anche i nomi delle macro che realizzanoquelle scelte In un manualetto del genere si possono anche scrivere alcunipromemoria per la punteggiatura per lrsquoevidenziazione per le virgolette peri plurali per le citazioni in lingua straniera eccetera in modo da non doverconsultare un libro alla ricerca della regola che non si ricorda piugrave

Tempo fa chi scrive contribuigrave con diversi articoli o lemmi al Dizionariodi ingegneria pubblicato dalla utet Fu un opera colossale magistralmentecoordinata dalla redazione editoriale che dovette assemblare i contributi dicentinaia di persone La precedente edizione era stata ideata e coordinata daEligio Perucca professore di fisica sperimentale al Politecnico di Torino

Eligio Perucca era stato anche il presidente e coordinatore di diverse com-missioni o gruppi di lavoro dellrsquoEnte Italiano di Unificazione (UNI) e si era resoconto della necessitagrave di una simbologia unificata nelle scienze e nelle tecniche Peril Dizionario di ingegneria aveva esaminato con cura i font di cui disponeva la

209 CONCLUSIONI 393

utet e aveva predisposto un manualetto di regole editoriali di molte pagine nonuna cosetta da poco dove oltre alle regole ortografiche indicate in questo capitoloaveva riportato un interminabile elenco di simboli per indicare virtualmentequalunque grandezza fisica potesse entrare in un dizionario di questo genereAi tempi della prima edizione il Sistema Internazionale non era ancora statoapprovato in fisica regnava lrsquoanarchia piugrave generale fra sistemi lsquocgsrsquo lsquocgsmrsquo lsquocgsersquolsquocgs Gaussrsquo lsquomksa razionalizzatorsquo lsquomksa non razionalizzatorsquo ed altri ancoraEligio Perucca aveva dispiegato una varietagrave di simboli e vi aveva associato unavarietagrave di nomi in modo che il Dizionario potesse contemperare senza confusionetutte le grandezze che fino ad allora erano state chiamate con gli stessi nomi eindicate con gli stessi simboli quando in realtagrave si trattava di cose diverse I fontusati ricorrevano ad ogni possibile serie e ad ogni possibile forma disponibilenella tipografia in cui sarebbe stato composto il Dizionario Si usavano senzasovrapposizioni i font corsivi con grazie i font senza grazie i font gotici rotondisia lrsquoalfabeto latino sia quello greco tutti nelle varianti medie e nere

Questo manuale editoriale fu usato anche per la seconda edizione fu prezio-sissimo sia per gli autori che allora non disponevano ancora dei PC sia per icompositori sia per la redazione Per chi scrive quellrsquoesperienza fu importantissi-ma in particolare gli insegnograve lrsquoimportanza dellrsquoortografia tipografica Chissagrave seegrave riuscito anche a metterla in pratica

Capitolo 21

Il formato PDF archiviabile

In una guida come questa non puograve mancare un capitoletto sul formato PDFarchiviabile Questo formato soddisfa alla norma ISO19005-1 del 2005 chestabilisce particolari restrizioni o specifiche al formato

Come questa Guida nasce essenzialmente come libro elettronico (e-book) cosigraveuna miriade di altri documenti nasce come documenti elettronici che talvoltavengono stampati ma sempre vengono archiviati Come saragrave possibile leggerequesti documenti di archivio di qui a cinquanta anni Ecco questo egrave il motivoper il quale lrsquoISO ha provveduto e emettere le norme per lrsquoarchiviazione deidocumenti elettronici

Sostanzialmente il formato prescelto dallrsquoISO egrave il PDF (Portable DocumentFormat) che giagrave in partenza era nato come uno strumento relativamente apertoma comunque indipendente dalla piattaforma sulla quale ogni documento erastato composto La Adobe che aveva sviluppato questo formato aveva resopubbliche le specifiche in modo che chiunque potesse scrivere programmi diconversione di composizione o di visualizzazione per questo formato

Gli Utenti di TEX ne sono perfettamente consapevoli visto che usano pdftexnato in modo indipendente dalla Adobe usano anche ghostscript nato per leggeree stampare i documenti scritti in formato PostScript e successivamente esteso aleggere e a scrivere (convertire) documenti in formato PDF La collezione deiprogrammi del sistema TEX contiene anche il programma dvipdfm per convertiredirettamente un file in formato DVI in un file corrispondente in formato PDFlo stesso avviene per i vari altri programmi ldquofratellirsquo di pdftex Aleph ConTEXtLuaTEX eccetera Nessuno di questi programmi egrave nato presso la Adobe ma egravestato possibile predisporli grazie al fatto che le specifiche del formato sono adisposizione di chiunque

Era naturale che con queste premesse lrsquoISO si rivolgesse al formato PDFcome base per il formato archiviabile Essa perograve ha imposto che il documentoarchiviabile sia scritto con il linguaggio PDF nella versione 14 e che sia dotatodi altre informazioni che consentano il reperimento dellrsquoinformazione utile con isistemi archivistici piugrave avanzati per esempio esso deve contenere dei metadatache consentano come minimo di ricercare il documento sulla base del suo titoloeo dei suoi autori ancor meglio questi metadata possono contenere anche leparole chiave per eseguire ricerche piugrave mirate

LrsquoISO impone anche che il documento sia indipendente dalle risorse dellrsquoelabo-ratore sul quale viene eventualmente letto dopo molti anni dalla sua archiviazione

395

396 CAPITOLO 21 IL FORMATO PDF ARCHIVIABILE

ovviamente lrsquoelaboratore dovragrave disporre di un lettore di documenti PDF manon necessariamente uno dei lettori esistenti oggi Non basta il documento deveessere autosufficiente anche per quel che riguarda i font con cui egrave composto edeve completamente integrare ogni immagine della quale sia anche ben chiaro ilmodello di colore usato

In sostanza i requisiti minimi richiesti ad un documento archiviabile oltreai metadata per le ricerche di archivio sono che il documento sia leggibileesattamente nella stessa forma in cui era stato composto Questi requisiti minimiconfigurano la specifica PDFA-1b meno restrittiva della specifica PDFA-1ala quale invece richiede che il file PDF sia anche un tagged PDF affincheacute siaestraibile anche la struttura logica del documento indipendentemente dal fattoche questo contenga gli hyperlink interni per la lettura dinamica sullo schermo

Ovviamente la Adobe ha provveduto con il suo programma Acrobat Profes-sional dalla versione 70 in poi a rendere disponibile un certo numero di opzioniper trasformare file nati in formato PDF nei requisiti richiesti dalle norme ISOsia per la variante PDFA-1a sia per quella PDFA-1b Tra le opzioni crsquoegrave anchela possibilitagrave di verificare se un file PDF prodotto esternamente sia giagrave conformeallrsquouna o allrsquoaltra delle due specifiche anzidette eventualmente ne consente lacorrezione in ogni caso ne segnala gli errori e le manchevolezze

In commercio esistono diversi altri programmi di conversione e di verifica maa conoscenza dello scrivente e fino ad oggi (fine 2008) nessuno di quei programmiegrave disponibile gratuitamente salvo ovviamente i programmi del sistema TEXInfatti questo sistema contiene ora (dicembre 2008) le cose necessarie per produrrei file PDFA-1b ma egrave anche affiancato dal programma ghostscript (dalla versione860 in poi) che riesce ad eseguire la conversione in modo diverso ma conformealle specifiche Quello che il sistema TEX non contiene ancora egrave un programma diverifica della conformitagrave e lrsquoutente non puograve fidarsi del fatto che se lrsquoesecuzionedi pdflatex o di ghostscript egrave andata a buon fine allora siano anche rispettatetutte le specifiche della norma ISO

La produzione di un documento archiviabile non fa parte in senso strettodellrsquoArte della Composizione Tipografica tuttavia se un documento egrave statoprodotto con ogni cura e deve essere archiviato egrave importante che il compositoresegua anche quelle norme e quelle procedure che permettono di rispettare lenorme ISO

211 Le immagini

Le immagini incluse in un file archiviabile devono essere tutte conformi allo stessomodello di colore Se si dispone di immagini in vero bianco e nero questo puograveessere accettato insieme agli altri modelli di colore ma solitamente le immaginicon cosigrave poca informazione (ovvero con un contrasto cosigrave alto) sono assai scadentiquindi sarebbe meglio evitarle specialmente se sono ottenute tramite uno scannerEgrave sempre possibile configurare lo scanner utilizzato per evitare lrsquouso di soli duebit per ogni pixel sarebbe meglio configurarlo per un modello di colore a tonalitagravedi grigio (8 bit per ogni pixel) meglio ancora egrave lasciare le impostazioni di defaultche si riferiscono in generale al modello di tricromia additiva RGB (Red GreenBlue) che rendono perfettamente i colori (anche il nero) sugli schermi dove ipuntini luminosi emettono luce corrispondente a quei tre colori fondamentali

212 I FONT 397

Talvolta si egrave portati a pensare alla stampa la quale usa la quadricromiasottrattiva CMYK (Cyan Magenta Yellow blacK ) dove i puntini colorati sonoottenuti depositando particelle piccolissime di colore che riflettono il coloredesiderato assorbendo gli altri colori presenti nella luce bianca con cui vieneilluminato lo stampato Egrave meglio non fare riferimento al modello CMYK ognistampante a seconda del sistema di stampa che usa del tipo di pigmenti coloratieccetera ha il suo convertitore di colore che trasforma il modello additivo RGBin quel che occorre alla stampante per stampare correttamente rendendo i colorial meglio

Per cui tutte le immagini oltre a essere conformi allo stesso modello di coloreegrave bene che facciano riferimento al modello additivo RGB

Questo implica che i metadata contenuti nel file PDF archiviabile menzioninoesplicitamente il modello di colore Ne deve specificare non solo il tipo ma ancheil file che lo descrive questo tipo di file ha estensione icc1

Se una ricerca sui file del proprio PC non presentasse nessun file con estensio-ne icc allora bisogna scaricarsene uno di validitagrave generale si consiglia il sitodellrsquoEuropean Color Initiative (httpwwweciorg) dalla cui pagina di down-load egrave possibile scaricare il file ECI-RGBV10icc e fare riferimento a questofile su qualunque piattaforma Ovviamente questo aspetto della configurazioneandragrave personalizzato da ciascun compositore secondo le sue necessitagrave quanto siegrave detto egrave sostanzialmente una indicazione generale per giunta valida per tutti etre i principali sistemi operativi

Una attenzione particolare va posta nei modelli di colore e nei colori usati peri comandi interni di pdflatex per esempio a chi scrive egrave successo di configurarecon il colore magenta i link alle citazioni bibliografiche constatando che il filenon era conforme alle norme ISO cambiando il colore in blue il file diventavaconforme

Questo succede percheacute in mancanza di configurazioni globali i colori che sipossono usare vengono tratti dai comandi interni che fanno uso del minimo diinformazione necessaria il colore blue egrave uno dei colori fondamentali del modellodi colore RGB mentre il magenta egrave uno dei colori fondamentali del modello dicolore CMYK e da questo viene tratta la codifica interna del colore da usarechiaramente incompatibile con il modello RGB con cui era dichiarato il file etutte le sue immagini Basta usare correttamente i comandi di configurazione delpacchetto color o xcolor o graphicx e il problema svanisce anche con il coloremagenta e gli altri colori fondamentali del modello CMYK

212 I fontI file PDF archiviabili devono contenere tutti i font di cui fanno uso essi devonorisultare tutti Embedded quando se ne guardano le caratteristiche per esempiousando il programma gratuito Adobe Reader e chiedendogli di mostrare le pro-prietagrave del documento In generale i font non vengono incorporati completamentema ne viene incorporato un sottoinsieme (subset cosiccheacute lrsquoapposita finestra delReader indicheragrave Embedded subset) per quei font di cui sono stati incorporati isoli caratteri effettivamente usati nel documento

1File un porsquo anzianotti potrebbero avere estensione icm ma sarebbe meglio evitarli e fareriferimento a file piugrave recenti

398 CAPITOLO 21 IL FORMATO PDF ARCHIVIABILE

Ma attenzione quando si incorpora una figura anche PDF che a sua voltacontiene altri font anche questi devono risultare incorporati Ci si dimenticaassai spesso che le figure prodotte con altri programmi e salvate in formato PDFspesso non incorporano tutti i caratteri in particolare i 35 font che si supponeesistano di default su qualunque macchina capace di visualizzare i file PostScriptoppure gli 11 font che si suppone esistano di default su qualunque macchinacapace di visualizzare2 i file PDF

Bisogna quindi ricordarsi di configurare correttamente i programmi del si-stema TEX affincheacute incorporino tutti i font usati anche quelli di default mabisogna ricordarsi di configurare anche i programmi di disegno affincheacute salvinole loro immagini in un formato che contenga almeno il sottoinsieme dei caratteriusati

I programmi del sistema TEX sono configurati attraverso il file updmapcfgnelle prime diciamo 100 righe ci sono le impostazioni booleane per lrsquoincor-porazione dei font sia per il programma dvips sia per i programmi pdftex edvipdfm per questi ultimi due egrave impostato il valore true per lrsquoincorporazione deifont mentre per il primo lrsquoimpostazione egrave false quindi bisogna per prima cosacambiare questo valore in true e poi rilanciare il programma eseguibile updmapal fine di creare le mappe dei font configurate correttamente

Per le immagini incorporate o si riesce a configurare correttamente il pro-gramma di disegno usato oppure bisogna ricorrere ad un trucco non altrettantoefficace dal punto di vista estetico ma accettabile Il file PDF prodotto esterna-mente puograve venire elaborato con il programma gratuito inkscape chiedendoglidi salvare il risultato di nuovo in formato PDF i font non incorporati ma resivisibili attraverso i font in dotazione a questo programma vengono sostituiticon i loro disegni vettoriali il carattere vettoriale dellrsquoimmagine presente nelfile originale viene conservato ma dopo il trattamento il file ufficialmente noncontiene piugrave nessun font

Questo egrave il primo problema che si presenta con i font il secondo problema egraveche ogni carattere deve avere una larghezza non nulla Sembra ovvio ma le cosenon stanno cosigrave

Infatti specialmente con i font vettoriali (in formato pfb) delle collezionidel sistema TEX alcuni segni matematici vengono composti giustapponendoelementi del loro disegno che talvolta devono sovrapporsi ad altri elementi

Fra i font che presentano questo difetto ci sono tutti i font matematici cmsye i loro parenti di altre collezioni derivati dai font Computer Modern I segniproblematici sono not e mapsto La presenza anche di una sola istanza di unodi questi segni in un file altrimenti ineccepibile rende il file PDF non conformealle norme ISO e non egrave archiviabile anche se a schermo esso appare perfetto

Nella descrizione del pacchetto pdfx di cui si parleragrave fra non molto e nel sitohttpsupportriver-valleycomwikiindexphptitle=Generating_PDFA_compliant_PDFs_from_pdftex vengono suggeriti alcuni modi di aggiustarela situazione chiaramente il lettore puograve seguire quei consigli qui si presenta unasoluzione alternativa non esattamente equivalente ma di validitagrave generale e chenon richiede la ldquomanomissionerdquo dei file appartenenti al sistema TEX se e quandoi curatori di quelle collezioni di font vorranno provvedere ad eseguire nativamentele correzioni necessarie non occorreragrave piugrave ricorrere a nessun aggiustamento

2Qui si usa la parola visualizzare anche quando il processo di visualizzazione consiste nellastampa

212 I FONT 399

Il comando not viene sovrapposto a qualunque operatore matematico direlazione per negarlo tipicamente not= o il suo equivalente neq produce ilsegno = ottenuto sovrapponendo il segno al segno = Ai tempi in cui nacqueil sistema TEX le memorie RAM e i clock che regolavano lrsquoesecuzione delleistruzioni macchina anche nei grossi main frame erano rispettivamente assaimodeste e assai lenti risparmiare su qualunque cosa era importante per cui isegni matematici di relazione negati erano tutti ottenuti in questo modo i fontdellrsquoAmerican Mathematical Society hanno rimediato al brutto aspetto di alcunidi questi segni negati ma il meccanismo egrave rimasto anche per compatibilitagrave con imilioni di documenti scritti in passato anche oggi che sono passati 30 anni dallanascita del sistema

Purtroppo il segno not privo di dimensioni orizzontali non egrave accettabiledalle norme ISO per cui bisogna provvedere a sostituirlo con un trucco diprogrammazione base di TEX consistente nel comando primitivo mathchoicequesto comando per ciascuna delle quattro modalitagrave di composizione dellamatematica (in display in linea con il testo indici primi indici secondi) offrequattro modalitagrave distinte di operazione che vengono specificate ordinatamentenei suoi quattro argomenti La ldquocorrezionerdquo ricorre a comporre dentro una scatoladi larghezza nulla una barra di dimensioni orizzontali non nulle specificandoneuna dimensione diversa per ciascuno dei quattro modi Ecco il codice dove sisono volutamente incolonnate le corrispondenti graffe aperte e chiuse in mododa rendersi conto piugrave facilmente delle quattro scelte

renewcommandnotmathrel

mathchoicerlap$displaystylemkern25mumathnormal$rlap$textstylemkern25mumathnormal$rlap$scriptstylemkern25mumathnormal$rlap$scriptscriptstylemkern25mumathnormal$

Il comando rlap (right overlap) serve per comporre una scatola di larghezzanulla il cui contenuto si sovrappone a qualunque cosa si trovi alla sua destrasiccome al suo interno il modo di composizione torna ad essere quello testualebisogna riattivare il modo matematico e al suo interno per ciascuna delle quattromodalitagrave di composizione bisogna specificare lo stile di composizione rispet-tivamente mediante i comandi displaystyle textstyle scriptstyle escriptscriptstyle Il comando mathrel serve a specificare che il comandonot egrave un operatore di relazione mentre mathnormal serve per scegliere il fontmatematico da cui trarre la barra

Il comando mapsto di per seacute non sarebbe problematico e produce il segnorarrIl problema nasce dalla sua coda che egrave definita con una dimensione orizzontalenulla non egrave chiaro il motivo in quanto esso compare solo nella definizione dimapsto sarebbe stato forse preferibile disegnare il segno direttamente senzaricorrere alla coda di larghezza nulla aggiunta ad una freccia normale chissagraveforse nelle prime versioni del sistema TEX questo segno serviva anche ad altro Ilfatto egrave che esso non egrave accettabile in un file conforme allo standard PDFA

400 CAPITOLO 21 IL FORMATO PDF ARCHIVIABILE

In questo caso si egrave preferito usare i comando rule di LATEX ahimegrave questasoluzione egrave usabile solo con LATEX e ne egrave escluso lrsquouso con TEX3 Tuttavia questa Guida si riferisce allrsquouso di LATEX per comporre tipograficamente in modoeccellente La soluzione trovata ricorre ancora a mathchoice ma il segno egraveottenuto con dimensioni diverse per i quattro modi di composizione distinti

renewcommandmapstocharmathrelmathchoicerlaprule[05ex]1ex1exmkern-5murlaprule[05ex]1ex1exmkern-5murlaprule[035ex]08ex75exmkern-5murlaprule[025ex]065ex55exmkern-5mu

I numeri ldquomagicirdquo usati servono per legare lo spessore del segno e la posizioneprecisa a seconda dello stile di composizione matematico sono tutti valori ricavatisperimentalmente e ovviamente non si tratta di prescrizioni immutabili mavanno adattate anche a font diversi da quelli qui ipotizzati dei simboli matematicidella collezione Computer Modern

Queste due soluzioni non toccano i font originali possono essere inseritein un file di opzioni personali da usare sempre o soltanto quando si devonoprodurre file PDF archiviabili Speriamo solo che in un lasso di tempo ragionevolequeste correzioni o meglio correzioni piugrave professionali vengano apportate ai fontoriginali e vengano ridefiniti i comandi di generazione di questi segni in modoche il risultato finale sia lo stesso ma sia anche compatibile con il formato PDFarchiviabile

Al contrario potrebbe succedere che altri file che fanno uso di altri fontpossano dare luogo a problemi simili a seconda della diagnosi eseguita (oggi)con Acrobat Professional ci si comporteragrave adeguatamente ma in modo analogoa quanto descritto sopra

213 Gli hyperlinkAnche gli hyperlink possono dare dei problemi ma il pacchetto hyperref accettaora la nuova opzione pdfa che consente di evitare questi problemi Lrsquounico cheresta egrave quello di ricordarsi di specificare lrsquoopzione A questo scopo il pacchettopdfx provvede da solo ma se per qualche motivo non fosse possibile usarepdflatex non si potrebbe usare pdfx e bisognerebbe passare attraverso il formatoPostScript e a ghostscript in questo caso bisogna ricordarsi di specificare benelrsquoopzione alla chiamata esplicita di hyperref

Vale la pena di ricordare che nel formato PDFA gli hyperlink internicontinuano ad essere attivi ma gli hyperlink verso indirizzi esterni pur restandocolorati come qualunque altro hyperlink sono disattivati la ratio di questalimitazione egrave che giagrave oggi si incontrano molti hyperlink che non funzionano piugraveprobabilmente fra cinquanta anni nessuno degli indirizzi internet oggi esistentisaragrave piugrave valido Sarebbe quindi perfettamente inutile indirizzare i lettori versoindirizzi lsquomortirsquo Bisogna tenere conto di questo fatto specialmente quando siscrivono i riferimenti nella bibliografia o nel testo in modo da evitare riferimentiad indirizzi internet esterni

3O meglio il comando rule di LATEX deve venire sostituito dal comando vrule di TEXcorredandolo delle necessarie specificazioni di altezza larghezza e profonditagrave

214 GENERAZIONE DI UN FILE PDF ARCHIVIABILE 401

214 Generazione di un file PDF archiviabileAffrontati i problemi a cui bisogna porre attenzione (che riflettono un porsquo anchela strada tortuosa che chi scrive ha dovuto scoprire ldquosperimentalmenterdquo vistoche la documentazione era e resta (per ora) spiacevolmente carente) non restache procedere alla generazione di un documento in formato PDF archiviabile

2141 La strada maestra

La strada maestra egrave quella di usare pdflatex richiamando il pacchetto pdfxQuesto pacchetto egrave recentissimo se ne suggerisce lrsquoinstallazione e la letturaattenta della sua documentazione tenendo conto anche di ciograve che egrave detto qui

Il pacchetto solo in congiunzione con con pdflatex serve per produrre filein formato PDFA-1b se gli specifica lrsquoopzione a-1b oppure file in formatoPDFX-1a se gli specifica lrsquoopzione x-1a il formato PDFA-1b egrave quello che ciinteressa qui Il formato PDFX-1a serve per rispettare unrsquoaltra norma ISOindirizzata alla conformitagrave dei file stampabili le problematiche sono simili mai file stampabili sono completamente orientati al modello di colore CMYK edispongono di una serie differente di metadata

Siccome il pacchetto pdfx carica a sua volta il pacchetto hyperref con legiuste opzioni a seconda dei formati esso pdfx deve essere invocato per ultimonel preambolo del documento archiviabile o per ultimo nel file di classe deldocumento ne consegue che eventuali personalizzazioni dei comandi relativiallrsquoaspetto degli hyperlink devono venire eseguiti subito dopo la chiamata dipdfx vale a dire alla fine del preambolo se il pacchetto viene invocato per ultimonel preambolo oppure allrsquoinizio del preambolo se la chiamata del pacchettoviene eseguita alla fine del file di classe

Bisogna perograve almeno la prima volta configurare il file pdfxsty in mododa invocare il modello di colore giusto a meno che non si voglia usare quellodi default Contrariamente al solito egrave esplicitamente consentito personalizzareil file pdfxsty ma a causa di ciograve esso e i suoi file accessori devono esseremontati in una cartella dellrsquoalbero personale altrimenti al primo aggiornamentodel sistema TEX ogni personalizzazione viene persa Per altro se sulla stessamacchina operano diverse persone ognuna ha il suo albero personale e ognuna egravelibera di usare il modello di colore che vuole

Si egrave suggerito di caricare il modello di colore descritto mediante il fileECI-RGBV10icc percheacute il pacchetto pdfx lo possa trovare ed usare egrave neces-sario che esso si trovi sul percorso di ricerca il posto migliore egrave proprio la stessacartella dove si trova il pacchetto Ci si ricordi lo si ripete di personalizzare ilpacchetto pdfx scrivendo il nome da solo o il nome con lrsquoestensione nei puntidove il file originale pdfxsty lo richiede

Il punto essenziale che invece non bisogna dimenticare serve per impostare imetadata relativi al documento da archiviare Questo va fatto evidentementeper ogni documento da archiviare e sempre con dati diversi La cosa migliore dafare egrave quella di scrivere ogni volta un file con estensione xmpdata e con il nomecoincidente con il file principale (o unico) che contiene il testo sorgente tex dacomporre Nel caso di questa Guida per esempio il cui file principale si chiamaGuidaGuITtex bisogna predisporre un file dal nome GuidaGuITxmpdata e conil contenuto corrispondente alla sintassi seguente

402 CAPITOLO 21 IL FORMATO PDF ARCHIVIABILE

Title〈Titolo del documento〉Author〈Lista degli autori〉Keywords〈lista delle parole chiave〉Org〈Organizzazione cui appartengono gli autori〉

Si possono inserire anche altri comandi (tutti inizianti con una lettera maiuscola)e se ne puograve vedere lrsquoelenco completo nella documentazione del pacchetto pdfx(oltre che nel suo listato sempre molto istruttivo)

Non crsquoegrave molto da dire sul significato degli argomenti si noti che la lista delleparole chiave sarebbe meglio che fosse una lista strutturata non semplicementeuna lista di parole separate da virgole tenuto conto che lrsquoapertura e la chiusuradella struttura sono giagrave inserite di default quello che serve egrave solo mettere idelimitatori fra una parola chiave e lrsquoaltra la sintassi egrave la seguente

〈prima chiave〉ltrdfligtltrdfligt〈seconda chiave〉ltrdfligtltrdfligt 〈penultima chiave〉ltrdfligtltrdfligt〈ultima chiave〉

Attenzione qui si egrave indicato con il segno di commento lo spezzamento dellariga ma sarebbe meglio non andare mai a capo e scrivere tutte le parole diseguito diventeragrave una riga lunga quella delle parole chiave ma si egrave piugrave sicuri dinon introdurre caratteri spuri ricordiamo che quanto si scrive qui in una formapraticamente identica va a finire nella sezione dei metadata del file PDF e quindideve rispettare scrupolosamente le convenzioni del mark-up chiamato XMPche egrave un sottoinsieme del linguaggio XML Chi conosce come manovrare con ilmark-up di LATEX non necessariamente padroneggia anche il mark-up XML

Fatto questo bisogna eseguire pdflatex quante volte occorre per soddisfareanche le esigenze della bibliografia e dellrsquoindice analitico e poi bisogna sottoporrea verifica di conformitagrave il file ottenuto Scaramanticamente sarebbe opportunoincrociare le dita Non si dispone ancora di abbastanza esperienza per sapere sesi egrave riusciti ad evitare tutti i trabocchetti con le immagini i colori e i font chepotrebbero produrre un file non conforme Tuttavia chi scrive ha giagrave prodottodiversi file archiviabili e ormai ha sviluppato una piccola esperienza che glipermette di affermare che se si seguono le procedure descritte sopra le possibilitagravedi incontrare problemi di conformitagrave sono ridotte in ogni caso si egrave indicata lastrada per affrontare alcuni problemi con i font e con i file inclusi

2142 Trasformazione di un file PDF o di un file PSIl programma ghostscript permette di convertire un file PS in un file PDF e lrsquounoe lrsquoaltro in file conformi agli standard PDFA-1b oppure PDFX-1a Attenzionequesta possibilitagrave di conversione si ha dalla versione 860 in poi

La documentazione di ghostscript relativa a queste trasformazioni lascerebbeintendere che si possa usare il programma ps2pdf ma chi scrive ha sperimentatoche non egrave propriamente cosigrave in ogni caso il lavoro vero lo fa ghostscript e ilrisultato puograve essere conforme agli standard con la stessa probabilitagrave che si hausando pdflatex

Per non dimenticare per la strada uno qualsiasi dei comandi o delle opzionio dei file che ghostscript richiede egrave meglio confezionarsi un comando mediante

214 GENERAZIONE DI UN FILE PDF ARCHIVIABILE 403

un file bat per le macchine Windows oppure uno script bash per le macchineUNIXLinuxMac OS X

Per le macchine Windows il file per trasformare i file PDF in file PFDApotrebbe chiamarsi pdf2pdfabat dovrebbe trovarsi sul percorso di ricerca deifile e dovrebbe contenere quanto segue

echo offrem procedura batch per lanciare gswin32c per trasformarerem un file PDF in un file PDFArem QUANTO SEGUE DEVE ESSERE SCRITTO SU UNA SOLA RIGAgswin32c -dPDFA -dNOOUTERSAVE -dUseCIEColor -sDEVICE=pdfwrite-sProcessColorModel=DeviceRGB -o 1-apdf PDFA_defps 1pdf

Per trasformare un file PS basta scrivere unrsquoaltra procedura identica a quellaappena illustrata ma con il nome per esempio ps2pdfabat dove si usalrsquoestensione ps nellrsquoultimo elemento del lungo comando

Per le macchine UNIXLinuxMac OS X lo script bash potrebbe esserecontenuto in un file al quale si potrebbe dare il nome pdf2pdfa senza scordarsidi dichiararlo eseguibile (chmod 755 pdf2pdfa) e di collocarlo in una cartellache si trovi sul percorso di ricerca il suo contenuto non egrave molto diverso da quelloscritto per le piattaforme Windows semplicemente sfrutta la migliore sintassidel linguaggio di scriting Bash esso egrave il seguente

binbashfile1=$1pdffile2=$1-apdf QUANTO SEGUE DEVE STARE SU UNA SOLA RIGAgs -dPDFA -dNOOUTERSAVE -dUseCIEColor -sDEVICE=pdfwrite-sProcessColorModel=DeviceRGB -o $file2 PDFA_defps $file1

Per trasformare un file PS basta creare uno script del tutto simile chiamatoper esempio ps2pdfa dove si egrave sostituita con lrsquoestensione ps quella del file cheserve per definire la variabile file1

Lrsquouso dellrsquouna o dellrsquoaltra procedura egrave molto semplice basta usare la finestracomandi e dare il comando

pdf2pdfa 〈nome file senza estensione〉

Ma non basta prima di mandare in esecuzione il programma ghostscript pereseguire la trasformazione bisogna aver predisposto un file PDA_defps nellacartella dove risiede il file da convertire Il contenuto di questo file egrave dupliceserve per definire il DeviceRGB e serve per introdurre i metadata necessari Bastaprendere il file con lo stesso nome dalle cartelle dove si trovano i file che fannoparte della distribuzione di ghostscript copiarlo nella cartella che interessa il fileda trasformare e usarlo come template per inserire le informazioni necessarie

Ci sono tre righe che contengono il commento Customize Queste righesono da modificare o da ampliare secondo le proprie necessitagrave Attenzione il filein questione egrave un file di puro testo ma ha lrsquoestensione ps questa estensionedi solito egrave associata a programmi di resa grafica dei file PostScript in questocaso si tratta di un file di puro testo scritto in linguaggio PostScript e deve

404 CAPITOLO 21 IL FORMATO PDF ARCHIVIABILE

venire aperto con un editor che non faccia danni va benissimo lrsquoeditor con ilquale normalmente vengono scritti i file sorgente tex

Le righe che devono essere personalizzate devono venire modificate cosigrave

bull La riga che contiene il testo

ICCProfile (ISO Coated sbicc) Customize

va commentata premettendovi un segno e subito dopo ne va inseritaunrsquoaltra adeguata

ICCProfile (ISO Coated sbicc) Customize per macchine WindowsICCProfile (CiccECI-RGBV10icc) oppure per macchine UNIXLinuxMac OS XICCProfile (~iccECI-RGBV10icc)

Si egrave supposto a titolo di esempio che il file sia stato salvato in unacartella di nome icc ma non egrave importante dove sia conservato il filepurcheacute nel precedente comando vi sia il percorso completo a partire se nondalla radice del disco almeno dalla propria ldquoHomerdquo concetto che egrave ormaiacquisito anche nelle macchine Windows anche se il suo percorso puograveessere assai diverso da quello delle macchine UNIX o simili Ovviamentenella personalizzazione indicata sopra si useragrave la sintassi per macchineWindows o per le altre macchine a seconda di quale macchina si sta usando

bull La riga che contiene il testo

[ Title (Title) Customize

va adeguata al file specifico che si sta convertendo per esempio pertrasformare il file di questa Guida si possono usare le righe seguenti

[ Title (Introduzione allrsquoarte della composizionetipografica con LaTeX)

Author (Gruppo Utilizzatori Italiani di TeX e LaTeX)Subject (Manuale di istruzioni per usare LaTeX

consapevolmente)

Si possono inserire altre informazioni per esempio una lista di parole chiaveper facilitare le ricerche di archivio ma quelle relative al titolo e allrsquoautoresono il minimo necessario

bull Il terzo punto da personalizzare egrave quello che corrisponde alla riga

OutputConditionIdentifier (CGATS TR001) Customize

215 CONCLUSIONI 405

ma qui non egrave necessario intervenire se non per inserire altre informazionidi cui si conosce la sintassi e il significato Probabilmente questa rigariguarda la trasformazione nel formato PDFX ma non interferisce con latrasformazione PDFA

Con queste personalizzazioni e con le procedure indicate sopra la conversioneprocede spedita e con una ragionevole probabilitagrave di successo i problemi che sipossono presentare in sede di verifica sono gli stessi sostanzialmente di quelliche si presentano lavorando con pdflatex

215 ConclusioniIl lettore non si scoraggi per la relativa rusticitagrave delle procedure per la composi-zione diretta o per la trasformazione di file esistenti in file conformi alla specificaISO19005-12005

Il problema egrave difficile e oggi (fine 2008) siamo appena gli inizi della necessitagravedi archiviare documenti in forma conforme alla specifiche normative

Si tenga presente che gli stessi problemi si pongono con la suite MicrosoftOffice 2007 e con OpenOfficeorg nella versione 3x persino il programma principedella Adobe Acrobat Professional versione 8x incontra i suoi problemi

A chi scrive (e che si egrave giagrave fatto una piccola esperienza in merito) appare piugravecorretto non nascondere le difficoltagrave e i problemi che non proporre agli utentispesso acquirenti che sborsano cifre non trascurabili programmi che non possonofare piugrave di tanto e che non centrano il bersaglio piugrave spesso di quanto non sicreda

Dispiace che il bersaglio non sia sempre centrato nemmeno con OpenOfficeorgche se non altro ha due pregi (a) fin dai suoi inizi ha usato come formato didefault quello con il mark-up XML e (b) si tratta di un programma gratuito inmano alla comunitagrave degli utenti non molto diversamente da quel che succedecon il sistema TEX pur restando su un terreno ben diverso4 Egrave quindi un peccatoche anche OpenOfficeorg sia scivolato su questa questione senza una parola diavviso relativa alla difficoltagrave di salvare file veramente conformi alla norma ISO

4La matematica egrave sempre stato un problema difficile da affrontare con programmi di tipoWYSIWYG OpenOfficeorg ha perograve un plug-in che consente di comporre le formule con LATEXegrave sulla buona strada ma se uno deve avere sulla propria macchina anche il sistema TEX percomporre le formule di OpenOfficeorg a che cosa serve usare OpenOfficeorg Solo per poterusare la tecnica WYSIWYG Per altro non so se la notizia sia vera ma sembra che il nostroGrand Wizard Donald E Knuth abbia collaborato con la Microsoft per lrsquoimplementazione delnuovo equation editor della versione 2007 di MS Office Ultima notizia ancora semiufficialereperibile in merito alla descrizione del plug-in Writer2TeX di OpenOfficeorg ora egrave ancoranella versione beta ma egrave giagrave scaricabile dal sito questo plug-in che consentirebbe di usare lacomponente Writer di OpenOfficeorg come editor quasi WYSIWYG per produrre direttamenteun file con il mark-up di LATEX con i bottoni per eseguire la composizione sia con latex sia conpdflatex e poi di eseguirne la visualizzazione su schermo forse Writer vuole sostituire LYXPuograve darsi e tutto sommato non sarebbe un male purcheacute il file LATEX prodotto sia un fileefficace ed efficiente Per ora (giugno 2010) la versione beta di questo plug-in non egrave ancoracompletamente affidabile Egrave difficile dire se questa soluzione sia un vantaggio per gli utenti diLATEX ma il futuro ce lo diragrave Si veda quanto esposto piugrave avanti nel capitolo 22

Capitolo 22

Comporre da documentiesterni

Un problema che sorge spesso consiste nel comporre unrsquoopera collettiva dove ivari autori scrivono usando programmi diversi del tutto simile egrave la situazione dicolui che si trova nella difficile situazione di dover comporre un testo scritto daun altro autore che ha usato uno strumento ldquoscrittoriordquo diverso da LATEX

Occorre convertire il formato dei testi sorgente per introdurli nellrsquounicomaster file del documento LATEX o piugrave frequentemente per creare nuovi file dafar leggere al master file

Lrsquoevento piugrave frequente egrave quello che richiede di aggiungere il mark-up di LATEXin un file relativo ad un documento scritto inizialmente con un word processor

Naturalmente potrebbe anche succedere di dover fare conversioni opposte daLATEX ad un altro formato Qui non si tratteranno queste conversioni ci si limitaa citare il programma TeX4ht generalmente facente parte di ogni distribuzionedel sistema TEX non minimale o di base Questo programma puograve convertire nelformato HTML un documento scritto con il mark-up della versione standard diLATEX cioegrave che non faccia uso di pacchetti di estensione generici in particolareche non faccia uso di macro personali del compositore Chi lrsquoha usato ne diceun gran bene ma sottolinea la limitazione fondamentale che il file da convertiredeve essere strettamente conforme al linguaggio LATEX di base qual egrave descrittonella guida di Lamport [29]

Drsquoaltra parte questa Introduzione tratta della composizione tipografica conLATEX quindi appare del tutto ragionevole esaminare come si possa creare undocumento compilabile con pdflatex partendo da una varietagrave di documenti divaria origine

221 Conversione manualeLa conversione manuale si puograve dire che richieda non poca fatica ma egrave applicabilequalunque sia lrsquoorigine dei documenti da comporre assieme Di solito si trattadi documenti scritti facendo uso di un word processor come Microsoft WordStarOffice Writer o il Writer della collezione OpenOfficeorg (fratello di StarOfficema con le caratteristiche del software Open Source) potrebbero essere documentiin formato PDF oppure documenti in rete in formato HTML potrebbero essere

407

408 CAPITOLO 22 COMPORRE DA DOCUMENTI ESTERNI

scansioni di documenti stampati potrebbero essere persino dei manoscritti nelsenso letterale del termine documenti scritti a mano Insomma il formato delleinformazioni da elaborare puograve essere veramente eterogeneo

Mentre un documento Word o Writer potrebbe venire convertito facendo usodi opportuni programmi gli altri formati potrebbero essere difficili da elaborarein modo automatico per altro esistono diversi strumenti che consentono dieseguire alcune operazioni preliminari che facilitano non poco lrsquoelaborazionemanuale

Per i documenti HTML o si toglie il mark-up specifico di quel formato oppurebisogna convertire il file HTML in un altro file con il formato XML o anche doce poi procedere con i programmi che verranno esaminati nei prossimi paragrafi

I documenti scanditi1 possono essere elaborati attraverso un apparato eun programma di Optical Character Recognition (OCR) sostanzialmente siscandisce di nuovo una stampa del file grafico frutto della prima scansioneordinando allo scanner di eseguire il riconoscimento dei caratteri il risultato puograveessere molto buono o decisamente deludente dipende da quanto era stata accuratala prima scansione e dipende molto dal tipo di caratteri usati il riconoscimentoautomatico riesce meglio con certi caratteri piuttosto che con altri In ogni casoil file in formato txt (da preferire anche se lo scanner puograve produrre ancheun file in formato doc) contiene molti errori di ortografia dovuti al mancatoriconoscimento di certi caratteri e quindi richiede di essere rivisto e corretto conattenzione

Le immagini presenti nella scansione originale possono solitamente venireestratte sperando di non degradare troppo la loro qualitagrave altrimenti devonovenire eseguite ex novo tutte le immagini costituite da disegni al tratto mentreper le fotografie o si puograve accedere agli originali oppure bisogna accontentarsiPer altro questo egrave un problema comune anche quando si deve trasformare un fileoriginario in formato doc

Comunque ultimati questi preparativi possiamo supporre di avere a dispo-sizione il testo da trasformare in formato di testo semplice oppure di testoformattato contenente eventualmente immagini tabelle formule cambiamentidi stile dei font cambiamenti di margini e simili il testo insomma potrebbeessere in formato txt oppure doc o rtf oppure pdf sigrave anche in formatoPDF ogni visualizzatore di questo formato anche il semplice Adobe Readerpermette di selezionare il testo e di copiarlo per incollarlo altrove bisogna sem-plicemente scegliere dalla barra superiore lo ldquostrumentordquo per selezionare il testogeneralmente caratterizzato da una icona a forma di T

Qualunque metodo si usi per trasformare il file bisogna ricordarsi che undocumento puramente testuale non contiene nessuna informazione descrittivadel testo un file formattato oltre al testo contiene informazioni solamenteriguardanti il modo di apparire non quello che esso rappresenta veramente ilsuo modesto mark-up contiene solo poche informazioni sulle immagini le tabellele formule i font ma raramente contiene informazioni sul tipo di contenuto

1Questo libro non egrave certo un modello di purezza linguistica tuttavia il curatore si rifiuta diusare scannerizzare oppure scansionare bencheacute siano i termini piugrave usati Il verbo scandire e ilsostantivo che ne deriva scansione rendono in italiano esattamente la stessa idea Il nomescansione era giagrave usato 50-60 anni fa per descrivere il movimento del pennello elettroniconei cinescopi per eccitare sequenzialmente tutte la particelle fotoluminescenti che avrebberoprodotto lrsquoimmagine televisiva Egrave esattamente il movimento del raggio luminoso che illuminasequenzialmente lrsquoimmagine da scandire nellrsquoapparecchio che ha il nome tecnico inglese discanner ma per il quale il sostantivo italiano scanditore farebbe ridere tutti

221 CONVERSIONE MANUALE 409

di un brano di testo diversamente da come fa LATEX Questo significa chequeste informazioni vanno aggiunte a mano dalla persona che si occupa dellatrasformazione anche se per alcune parti di questa operazione si avvale distrumenti automatici questi faranno il possibile ma certamente non potrannoaggiungere informazioni che dipendono dalla comprensione del testo se non sonocomprese nel mark-up interno del documento Bisogna ricordarsene anche quandosi discuteragrave della conversione ldquosemiautomaticardquo

Ciograve premesso e ben consci del lavoro necessario per una buona conversionevediamo come eseguire la conversione completamente manuale

2211 Copia e incollaSembra semplice dire che si esegue la trasformazione manuale con la tecnica delcopia e incolla concettualmente non crsquoegrave nientrsquoaltro da fare ma ci sono alcuneoperazioni che conviene tenere presenti

1 Bisogna predisporre o un master document o comunque una intelaiaturadel file LATEX nel quale avverragrave la conversione dalla dichiarazione dellaclasse alla specificazione dei pacchetti che si intende o si prevede di doverusare fino allrsquointelaiatura dellrsquoambiente document da riempire via via con iltesto da comporre Se occorressero altri pacchetti li si puograve sempre invocarein un secondo tempo ma egrave meglio aver studiato prima il documento daconvertire per farsi un piano di lavoro destinato agli interventi da eseguire

2 Conviene procedere un capoverso alla volta lo si copia dalla finestra dellrsquoap-plicativo che consente di visualizzare il formato del documento da convertiree lo si incolla nella finestra di input del file LATEX Se crsquoegrave qualche interventoda fare lo si esegue subito per esempio per mettere in enfasi alcune paroleintrodurre le virgolette giuste o i caporali giusti eventualmente cambiandole virgolette copiate (vedi piugrave avanti i cambiamenti necessari per i caratterinon ASCII) eseguire lrsquoimpostazione delle formulette matematiche in lineae simili piccoli interventi che proprio percheacute piccoli sfuggirebbero se sicopiasse lrsquointero documento in un colpo solo

3 Per le figure bisogna estrarle dal documento se non si dispone di fileappositi nel caso della composizione di un testo ldquonuovordquo tutta questaoperazione potrebbe essere dovuta allrsquoautore che non conosce LATEX eche consegna al compositore il testo scritto per esempio con Word epur avendo inserito le figure nel file doc ha consegnato al compositoreanche le foto e le altre illustrazioni mediante file appositamente allegati Senon fosse cosigrave il compositore risparmieragrave molto tempo se richiede questomateriale allrsquoautore ricordando che per il materiale a matrici di pixel comele fotografie la densitagrave di punti al pollice deve essere almeno di 300 dpi

Se invece non si dispone delle illustrazioni originali estrarle dal documentovuol dire perdere enormemente in dettaglio e si egrave fortunati se si riesce adestrarre immagini a 100 dpi la qualitagrave scende vistosamente approssimati-vamente in proporzione al quadrato del rapporto delle densitagrave scendereda 300 dpi a 100 dpi vuol dire perdere in qualitagrave di un fattore di circa 10volte

410 CAPITOLO 22 COMPORRE DA DOCUMENTI ESTERNI

4 Per le tabelle si puograve procedere sia ricomponendo ogni tabella cella percella reimpostandola in modo piugrave professionale oppure la si puograve copiareintegralmente e dopo averla incollata se il proprio shell editor lo consentesi possono eseguire le sostituzioni di tutti i caratteri ltTABgt (ASCII 09)con il carattere amp ricorrendo alle regular expressions un modo avanzato diusare gli shell editor che consente di fare delle correzioni selettive anchemolto elaborate Bisogna poi marcare i fine riga della tabella con eeventualmente inserire qualche filetto

5 Per le formule nel testo si egrave giagrave detto per quelle in display o le si ricomponea mano partendo da zero oppure puograve succedere che lrsquoequation editor usatoper comporre il file da trasformare abbia salvato oltre allrsquoimmagine dellaformula anche il codice usato per comporla allora conviene copiare questocodice che spesso e volentieri egrave codice TEX o gli assomiglia molto Lacollezione di programmi da ufficio OpenOfficeorg dispone di un plug inche mette a disposizione dellrsquoutente un equation editor basato su LATEX ilcodice LATEX quindi puograve essere copiato e incollato direttamente Se si hala competenza per farlo si possono anche correggere gli errori delle formuleda trasferire sul documento LATEX sempre prendendone nota e informandolrsquoautore per chiedere conferma della correttezza della correzione Se noncrsquoegrave autore a cui chiedere al massimo si puograve ripetere la formula originalesenza correzione inserendo la formula corretta in nota accompagnata dauna frase adeguata

6 Le note vanno copiate e incollate durante la lavorazione dei singoli capoversiegrave molto piugrave difficile inserire le note alla fine dopo aver sistemato lrsquointerotesto non egrave complicato percheacute basta incollare il testo della nota fra le duegraffe che delimitano lrsquoargomento di comando footnote

Egrave molto piugrave delicato convertire le note di tipo umanistico per i riferimentibibliografici come egrave noto gli umanisti sono soliti annotare i riferimentibibliografici in calce alla pagina usando il meccanismo delle note questomeccanismo per conservare spazio usa spesso abbreviazioni di tipo Ibidemoppure loc cit per riferirsi allrsquoopera citata immediatamente prima oppurenon sequenzialmente ma nella stessa pagina Queste note vanno trattatecon comandi cite ben congegnati e in accordo con gli appositi stilibibliografici per la bibliografia Di conseguenza questo genere di note vaconvertito avendo bene chiaro in mente il tipo di stile bibliografico e il tipodi citazione in modo da usare il pacchetto adatto ad affrontare questo tipodi composizione

7 Per i caratteri non ASCII si puograve procedere capoverso per capoverso oppurealla fine dellrsquointroduzione dellrsquointero testo da convertire qui le esigenze sonoopposte a quelle suggerite sopra per procedere un capoverso alla volta Infat-ti i caratteri da convertire sono sorprendentemente numerosi specialmentequando si converte un file originariamente scritto in formato doc

Naturalmente egrave possibile affrontare il problema con un opportuno encodingdei caratteri in input e un altrettanto opportuno encoding del font concui comporre Probabilmente questo egrave un caso in cui usando sia per il file

221 CONVERSIONE MANUALE 411

sorgente sia per il font da usare in uscita lrsquoencoding utf-82 si risparmiamolto lavoro Chi scrive ha giagrave convertito un numero non indifferente didocumenti lavorando ldquoa manordquo ma ha sempre evitato di usare la codificautf-8 I motivi sono molteplici alcuni giustificati altri difficili da spiegarenel senso che si potrebbero riassumere nellrsquoantico proverbio ldquoChi lascia lavia vecchia per la nuova sa quel che lascia e non sa quel che trovardquo Nonmolto intelligente ma probabilmente nessuno egrave indenne da questo tipo diragionamentiTra le altre cose bisogna disporre di uno shell editor capace di gestire lacodifica utf-8 per molti anni chi scrive ha usato WinEdt che non erain grado di gestire questa codifica Oggi gli shell editor capaci di gestirequesta codifica sono numerosi tuttavia anche con questi editor non egrave banaleintrodurre i segni non presenti in tastiera egrave vero con questa codifica si puogravescrivere anche in cinese ma bisogna disporre di una adeguata interfacciaper scegliere gli ideogrammi da inserire nel testo in modo che non sianecessario ricercare lrsquoideogramma voluto in una enorme tabella che elencale decine di migliaia di ideogrammi disponibiliQuesto problema egrave molto ridotto con gli alfabeti latini tuttavia anchecon questi alfabeti i segni non letterali o paralfabetici che potrebbe esserenecessario gestire sono molto numerosi Un breve elenco non guasta

bull lrsquoapostrofo spesso egrave un carattere speciale leggermente inclinato nonverticale come appare sullo schermo quando si usano i caratteri ASCII

bull Le virgolette alte sono spesso virgolette simmetriche () invece cheasimmetriche (ldquo e rdquo) talvolta sono correttamente asimmetriche masono rappresentate dagli appositi caratteri non ASCII che general-mente non sono accettabili direttamente con un encoding come quellosuggerito in tutto questo testo (latin1) esse vanno quindi convertitenelle apposite sequenze delle legature lsquolsquo e rsquorsquo oppure sostituite conmacro che svolgano correttamente il loro lavoro dietro le quinte

bull Non egrave il caso di preoccuparsi per gli apici delle note questi vengonodirettamente sostituiti e rigenerati quando viene usato il comandofootnote

bull Sono invece da gestire adeguatamente gli apici di nota eseguiti me-diante caratteri paralfabetici come lrsquoasterisco la spada la doppiaspada eccetera in questi casi conviene ricorrere ad appositi pacchettiche consentono di gestire agevolmente la composizione delle note Ladocumentazione fornita con il sistema TEX offre diversi pacchetti eognuno sceglieragrave quello che risulta maggiormente adatto alle proprieesigenze

bull Talvolta egrave presente il segno dei gradi piugrave raramente le frazioni abarra del tipo 12 34 e simili Il segno dei gradi potrebbe risultarecompatibile con lrsquoencoding latin1 ma si ritiene che per ldquopuliziardquo siameglio renderlo correttamente con la sua rappresentazione mediante

2La codifica in input per usare lrsquoencoding utf-8 egrave ottenuta specificando lrsquoopzione utf8 perlrsquouscita sarebbe preferibile usare font codificati in UNICODE per questo egrave molto meglio usareil programma X ETEX oppure luatex che gestiscono direttamente i font contenenti piugrave di 256caratteri le versioni come X ELATEX e lualatex che contengono la parte La sono generalmentecompatibili con il mark-up di LATEX

412 CAPITOLO 22 COMPORRE DA DOCUMENTI ESTERNI

i segni disponibili con LATEX che dispone di textdegree per lacomposizione testuale e ^circ per la matematica si egrave giagrave espostonei capitoli precedenti come definire nuovi comandi che consentanodi automatizzare la scelta fra modo testo e modo matematico Peraltro se si parla di gradi Celsius3 C bisogna correttamente inserirelo spazio fine che invece non bisogna inserire quando si parla di gradildquoangolarirdquo si confronti lrsquoangolo di 30 con la temperatura di 30 C

bull Gli apici a e o degli ordinali femminili e maschili vanno sostituitianche questi con gli appositi comandi disponibili con lrsquoopzione italiandi babel apa e apo

bull I deponenti (e i rari ascendenti) da comporre con un carattere noninclinato in modo matematico vanno comunque corretti tutti quantiegrave difficile che chi ha scritto un documento con Word o con Writerabbia avuto lrsquoattenzione di distinguere con il font giusto i deponentiattributivi dai pedici letterali ldquovariabilirdquo questa correzione comunquenecessaria richiede la comprensione della matematica da parte delcompositore

bull Certamente si possono presentare altri caratteri non ASCII nei filesorgente ma quelli piugrave frequenti sono quelli illustrati sopra Per altronon bisogna preoccuparsi delle lettere accentate che a rigore nonsono ASCII percheacute solitamente esse non appaiono come incompatibilinella finestra di editing se lo fossero le parole che le contengonorisulterebbero marcate come ortograficamente errate quindi vi si puograveintervenire caso per casoA chi scrive non egrave mai capitato di dover intervenire per le vocali ac-centate della lingua italiana (salvo lrsquoeventuale correzione degli accentigravi o acuti per la lettera lsquoersquo dove precise norme prescrivono lrsquouno olrsquoaltro accento) ma potrebbe verificarsi in lingue diverse dallrsquoitalianooppure piugrave subdolamente in parole straniere inserite in un contestoitaliano percheacute in questi casi il correttore le dagrave comunque ortografi-camente errate (di solito i correttori ortografici sono impostati peruna sola lingua alla volta) e non egrave immediatamente chiaro se la cosasia solo dovuta ad una parola non appartenente alla lingua di defaultoppure se sia dovuta alla presenza di una lettera con diacritici chenon corrisponde allrsquoencoding preimpostato in questi rari casi si puograveprocedere senza preoccuparsi dellrsquoesito della composizione durante lacompilazione eseguita con pdflatex se il segno non ASCII non egrave rico-nosciuto dalle definizioni corrispondenti allrsquoopzione data al pacchettoinputenc viene segnalato un warning in corrispondenza del caratterenon riconosciuto ed esso viene sostituito con un punto interrogativodi conseguenza prima di eseguire nuovamente pdflatex basta sostituirela lettera incriminata con la sua definizione esplicita mediante gliappositi comandi per gli accenti e i diacritici in particolare

3Qui si egrave barato un pochino nel file che contiene le macro specifiche per la composizionedi questo testo si sono usati comandi diversi per la composizione testuale dei gradi Celsiustextcelsius e $^circmathrmC$ C per la matematica Si osserva che i due segnisono leggermente diversi negli esempi qui riportati si egrave sempre usato il segno matematico resoil piugrave possibile simile a quanto si ottiene con il segno testuale

221 CONVERSIONE MANUALE 413

Dovendo citare la locuzione irlandese4 Riacute Teamrac bisogna scrivereesplicitamente Riacute Teamrac percheacute altrimenti i caratteri pun-tati vengono sostituiti con punti interrogativi (Teara) in quantoincompatibili con lrsquoencoding latin1 con cui egrave stato composto questotesto

Per la conversione di questi caratteri indipendentemente dalla capacitagravedellrsquoeditor di gestire caratteri diversi da quelli corrispondenti al suo encodingimpostato basta copiare una qualunque istanza del carattere da sostituireinserirla nel campo di ricerca della finestra ldquocerca e sostituiscirdquo e inserire iltesto o il carattere o la macro sostitutiva nel campo di sostituzione per poieseguire una sostituzione globale Di solito questa operazione da ripetereper ogni carattere non ASCII egrave risolutiva anche se non guasta controllareuna seconda volta che cosa sia stato effettivamente sostituito e doveNel fare queste operazioni di sostituzione e di correzione si inserisconoanche nei successivi capoversi o nelle successive sezioni del testo ricompostotutte le informazioni di mark-up necessarie le etichette per le informazioniincrociate i comandi per la generazione degli indici e delle varie liste dioggetti flottanti bisogna dunque aggiungere con la sintassi di LATEX quelleinformazioni che non potevano essere contenute dentro i file di puro testoo formattati secondo il formato doc

Lrsquoesecuzione del programma pdflatex non dagrave piugrave problemi di quelli che si hannonella prima esecuzione di un qualunque file sorgente certamente comparirannodelle cose non errate sintatticamente ma che non corrispondono esattamenteal quel che si desiderava comporre certamente bisogneragrave agire sugli oggettiflottanti per trovare loro una posizione conveniente in relazione ai parametri dicollocamento automatico di cui si egrave parlato negli appositi capitoli Ma questiproblemini sono quelli che si incontrano sempre con qualunque documentocomplesso

Per evitare di dover ricercare grossi errori come per esempio lrsquoassenza diuna graffa chiusa o della fine di un lungo ambiente di qualunque tipo convienecompilare il documento ogni pochi capoversi non necessariamente ad ognicapoverso aggiunto al file in lavorazione ecco percheacute si egrave consigliato di convertireun capoverso alla volta per apportare le modifiche di poco conto mentre lacompilazione ad ogni gruppo di capoversi due o tre pagine alla volta permettedi scovare le imperfezioni di piugrave largo respiro e di eseguire le conversioni deicaratteri non ASCII meno frequentemente che non un capoverso alla volta

Chi scrive ha convertito un certo numero di libri in questa maniera un paiodi questi libri erano atti di congressi o di simili conferenze di argomento tecnicoscientifico Specialmente per questi ultimi i cui contributi erano stati scritti daogni presentatore di memorie ma con stili tutti diversi con abilitagrave piugrave o menograndi nellrsquouso di Word o di Writer con competenze di vario livello in meritoalle immagini allegate ai loro lavori con formule composte spesso in violazione

4Questa locuzione egrave stata ripresa dal testo di Peter Flynn [17] In quel testo Flynn diceanche che non esiste una chiave di tastiera che consenta di inserire una lsquoirsquo priva di puntino e cheperciograve bisogna usare la sequenza i questo egrave vero per la lingua celtica usata in Irlanda e per lalingua turca per le lsquoirsquo accentate questo era vero fino ad una decina di anni fa quando per tuttii diversi encoding egrave stato dichiarato che la macro dellrsquoaccento seguita da una lsquoirsquo ldquonormalerdquo (colpuntino) produce direttamente e correttamente la lsquoirsquo accentata con lrsquoaccento che sostituisce ilpuntino Forse non egrave vero con tutti i possibili accenti ma certamente lo egrave per i piugrave comuni

414 CAPITOLO 22 COMPORRE DA DOCUMENTI ESTERNI

di ogni possibile norma di scrittura della matematica tecnico scientifica e senzaservirsi di equation editor validi hanno presentato notevoli problemi sicuramentenon sarebbe stato possibile eseguire nessuna conversione in forma automatica osemiautomatica

222 Conversione automatica

2221 Documenti in formato doc

Chi scrive ha provato ad usare programmi come rtf2latex2e qualunque wordprocessor come Word o Writer puograve aprire un documento in formato doc esalvarlo in formato rtf (Rich Text Format) Il programma citato rtf2latex2escaricabile dalla rete per i tre sistemi principali sembra che consenta di tra-sformare qualunque documento RTF gestendo anche le figure e trattando leeventuali formule in esso contenute come immagini Lrsquoesperienza individuale puograveessere molto varia con questo programma e chi scrive non egrave riuscito ad otteneregrancheacute probabilmente per sua inesperienza

Esiste anche un plug-in per Microsoft Word che si chiama word2tex usabilesolo su piattaforme Windows dagli archivi ufficiali ctan egrave scaricabile un pro-gramma eseguibile con lo stesso nome ma datato 1988 quindi vecchiotto chedovrebbe fare le stesse cose In rete crsquoegrave questo plug-in commerciale aggiornato al2008 nella forma di uno shareware la cui licenza singola da pagare dopo i 30giorni di prova non egrave proprio a buon mercato ma sembra che ne valga il costospecialmente se si esegue la conversione Word minusrarr LATEX con una certa frequenzaLe prove che chi scrive ha visto giagrave eseguite da altri5 sembrano eccellenti ilcodice LATEX egrave corretto e senza sbavature anche se in realtagrave si deve eseguirequalche piccolissimo intervento a mano per dare qualche piccolo ritocco il fileconvertito perograve egrave subito compilabile e il documento prodotto a parte i font equalche altro piccolissimo dettaglio egrave sostanzialmente identico allrsquooriginale

Il plug-in word2tex si presenta nei menugrave di word come una opzione delcomando Salva con nome dove fra gli altri formati compare anche il formatoTEX (in realtagrave vuol dire LATEX) se il file sorgente contiene figure o equazioniqueste vengono correttamente convertite in modo compatibile se sono presentisulla macchina Windows delle librerie dinamiche sufficientemente recenti tuttaviaper questi dettagli egrave meglio leggere la documentazione sul sito ufficiale httpwwwchikriicom

Invece i programmi per Linux AbiWord e Kword possono aprire un documentodoc e salvarlo (ldquoSalva con nomerdquo) in formato tex con il mark-up di LATEX Egravechiaro che questi programmi essendo nativi di Linux e specialmente il secondoessendo legati al desktop KDE funzionano solo su macchine Linux6 in ognimodo nessuno vieta di installare su una macchina Windows il programmaCygWin che serve per simulare un ambiente UNIX su una macchina Windows esuccessivamente installare dentro questo ambiente di simulazione uno dei dueprogrammi in questione Sulle macchine Mac con il sistema operativo OSX nonci sono particolari problemi o si scarica lrsquoapposito programma di installazione

5Chi scrive lavora su un Mac ma il plug-in descritto qui non egrave installabile nella versione diMicrosoft Word per Mac

6Sembra che AbiWord offra anche una versione adatta alle piattaforme Windows permaggiori informazioni si veda nel sito Internet di AbiWord

222 CONVERSIONE AUTOMATICA 415

per Mac oppure si scarica il file sorgente e si genera lrsquoapplicazione compilandoil file sorgente questo egrave uno dei vantaggi conseguenti allrsquoadozione del sistemaUNIX da parte della Apple Quindi in sostanza i due programmi nominati sonousabili su tutti e tre i sistemi operativi maggiori

Tuttavia alla data odierna (marzo 2010) chi scrive ha provato ad usareentrambi i programmi summenzionati su una macchina Linux dotata di sistemaoperativo Ubuntu 910

Con AbiWord si egrave aperto un primo file doc che il programma ha importatodirettamente senza problemi lo si egrave salvato in formato LATEX si egrave aperto questonuovo file ma la conversione non ha dato luogo ad una compilazione correttae lrsquointervento a mano per renderlo compilabile egrave stato decisamente pesante Siegrave aperto un altro file dello stesso formato questa volta un poco piugrave complessocontenente anche lrsquoindice generale Di nuovo lrsquoediting per renderlo compilabilecon pdflatex ha richiesto non poco lavoro Il motivo principale egrave che il filedoc originale era stato composto su una macchina Windows il cui fine riga egravecaratterizzato da due byte uno indica di andare a capo e lrsquoaltro di iniziare unanuova riga Nelle macchine UNIX i file di testo hanno il fine riga marcato da unsolo byte quello di inizio di una nuova riga Bencheacute AbiWord mostri correttamentesullo schermo il contenuto del file doc quando lo converte in formato LATEXsi comporta come se non riconoscesse entrambi i byte di fine riga del formatoldquoWindowsrdquo ma ne riconosce uno solo e racchiudesse lrsquoaltro in un ambienteflushleft questo succede specialmente nelle parti preliminari del documento chehanno diversi spazi verticali fra capoversi introduttivi Certo sapendolo si sache bisogna cancellare un grande numero di questi ambienti contenenti solo unariga vuota ma richiede del tempo e molta attenzione per essere sicuri di noncancellare ldquotroppordquo Bisogna in ogni caso modificare le impostazioni di defaultdel preambolo e molte righe di mark-up interne Fattibile ma faticoso

Con Kword le cose sono simili ma leggermente migliori il dialogo che ilprogramma apre per svolgere la conversione richiede diverse indicazioni checonsentono anche di scegliere lrsquoencoding del file sorgente La scelta della linguaprincipale del documento non sembra avere effetto mentre con AbiWord non crsquoegravepersonalizzazione e la lingua di default egrave comunque lrsquoinglese Entrambi specificanoil formato americano letter per la carta ma egrave immediato modificarlo in A4

Insomma entrambi i programmi eseguono la conversione ma entrambi pro-ducono in uscita dei file LATEX che richiedono non poco lavoro per renderlicompilabili

Chi scrive ha usato anche altri programmi di cui si parla nelle FAQ britannichema i risultati non sono stati per niente soddisfacenti

Non bisogna stupirsene piugrave di tanto i file doc non contengono nessunainformazione in merito alla struttura del documento ma contengono informazioniin merito solamente allrsquoaspetto visuale del testo quindi anche se questi programmiconvertono il file dal formato doc al formato tex con il mark-up di LATEX i filecosigrave prodotti richiedono non poco lavoro per produrre dei documenti compostitipograficamente in modo corretto

Per la componente Writer di OpenOfficeorg esiste lrsquoestensione Writer2LaTeXche non egrave installata di default ma ogni utente di OpenOfficeorg sa come reperiladal sito ufficiale di quella suite scaricare questa estensione e installarla egrave unaquestione di pochi click una volta installata lrsquoestensione la voce ldquoExportrdquo delmenugrave ldquoFilerdquo consente di esportare il file in formato LATEX una finestra di dialogoviene aperta per specificare le impostazioni di default

416 CAPITOLO 22 COMPORRE DA DOCUMENTI ESTERNI

Il file da convertire (chi scrive ha provato a convertire un file con indirizziinternet liste e sezionamenti) viene convertito perfettamente e pdflatex lo compilasenza errori conservando abbastanza bene lrsquoaspetto che il testo aveva nel formatodoc la lingua viene riconosciuta correttamente cosigrave come i caratteri specia-li accettati come caratteri non ASCII che vengono riconosciuti nellrsquoencodinglatin1 Se crsquoegrave qualche modesta critica da fare egrave quella che viene caricato ungran numero di pacchetti esterni molti dei quali servono solo per riconoscerecaratteri che la maggior parte delle volte non sono stati effettivamente usatinel file sorgente Inoltre lrsquoapostrofo viene sempre convertito in una virgolettasemplice alta di chiusura ma tutto sommato non egrave difficile sostituire la stringatextquoteright in un semplice apostrofo quale quello che si ottiene dallatastiera questa sostituzione perograve egrave solo estetica percheacute la sua omissione nonproduce danni di nessun genere salvo rendere leggermente piugrave faticosa la letturadel file sorgente7 Generalmente bisogna anche cambiare il formato della cartada letterpaper a a4paper Per il resto questo convertitoreesportatore dalformato doc al formato tex sembra eccellente

Merita aggiungere che gli sviluppatori di Writer2LaTeX stanno lavorando suuna ulteriore estensione Writer4LaTeX che egrave giagrave inclusa nella versione ldquobetardquodella prossima versione 12 di Writer2LaTeX e che dovrebbe integrare completa-mente Writer con LATEX (latex e pdflatex) in modo da svolgere le funzioni di shelleditor per LATEX insomma in un certo senso svolge le funzioni di LYX con unsuo formato di default e con la possibilitagrave di compilare direttamente con latex opdflatex e di visualizzare direttamente il frutto della composizione senza uscireda Writer Il messaggio che sul sito httpwriter2latexsourceforgenetindex4html accompagna le altre informazioni su questa nuova estensione ri-chiama ancora una volta che sia Writer sia LYX hanno delle capacitagrave limitate(a finite feature set) ma che lrsquoutente esperto puograve sia con LYX sia con Writerinserire codice in linguaggio TEXLATEX in modo da sopperire alle limitazionidel programma usato per la predisposizione del file sorgente

Il sito Wiki di LYX httpwikilyxorgToolsWord2LyXMacro contienealcune macro Word che permettono a Word (2007 e 2000) di ldquoautoconvertirerdquo undocumento doc in un corrispondente documento lyx questo puograve venire apertocon LYX ed essere salvato in formato tex con il mark-up di LATEX chi scriveha provato a montare il file con le definizioni delle macro Word sulla versioneMac di questo programma (Microsoft Office 2004) ma lrsquoesperimento egrave fallitobencheacute le macro siano state salvate e correttamente individuate dal programmaesse non hanno dato luogo che a un errore grave Tuttavia lrsquoinsuccesso egrave dovutoad una incompatibilitagrave del set-up della suite Microsoft Office per Mac con ilcorrispondente set-up su una macchina Windows Infatti su questa macchinala stessa procedura di installazione (Word XP) dagrave luogo a macro eseguibili checonvertono correttamente il file doc in un file lyx Aprendo il file con LYX esalvandolo in formato tex con il mark-up di LATEX si osserva una conversionequasi perfetta subito compilabile senza errori significativi

Gli ldquoerrorirdquo sono in realtagrave impostazioni non desiderate nel preambolo Peresempio il pacchetto hyperref egrave caricato con lrsquoopzione dvipdfm mentre sarebbe

7Per altro chi scrive si egrave rivolto al creatore di questa estensione per segnalargli questoinconveniente egli ha prodotto una versione ldquosperimentalerdquo che lo scrivente ha ha avuto adisposizione prima della distribuzione ufficiale e questo inconveniente relativo allrsquoapostrofo nonsi presenta piugrave probabilmente quando il lettore leggeragrave questa nota in rete saragrave disponibile laversione ufficiale modificata

222 CONVERSIONE AUTOMATICA 417

meglio che questa opzione sia presente solo nel file da compilare con latex noncon pdflatex basta cancellare lrsquoopzione Curiosamente viene impostato lrsquoencodingdel file sorgente con lrsquoopzione latin98 ma non egrave un problema se lo si desideracambiare lrsquoopzione in latin1 Ancora viene usata di default una classe dellacollezione KOMA-script ma viene specificata come opzione globale di default lalingua inglese Come si vede piccole cose che possono venire modificate in modosemplicissimo

Si tenga presente che la macro Word che usa questo procedimento nonconverte le equazioni queste vanno quindi reintegrate a mano Non solo male figure eventualmente presenti nel file doc non devono essere effettivamenteincluse ma devono essere collegate con un link cioegrave vengono rese visibili neldocumento originale mediante un link alla loro posizione nella cartella doverisiede il file doc attraverso il comando di menugrave LinkToFile

2222 Documenti in formato PDFBisogna ancora ricordare che AbiWord e Kword possono aprire o importaredocumenti PDF una volta aperti questi documenti possono venire salvati informato tex adatti al mark-up di LATEX Va da seacute che dai documenti PDF non siriescono a convertire adeguatamente le formule quindi queste vanno ricomposteoppure trattate come detto qui di seguito

Uno dei vantaggi di usare un file PDF da cui partire specialmente se lrsquoautoreha incluso le figure partendo da file adatti con una definizione sufficientementeelevata egrave che queste figure talvolta possono venire estratte ma che comunquepossono venire ritagliate dalla pagina PDF dove compaiono lo stesso si puograve fareper le formule se queste sono state composte correttamente e con i font ldquogiustirdquocioegrave che non stonino con i font del documento

Puograve darsi che lrsquooperazione si possa fare nativamente anche con altri program-mi ma sui Mac OS X il programma Preview (Anteprima se il sistema operativoegrave in italiano) permette di selezionare una parte di pagina per esempio unafigura o una formula di copiarla nel ldquoclipboadrdquo e poi agendo sulla voce delmenugrave File ldquoNew from clipboardrdquo incollare quanto si era copiato in un nuovofile che puograve venire salvato in qualunque formato fra i tanti di cui il programmaegrave dotato in particolare in formato PDF dando al file un nome adeguato que-sto puograve poi venire incluso nel documento in lavorazione con il solito comandoincludegraphics giagrave descritto nei capitoli precedenti Il programma Previewconsente di scontornare lrsquoimmagine prima di salvare il file per cui una voltaterminata lrsquooperazione quanto deve venire incluso egrave giagrave pronto senza bisogno diricorrere alle operazioni di ldquocroppingrdquo giagrave descritte nei capitoli precedenti

Ovviamente questa operazione di taglia e incolla delle figure e talvolta delleformule puograve essere eseguita anche con disegni o altre forme di illustrazioniprodotte da altri programmi Chi scrive solitamente usa questo metodo perestrarre i diagrammi di vario genere da file prodotti con excel il risultato egravesolitamente molto buono Anche se questa non egrave una operazione per convertireil formato di un documento egrave pur sempre un tipo di operazione che occorre farespesso quando si compongono documenti il cui materiale ha provenienze diverse

8Lrsquoopzione latin9 dovrebbe consentire lrsquouso immediato del simbolo dellrsquoeuro senza bisognodi ricorrere al pacchetto textcomp non egrave perograve chiaro in che ordine debbano essere specificatele chiamate ai vari pacchetti per cui si possono incontrare errori oppure lrsquoeuro viene sostituitoda un punto interrogativo

418 CAPITOLO 22 COMPORRE DA DOCUMENTI ESTERNI

Chi scrive non egrave al corrente di tutti i possibili programmi per aprire edelaborare file in formato PDF con le prestazioni di Preview appena descritte egliegrave al corrente del programma Skim sempre per il sistema operativo Mac OS Xche svolge le stesse funzioni di Preview ed alcune altre molto comode fra le qualila possibilitagrave di essere lsquosincronizzatorsquo con lo shell editor Ne esistono di sicuroanche per gli altri sistemi operativi ma egrave bene che ognuno se li cerchi e se liinstalli sapendo bene che cosa vuole ottenere

Una informazione interessante perograve egrave che dalla fine del 2009 la Sun Micro-systems ha messo a disposizione per il suo StarOffice e per OpenOfficeorg unprogramma di estensione chiamato pdfimport da installare come tutti gli altriplug-in di estensione per quei sistemi Con questa estensione installata sarebbepossibile importare file PDF nella sua versione Draw la parte di OpenOfficeorgdestinata ai disegni e i comandi di editing disponibili sono tali da poter introdur-re semplici correzioni (visto che senza un programma dedicato egrave molto difficile ndashparole della Sun ndash apportare modifiche ai file in formato PDF) Tuttavia unavolta importato il file e introdotto lrsquointero documento in un file del Writer diOpenOfficeorg non dovrebbe essere molto complicato esportare il file in formatoLATEX compatibile se egrave giagrave stata installata lrsquoestensione Writer2LaTeX

Chi scrive non ha materialmente provato questa strada sia percheacute a tuttrsquooggi(luglio 2010) il programma egrave distribuito come versione 10 ma forse sarebbemeglio considerarlo una versione beta avanzata sia percheacute apparentemente se lacosa funziona ogni riga vien salvata come una scatola o riga a seacute stante quindibisognerebbe eliminare moltissime dichiarazioni di ambiente Tuttavia anche sela cosa sembra richiedere un grosso lavoro vale la pena di tenerne conto percheacutein alcune circostanze potrebbe essere meglio che eseguire la conversione a mano

2223 Documenti in formato XMLDa diversi anni Microsoft Word puograve salvare i suoi documenti in una sua versionedi formato XML (eXtended Markup Language) lrsquoestensione dei documenti inquesto formato egrave docx dal 2003 il programma puograve salvare anche in formatoxml ma bisogna chiederlo esplicitamente al momento di salvare il documento

OpenOfficeorg Writer ha come formato standard lrsquoXML e i suoi file salvatiin questo formato hanno lrsquoestensione odt se si tratta di testo con poca o nullaformattazione oppure in formato sxw se si tratta di un documento strutturatoSiccome Writer puograve salvare anche nei formati della suite Microsoft Office Writerpuograve salvare anche nei formati docx e xml

Tra i programmi giagrave elencati bisogna ricordare che AbiWord puograve nativamenteaprire i file XML prodotti con qualunque estensione da Microsoft Word e daOpenOfficeorg Writer quindi puograve di fatto aprire qualunque versione standardo meno standard di documento XML e li puograve salvare in formato tex con ilmark-up LATEX

Anche Kword puograve aprire file con i formati XML di base o le variazioni diMicrosoft Word e di OpenOfficeorg Writer Anche Kword puograve salvare i suoidocumenti in formato tex con il mark-up di LATEX

Il programma LYX invece non apre questi formati XML in modo diretto egraveun peccato percheacute il codice LATEX prodotto da LYX egrave decisamente il migliore fraquelli ottenuti per conversione automatica

Perograve almeno sul Mac egrave disponibile o scaricabile dal sito di Microsoftlrsquoapplicativo Open XML converter che consente di convertire i file XML in formati

223 CONCLUSIONI 419

validi per versioni precedenti a quella del 2003 della suite Microsoft Office traquesti ovviamente crsquoegrave il tradizionale formato doc con il quale si puograve operarecome descritto nei paragrafi precedenti

Per altro i file in formato docx sul Mac possono venire aperti anche con lasemplice applicazione TextEdit che puograve salvare il file in formato rtf sul qualesi puograve operare come descritto nei paragrafi precedenti

Anche il potentissimo editor emacs puograve convertire i file XML in file adattia LATEX sembra anzi che esso abbia funzionalitagrave particolarmente avanzate chiscrive perograve non ne ha esperienza diretta ma si rifagrave solo a quanto Peter Flynnafferma nel suo testo [17]

Peter Flynn indica anche unrsquoaltra strada per convertire i file in formato XMLnel formato adatto a LATEX la procedura descritta da Flynn nel suo paragrafo1011 ldquoGetting LATEX out of XMLrdquo egrave abbastanza lunga da descrivere anchepercheacute Flynn scrive delle macro in XLM e le usa per convertire direttamente informato adatto a LATEX usando un programma chiamato Saxon un programmaJava per lrsquoelaborazione di documenti XSLT Secondo Flynn questo sarebbe ilmetodo migliore per eseguire le conversioni ma richiede delle capacitagrave drsquousodei PC che chi scrive ritiene molto superiori alla media degli utenti comunquemolto superiori alle sue capacitagrave

Merita ricordare il programma dblatex si tratta di un comando senza in-terfaccia grafica da lanciare da linea di comando esso apre i file in forma-to XML e li trasforma direttamente in file LATEX Esso gestisce conveniente-mente gli style sheets necessari per la conversione Esso puograve venire scaricatodal sito dblatexsourceforgenet e le istruzioni di lavoro sono in httpdblatexsourceforgenetdoc Esso egrave fornito di comandi di pre- e post-processing che consentono di eseguire tutte le operazioni per comporre il docu-mento o direttamente attraverso pdflatex o indirettamente passando attraverso ilformato PS Durante queste operazioni le figure per esempio vengono convertitenei formati richiesti da pdflatex o da latex (o meglio da dvips) In questo modochi converte il file XML si ritrova alla fine sia con il documento composto sia conun sorgente LATEX che puograve tranquillamente modificare per ottenere un tipo dicomposizione diversa Probabilmente questo pacchetto esegue le stesse operazionidescritte da Flynn e menzionate molto brevemente poco sopra ma le eseguein modo automatico senza o con poco intervento da parte del compositore Egraveinteressante notare che lrsquoautore di dblatex ha predisposto anche un programmaldquogemellordquo dbcontext per convertire i file XML in modo da poterli comporre conil programma context

223 ConclusioniCome si vede i processi per importare in documenti LATEX il contenuto didocumenti in formati diversi sono piuttosto complessi non tanto percheacute ci sianodelle operazioni difficili da eseguire quanto percheacute a tuttrsquooggi non esiste un modosolo unificato e corretto per mettere in un documento LATEX delle informazionitratte da altri documenti che sono privi di tutte le informazioni necessarie Nessunprogramma al di lagrave di alcune impostazioni di default puograve inventarsi che cosaaveva in mente chi ha scritto originariamente il documento iniziale

Va aggiunto che gli utenti dei word processor di solito non usano quelminimo di mark-up che programmi come Microsoft Word o OpenOfficeorg

420 CAPITOLO 22 COMPORRE DA DOCUMENTI ESTERNI

Writer consentono per esempio di scegliere gli header dallrsquoapposito menugrave Quegliheader sono necessari per eseguire automaticamente lrsquoindice del documento mala maggior parte dei documenti sono privi di indice e gli utenti preferisconoscrivere lrsquointestazione e poi cambiare il font e la serie con semplici click del mousepiuttosto che cliccare su un menugrave a discesa che offre una vasta scelta di headerma con poche spiegazioni di che cosa significhino quei termini Risultato ancheil miglior convertitore fa fatica a convertire in formato adatto a LATEX per cuiil compositore deve consumare un tempo notevole per correggere quello che ilconvertitore non ha saputo fare adeguatamente per trasformare un documentodi scarsa qualitagrave in un documento che vorrebbe essere di qualitagrave assai superiorema non puograve proprio per mancanza di informazione adeguata

Quando quindi bisogna produrre un documento di qualitagrave con LATEX par-tendo da numerosi contributi scritti con word processor diversi il compositoredeve armarsi di santa pazienza anche se ricorre a programmi di conversione cheperograve ricordiamolo bene non possono fare lrsquoimpossibile

Appendice A

Dove documentarsi

Invece di inserire un anonimo elenco bibliografico qui si cerca di esporre unalista ragionata di testi utili eo necessari per approfondire la conoscenza di LATEXe dei suoi fratelli Le indicazioni precise di ogni riferimento sono riportate nellabibliografia pagina 558

A1 Documentazione sulla tipografiaQuesta sezione avrebbe lrsquoambizione di fornire qualche idea sulla tipografia leconsuetudini tipografiche e il book design senza limitarsi alla consuetudiniitaliane Per ovvi motivi questa sezione egrave abbondantemente incompleta e lascelta dei riferimenti egrave frutto di un compromesso

Una breve guida sulle consuetudini della tipografia italiana egrave contenutanellrsquoarticolo di Gustavo Cevolani ldquoNorme tipograficherdquo [9]

Questo articolo ha senzrsquoaltro il pregio della concisione una decina di paginema egrave piuttosto completo e indica anche come le varie consuetudini tipograficheitaliane possono essere rese con i comandi e gli ambienti LATEX

Bencheacute abbia i suoi anni il manuale di Roberto Lesina [30] raccoglie in modoben strutturato un certo numero di consuetudini tipografiche e raccomandazionidi vario genere che molti scrittori tecnicondashscientifici considerano assai valide

Anche la documentazione accessoria della classe memoir [57] contiene nonpoche pagine di iniziazione alla tipografia e al book design Anche se il testoegrave in inglese e si riferisce principalmente alla tipografia inglese non mancanoriferimenti alla tipografia europea continentale di varie nazioni e di vari secoli

Precedentemente questa documentazione era contenuta nel manuale stessodi memoir [56] ma nel 2009 il curatore della documentazione ha ritenuto che iltesto fosse diventato troppo lungo e ha separato questo documento dal manualevero e proprio non viene installato insieme a TEX Live bisogna scaricarlo dahttpwwwctanorgtex-archiveinfomemdesign

Il testo elettronico di Peter Flynn [17] egrave sostanzialmente un guida allrsquouso diLATEX ma lrsquoautore egrave professore di Tipografia allrsquoUniversity College di Cork inIrlanda Fu lui il presidente e organizzatore della Conferenza Internazionale diCork dove furono gettate le basi per lrsquoencoding esteso T1 Data la professionedellrsquoautore il testo egrave particolarmente curato nella sua forma grafica e compositivaegrave vero ci sono delle convenzioni insolite per la tipografia italiana per esempio

421

422 APPENDICE A DOVE DOCUMENTARSI

i richiami delle note seguono la punteggiatura mentre nella maggior parte deilibri italiani i richiami di nota precedono la punteggiatura Tuttavia il tipodi composizione egrave piuttosto curata certamente puograve costituire un esempio daseguire

La Imprimerie Nationale francese lrsquoequivalente del nostro Poligrafico delloStato ha pubblicato un interessante libretto [36] Si tratta di una specie diglossario dove sono elencate in ordine alfabetico le varie parole che comportanocerte consuetudini tipografiche e viene specificato come quelle consuetudini sianoapplicate presso questo autorevolissimo ente

Tipica della tradizione tipografica francese egrave la spaziatura uniforme fra leparole indipendentemente da quali segni di interpunzione le separino questoeffetto con LATEX si ottiene con la dichiarazione frenchspacing Vale la pena disegnalare che questo tipo di spaziatura egrave quello di default quando viene compostala bibliografia in questo capoverso si egrave appunto specificata la spaziatura francese

Bisogna osservare che le tradizioni tipografiche francesi sotto certi aspettisono simili a quelle italiane e sotto certi altri sono molto divergenti non egrave solouna questione di lingua ma si tratta proprio di consuetudini una volta moltidecenni fa usate anche in Italia Per esempio i francesi inseriscono degli spaziprima di tutti i segni di interpunzione lsquoaltirsquo dai due punti al punto esclamativoe interrogativo in questo libretto per altro composto con cura a me pare assaisgradevole il fatto che lo spazio che precede questi segni sia piuttosto grandee suscettibile di essere ulteriormente allargato per giustificare le righe forse lasgradevole sensazione dipende dalla mancanza di abitudine Questa sensazionemi si ripresenta quando vedo i numeri romani usati come ordinali ma con ladesinenza ad apice come in lsquoLille est le siegravege de la IIe reacutegion militairersquo in italianosarebbe certamente scorretto mettere ad apice di un numero romano la desinenzadellrsquoaggettivo ordinale

Bisogna perograve ammettere che questo egrave uno dei pochi manuali di composizioneche tratta anche gli aspetti che non vengono mai trattati dagli autori piugrave famosiper esempio la composizione della matematica lrsquouso delle unitagrave di misura lascrittura della chimica anche quella organica con le sue formule di strutturaAnche in matematica la tipografia francese si distingue con particolaritagrave tuttesue tuttavia le indicazioni fornite in questo libro sono certamente una buonaguida anche per gli italiani

Abbastanza documentato e facile anche per i neofiti egrave il libro di MichaelMitchel e Susan Wightman [31] Esso copre tutti gli aspetti della produzione diun libro e dagrave indicazioni assai utili a chi vorrebbe fare o fa di professione il bookdesigner sia pure in un contesto britannico In realtagrave fuori dal Regno Unitocambiano i dettagli ma i problemi da affrontare per la produzione di un librosono praticamente gli stessi in ogni nazione Un dilettante legge volentieri questomanuale percheacute non egrave formato da una serie di prescrizioni ma egrave un susseguirsi didescrizioni dei vari aspetti inclusi quelli tipografici e compositivi naturalmentema egrave molto istruttivo Gli autori non fanno un mistero di avere usato un prodottoprofessionale e commerciale per la mise en page come direbbero i francesi masi sforzano di dare indicazioni per non vincolare il lettore allo stesso programmadi impaginazione Molti dei problemi da risolvere a mano con gli impaginatoriprofessionali sono risolti automaticamente con LATEX ma ce ne sono altri checon LATEX sarebbe molto difficile affrontare e risolvere Egrave utile domandarsi viavia ldquoQuesto con LATEX come potrebbe essere fattordquo

A2 DOCUMENTAZIONE SU LATEX 423

Fra i grandi book designer di questo secolo compare anche Robert Bringhurstegli ha scritto un piacevole libro [4] dal titolo significativo The Elements ofTypographic Style dove egli descrive i suoi principi tipografici e di book and pagedesign egrave incredibile come riesca a legare le proporzioni delle note musicali dellescale diatonica e cromatica con quelle delle figure geometriche e con quelle dausarsi in tipografia Nelle sue mani quei principi per la scelta delle proporzionidiventano davvero musica per gli occhi invece che per le orecchie ma con quellasobrietagrave che consente alla persona di gusto di apprezzarne le finezze discrete esobrie che perograve non si impongano fino a distrarre il lettore Leggendo questolibro e comprendendo appieno i principi tipografici di Bringhurst si capisce cheil book design di qualitagrave non egrave un gioco da dilettanti

Gli ultimi riferimenti sono testi in inglese egrave un peccato che non esistano o sianodifficili da trovare opere simili in italiano1 drsquoaltra parte egrave anche comprensibileche la pubblicazione di opere di questo genere in italiano per lettori italiani nonsarebbe remunerativo mentre lo egrave certamente se sono pubblicate in inglese per ilettori che usano lrsquoinglese come prima o anche come seconda lingua

Tra le opere italiane perograve si puograve citare il manuale di Giorgio Fioravanti[16] dal titolo Il manuale del grafico mdash Guida alla progettazione grafica eallrsquoimpaginazione del prodotto editoriale

Come dice il titolo questo libro egrave piugrave rivolto agli aspetti grafici piuttostoche a quelli compositivi penso che si tratti di una buona lettura ma certamentenon ha il respiro dellrsquoopera di Bringhurst o la copertura di argomenti di Mitchele Wightman Tuttavia merita notare la composizione moderna a gabbia su trecolonne dove spesso due delle colonne sono unite assieme cosigrave che le paginesono mosse e attraenti in questa apparente disomogeneitagrave la struttura graficasi adegua al contenuto senza perograve attrarre lrsquoattenzione su di seacute distraendo illettore dalla comprensione del testo

Si puograve citare anche il libro di Fabrizio Serra [41] lrsquoautore oltre ad essereproprietario e amministratore di un certo numero di aziende tipografiche egravestato anche professore di Composizione della stampa presso la Scuola direttaai fini speciali in Scienza ed Arti della Stampa ora divenuto il corso di laureain Progetto Grafico e Virtuale Le sue aziende si occupano specialmente manon esclusivamente di stampa di libri di collane e di periodici nellrsquoambito dellediscipline umanistiche Il libro di norme che Fabrizio Serra ha pubblicato siriferisce prevalentemente alla stampa di documenti testuali con numerosi insertiiconografici tabellari eccetera ma in genere senza espressioni matematicheIl libro contiene una prefazione una postfazione e una appendice scritte dapersonaggi importanti nellrsquoambito della tipografia e del book design basta citarefra tutti Jan Tschichold famosissimo book designer svizzero

A2 Documentazione su LATEXLa fonte iniziale di ogni sapere a proposito di LATEX standard egrave il manuale diLeslie Lamport [29]

Per leggere un testo introduttivo piugrave breve del manuale di Lamport si puogravericorrere al testo [58] inizialmente scritto in tedesco poi tradotto in molte linguefra le quali lrsquoitaliano la traduzione italiana egrave stata curata da un certo numero dimembri della associazione guIt

1Il testo di Bringhurst esiste anche in italiano ma bisogna ordinarlo in libreria

424 APPENDICE A DOVE DOCUMENTARSI

In italiano egrave appena uscito il testo di Lorenzo Pantieri e Tommaso Gordini[39] dal titolo simile a questo testo Lrsquoarte di scrivere con LATEX Egrave unrsquoottimaguida anche se egrave ancora in elaborazione tipograficamente parlando egrave molto piugravebella di questa Guida lrsquoautore infatti si egrave servito del pacchetto di estensioneClassicThesis che modifica le prestazioni delle classi della serie KOMA Scriptdi cui si egrave giagrave parlato producendo un layout assai elegante e composto con fontscelti con cura al di lagrave del contenuto interessantissimo e ben scritto anche lostile tipografico puograve costituire un buon modello a cui ispirarsi Invece in questaGuida si sono usati la classe standard book e i pacchetti standard in modo damostrare quello che LATEX puograve fare da solo come si egrave giagrave detto una delle pochee piccolissime modifiche apportate egrave stata quella di cambiare il modo di scriverei numeri romani minuscoli per renderli sempre con il maiuscoletto Nel testo diPantieri invece egrave stato cambiato praticamente tutto il risultato egrave eccellente maper i neofiti potrebbe risultare difficile sfruttare le possibilitagrave di ClassicThesisper ottenere le stesse bellissime pagine

Lorenzo Pantieri ha scritto anche unrsquoaltra breve guida LATEX per lrsquoimpazienteche potrebbe sostituire la guida [58] ormai un porsquo datata anche se sempre validaLa guida di Pantieri [38] contiene molti riferimenti ai pacchetti di estensione inmodo da indirizzare subito il lettore impaziente verso le soluzioni compositivemigliori ovviamente espone anche le parti essenziali di LATEX ma non trattaquasi per niente gli argomenti che esulano dalla composizione del testo con ilcriterio di ldquoquello che vedi egrave quello che intendi direrdquo tipico di LATEX Il testoegrave composto con la classe book con lrsquoestensione layaureo Il lettore curioso puogravevedere subito che effetto fa usare questo pacchetto a confronto con la presenteguida dove invece la pagina egrave quella di default della classe

Invece per andare su un testo piugrave completo anche della Guida di Lamport cisi puograve riferire allrsquoeccellente libro di Kopka a Daly [27]

Ma il libro piugrave completo (e pesante non nel prezzo ma nel numero di pagine)il libro dei libri su LATEX egrave certamente il The LATEX companion [32] Si tratta diun libro di quasi 1100 pagine dove crsquoegrave tutto lo scibile concernente LATEX2ε e ipiugrave importanti pacchetti

A3 Documentazione sulla graficaEgrave appena stata pubblicata anche la seconda edizione del volume The LATEX gra-phics companion [33] Questo libro egrave utilissimo per apprendere come manipolarele immagini per poterle inserire al meglio allrsquointerno di un documento compo-sto con LATEX Sono citati e descritti in dettaglio molti dei programmi appenamenzionati in questo testo ma quello che piugrave importa essi sono commentati econfrontati per esplorarne pregi e difetti o per indicare usi alternativi a quelliche ci si potrebbe aspettare2

Per quel che riguarda la creazione di grafica che rappresenta informazionequantitativa si indica il libro di Edward Tufte The visual display of quantitativeinformation Oltre ad essere un bellissimo libro in seacute esso mostra una quantitagravedi rappresentazioni grafiche belle e brutte tutte commentate per quelle brutte icommenti indicano proprio percheacute sono mal riuscite Crsquoegrave molto da imparare anche

2Tutti i libri della Addison Wesley sono acquistabili tramite il sito dellrsquoassociazione mondialedegli utenti di TEX con notevoli sconti si suggerisce di esplorare il sito httpwwwtugorgbooks

A4 DOCUMENTAZIONE SUI SINGOLI PACCHETTI 425

per chi si crede un abile creatore di diagrammi cartogrammi istogrammi ecceteraCiograve non toglie che non si possano tenere in conto anche le raccomandazioni dellanorma UNI 2949 [48] che guarda caso sono coerenti con la maggior parte delleindicazioni di Tufte anche se hanno un aspetto piugrave tecnico dei diagrammi bellimostrati da Tufte nel suo libro

A4 Documentazione sui singoli pacchettiLa documentazione sui singoli pacchetti di estensione fa generalmente parte delladistribuzione stessa del pacchetto ogni volta che si scarica dalla rete un pacchettoe questo viene installato nella struttura standard di cartelle del sistema TEXla documentazione va a finire in una cartella che si chiama come il pacchettonel ramo dellrsquoalbero che comincia con doc puograve poi finire nel ramo latexoppure tex oppure generic a seconda che lrsquouso del pacchetto sia specifico diLATEX di TEX oppure sia polivalente

Queste cartelle sono le prime a dover essere esaminate quando si cerca delladocumentazione specifica non lo si raccomanda mai abbastanza tanto chemolti utenti si rivolgono in rete alla prima mailing list che capita per averedelucidazioni su cose che sono spiegate chiarissimamente sulla documentazioneche arriva insieme al sistema TEX e che quindi egrave giagrave installata nello stessocalcolatore dove lrsquoutente si egrave trovato di fronte ad un problema Per caritagrave un porsquodi aiuto non lo si nega a nessuno ma la lsquonetiquettersquo impone di chiedere aiutoprima di tutto alla mailing list competente e solo dopo aver fatto il possibile perdocumentarsi autonomamente

Per i problemi relativi al sistema TEX egrave certamente competente il forumcomptexttex in groupsgooglecom

Anche il Gruppo degli utilizzatori Italiani di TEX ha un forum allrsquoindirizzohttpwwwguitssuspitforum ed egrave meglio rivolgersi a questi gruppi in-vece di scrivere alla mailing list dello shell editor che si sta usando dimostrandoquindi di non aver capito la distinzione fra lo shell editor e il sistema TEX

Ma una cartella che bisogna avere sempre presente egrave doclatexbasepercheacute quella cartella contiene alcune rapide guide dal titolo xxxguidepdfdove le tre lettere xxx indicano un porsquo stenograficamente di che cosa si trattiusr riguarda il generico utente cls riguarda le classi eccetera anche se sonoabbreviazioni inglesi non egrave difficile decifrarle

Un problema per gli utenti italiani egrave costituito dal fatto che quasi tutta ladocumentazione egrave scritta in inglese capisco che non tutti sono tenuti a conoscerelrsquoinglese come la propria lingua madre tuttavia se si usa un PC o un laptopse si naviga in rete una conoscenza di base dellrsquoinglese egrave sicuramente presentequesta conoscenza di base dellrsquoinglese scritto dovrebbe essere sufficiente

A5 Documentazione su TEXSe si arriva a scrivere dei file di classe o dei pacchetti di estensione viene vogliadi conoscere meglio il linguaggio TEX primitivo il libro dei libri egrave il TEXbook[25] scritto direttamente dal padre del sistema TEX Questo libro egrave la fontepiugrave autorevole sul sistema TEX se si egrave in vena di spese esiste anche lrsquooperaomnia di Knuth relativa alla tipografia digitale pubblicata come ldquoMillenium

426 APPENDICE A DOVE DOCUMENTARSI

Editionrdquo [26] Essa contiene in un elegante cofanetto cartonato tutti e cinquei volumi del sistema TEX Volume A The TEXbook Volume B TEX TheProgram Volume C The METAFONTbook Volume D METAFONT The ProgramVolume E Computer Modern Typefaces Tutti e cinque i volumi sono incassati(copertina rigida) e a seconda dellrsquouso che se ne fa sono molto meglio che nonprocurarsi separatamente le varie parti per giunta brossurate o con legature aspirale

Conviene visitare il sito di Enrico Gregorio httpprofssciunivrit~gregorioegtexhtml Ci sono diversi documenti da scaricare da quello sugliOrrori a quello sugli Esempi Quello che sembra piugrave interessante oltre alle altreGuide sui pacchetti piugrave comuni mi pare il testo PDF Appunti di programmazionein TEX e LATEX si tratta della seconda edizione aggiornata nel 2009 e contienediverse note che descrivono molte macro sia scritte in linguaggio TEX sia inlinguaggio LATEX2ε Si tratta di cose molto istruttive alcune semplici altredecisamente piugrave complesse ma come testo didattico secondo chi scrive egrave unottimo esempio che consente allrsquoapprendista di arrivare per gradi e secondo le suenecessitagrave a livelli alti di programmazione ottimi per scrivere macro complessecosigrave come per scrivere file di classe o di estensione

A6 Documentazione sui simboli di LATEXLATEX consente di inserire nei documenti composti una miriade di simboli chesono disponibili con certi pacchetti oppure con certi font esiste un documento inrete predisposto da Scott Pakin e tenuto costantemente aggiornato che contienetutti i simboli gestibili con LATEX [37] Lrsquoindirizzo in rete rimane sempre lo stessoanche dopo ogni aggiornamento

A7 Documentazione sulla composizione dellamatematica

In una lettera privata a un suo corrispondente Jean-Pierre Serre scrisseMi colpisce il fatto che la scrittura matematica sia simile alla scritturadi una lingua Per essere capito devi seguire certe regole grammaticaliTuttavia nel nostro caso nessuno si egrave preso la briga di scrivere unagrammatica noi lrsquoafferriamo come un bimbo lo fa dai suoi genitoriper imitazione degli altri Alcuni matematici hanno un buon orecchioaltri no (e alcuni preferiscono usare espressioni gergali come peresempio ldquoiffrdquo) Cosigrave egrave la vita3

Tuttavia non egrave proprio completamente esatta questa affermazione alcune regoleesistono almeno per certi stili di scrittura matematica

Le norme ISO per la composizione della matematica scritta dai fisici e daitecnologi (la matematica delle grandezze) si trovano tradotte in italiano neldocumento [10] pubblicato dallrsquoEnte di Unificazione Italiano

3It strikes me that mathematical writing is similar to using a language To be understoodyou have to follow some grammatical rules However in our case nobody has taken the troubleof writing down the grammar we get it as a baby does from its parents by imitation of othersSome mathematicians have a good ear some not (and some prefer the slangy expressions suchas ldquoiffrdquo) Thatrsquos life

A7 COMPOSIZIONE DELLA MATEMATICA 427

Vale la pena di consultare anche le indicazioni fornite dalla Unione Interna-zionale di Fisica Pura e Applicata riportate per esempio nellrsquoappendice F deltesto [55]

Molto interessante e completo egrave il documento elettronico [46] pubblicato dalNational Institute for Standardization and Technology esso egrave estremamentedettagliato e vale la pena di disporne e di ricorrevi spessissimo egrave anche moltoaggiornato sul sistema SI ovviamente si rivolge ai lettori statunitensi quindi dovediscute del separatore decimale indica il punto invece della virgola usa anchelrsquoortografia americana piuttosto di quella inglese per rispettare usi e costumiconsolidati negli USA per giunta fissati per legge da altre norme La bibliografiaegrave molto estesa fra le appendici ci sono elenchi di fattori di conversione daunitagrave ldquostranerdquo a unitagrave SI che risultano di difficilissima reperibilitagrave altrove alcunedi queste unitagrave ldquostranerdquo sono tanto inconsuete che se non fossero elencate inquellrsquoappendice qui in Europa non si sarebbero mai potute incontrare Le normein questione complete di check list per gli autori sono destinate ai vari ricercatoridi quellrsquoIstituto affincheacute scrivano il loro testi tecnici in modo irreprensibile Fattele debite piccolissime tare (tipo il punto decimale) le indicazioni presenti inquesta guida sono validissime per qualunque scrittore tecnico

LrsquoAmerican Mathematical Society ha anche pubblicato due libretti su questoargomento il primo [44] serve per dare adeguate istruzioni agli autori che leinviano lavori matematici da pubblicare il secondo [28] invece oltre a dedicareun adeguato spazio alla composizione della matematica con il calcolatore serveanche per consigliare il lettore come scrivere di matematica cioegrave come usare laprosa che puograve interessare un matematico

Come appare chiaro dal titolo i primi riferimenti si riferiscono esplicitamentealla matematica scritta dai fisici e dai tecnologi mentre i secondi si riferisconoalla matematica dei matematici Come egrave stato giustamente osservato sarebbeopportuno che fisici matematici e ingegneri scrivessero la matematica nello stessomodo non crsquoegrave dubbio Ma non conoscendo se il lettore sia un matematico o unfisico o un ingegnere o un economista o un giurista eccetera allora

In ogni caso si rinvia allrsquoappendice B una lista di simboli e di notazioni trattadalle norme o dalle pubblicazioni suddette

Per altro puograve essere utile il manualetto preparato da Michael Downes [13]della American Mathematical Society che ripercorre un porsquo quanto si egrave giagravedetto a proposito delle estensioni fornite dal pacchetto amsmath ma scende inmaggiori dettagli e fornisce utilissimi commenti e indicazioni di ulteriori pacchettidi estensione della matematica che qui non sono stati nemmeno nominati

Unendo ldquolrsquoutile al dilettevolerdquo si segnala il pacchetto cool [42] esso proponeallrsquoutente un certo numero di estensioni che consentono composizioni matematicheben fatte e ben documentate

Esso puograve essere utilissimo per comporre la matematica sia con lo stile deimatematici sia con quello dei fisici e ingegneri esso consente di usare unamoltitudine di comandi ognuno dei quali realizza la corretta scrittura di ognipossibile piccola o grande operazione matematica con la garanzia che essasaragrave tradotta nel file di uscita in modo corretto e conforme alle norme maesso consente anche una maggiore leggibilitagrave del file sorgente in quanto i nomidegli operatori o delle operazioni sono scritti per disteso o comunque sonopoco abbreviati il pacchetto contiene definizioni anche per gli operatori piugravespecializzati e che non sono listati nellrsquoappendice B Se ne consiglia lrsquouso a tutti

428 APPENDICE A DOVE DOCUMENTARSI

gli utenti di LATEX che abbiano necessitagrave di comporre testi con una notevole dosedi matematica in particolare se questa egrave molto avanzata

Si consiglia vivamante la lettura del documento di Herbert Voszlig Math mode[54] che espone tutti i modi possibili per comporre la matematica sia con plainTEX sia con il mark-up LATEX senza o con le estensioni fornite principalmentedal pacchetto amsmath e pacchetti annessi oltre che con unrsquoaltra ventina dipacchetti specializzati per la composizione della matematica Esamina i problemidi composizione per categorie e spessissimo mostra degli esempi completi dicodice anche per realizzare strutture compositive matematiche per situazioniparticolari sono 135 pagine densissime di informazioni preziose e costituisconouna vera miniera per trovare soluzioni o raccogliere idee nuove

Per quel che riguarda la vexata quaestio della punteggiatura esterna delleformule in display oltre a richiamare quanto annotato verso la fine del capitolo 10si suggerisce qui lrsquoesame dei fascicoletti di istruzioni per gli autori messi adisposizione su ctan e nelle apposite cartelle delle varie distribuzioni del sistemaTEX Si ricorda il giagrave citato fascicoletto della Elsevier [15] e lrsquoanalogo fascicolettopredisposto dalla Kluwer [24] Queste case editrici specializzate nelle pubblicazionidi tipo accademico e scientifico non usano la punteggiatura esterna per leespressioni matematiche in display

A8 Lrsquoarchiviazione dei documentiLrsquoargomento relativo allrsquoarchiviazione egrave ancora abbastanza nuovo e crsquoegrave pocadocumentazione disponibile Lrsquounico testo che sembra essere stato pubblicato egravein vendita solo accedendovi dalla rete [14]

In compenso nel sito httpwwwpdfaorgdokuphpid=starten si tro-va una quantitagrave di informazioni incredibile che vanno dai documenti tecnicialle FAQ le Domande frequenti dove si trovano una quantitagrave di informazionispicciole su argomenti precisi e delimitati

Il sito viene regolarmente aggiornato e vale la pena di accedervi regolarmentespecialmente se la produzione di documenti archiviabili egrave una parte importantedel proprio lavoro

Appendice B

Simbologia matematica efisica

B1 Unitagrave di misura del Sistema InternazionaleLe unitagrave fondamentali del Sistema Internazionale sono raccolte nella tabella B1secondo le norme internazionali gli angoli piani e solidi sono considerati ldquoquantitagravederivate adimensionaterdquo infatti le norme affermano che ldquole unitagrave radiante esteradiante devono essere considerate come unitagrave derivate adimensionate chepossono essere usate od omesse nelle espressioni delle unitagrave derivaterdquo Egrave perquesto che piugrave avanti per alcune grandezze fisiche saranno indicate fra parentesile unitagrave di misura contenenti anche i radianti o gli steradianti in quei casi incui il loro uso consente di distinguere specie fisiche diverse ma apparentementeequidimensionate

Grandezza fisica Unitagrave Simbololunghezza metro mmassa kilogrammo kgtempo secondo scorrente elettrica ampere Atemperatura termodinamica kelvin Kquantitagrave di sostanza mole molintensitagrave luminosa candela cd

Tabella B1 Unitagrave fondamentali

Tutte queste unitagrave noncheacute quelle delle tabelle successive possono essereprecedute dai prefissi decimali raccolti nella tabella B2 Si ricorda che i prefissivanno usati isolatamente (in passato non era infrequente osservare il prefissomillimicro al posto del prefisso corretto nano) Quando lrsquounitagrave di misura conprefisso egrave elevata ad un esponente questo si intende applicato allrsquounitagrave completadi prefisso 3 cm3 indica un volume di 3 (10minus2m)3 = 3times10minus6 m3 e non un volumedi 3times 10minus2 m3

Quando si parla di byte (simbolo B) si usano i prefissi binari questi sonoriportati nella tabella B3 essi sono legali dal 1998 e dovrebbero venire sempre

429

430 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

usati quando si parla di quantitagrave ldquoinformaticherdquo come le capienze dei dischi ole dimensioni di certe memorie e simili Si noti che per lrsquounitagrave kibi (kilo binario)il simbolo comincia con una K maiuscola non egrave un errore tutti i prefissi binaricominciano con lettere maiuscole incluso quello che ricorda il prefisso kilo lo siricorda solamente ma Ki sta per 1024 mentre k sta per 1000 sono evidentementedue cose diverse

Prefisso Valore Simbolo Prefisso Valore Simboloyotta 1024 Y deci 10minus1 dzetta 1021 Z centi 10minus2 cexa 1018 E milli 10minus3 mpeta 1015 P micro 10minus6 microtera 1012 T nano 10minus9 ngiga 109 G pico 10minus12 pmega 106 M femto 10minus15 fkilo 103 k atto 10minus18 aetto 102 h zepto 10minus21 zdeca 101 da yocto 10minus24 y

Tabella B2 Prefissi decimali

Prefisso Valore Simbolokibi 210 Kimibi 220 Migibi 230 Gitebi 240 Tipebi 250 Piexbi 260 Ei

Tabella B3 Prefissi binari

Grandezza Unitagrave Simbolo

attenuazione guadagno decibel dBattenuazione guadagno neper Npintervallo di frequenza ottava ottintervallo di frequenza decade dec

Tabella B4 Unitagrave logaritmiche

Per quanto riguarda le cosiddette unitagrave logaritmiche sono codificate quelledella tabella B4 si ricorda che i nomi che vengono dati a queste unitagrave servonosolo a ricordare quale base egrave stata usata per il calcolo del logaritmo Si richiamalrsquoattenzione anche sulla corretta scrittura dei simboli dB e Np che invece sivedono cosigrave spesso scritti in modo errato Per quanto riguarda le unitagrave diattenuazione e di guadagno si usano i logaritmi decimali per i decibel o neperianiper i neper ed in piugrave si hanno definizioni diverse a seconda che il rapporto dicui si calcola il logaritmo sia eseguito fra grandezze di potenza o energia oppure

B1 UNITAgrave DI MISURA DEL SISTEMA INTERNAZIONALE 431

fra grandezze di campo

α = 10 log10P1

P2oppure α = 1

2 logeP1

P2

dove P1 e P2 sono potenze oppure

α = 20 log10V1

V2oppure α = loge

V1

V2

dove V1 e V2 sono tensioniPer gli intervalli di frequenza si usano i logaritmi binari per le ottave o

decimali per le decadi

I = log2f2

f1oppure I = log10

f2

f1

Egrave stato necessario introdurre molte altre unitagrave per le grandezze fisiche derivateal fine di evitare di dover usare lunghi elenchi di unitagrave fondamentali elevate apotenze insolite che sarebbe fra lrsquoaltro troppo complicato ricordare queste unitagravederivate sono elencate nella tabella B5

Grandezza fisica Unitagrave Simboloangolo piano radiante radangolo solido steradiante srfrequenza hertz Hzforza newton Npressione pascal Palavoro energia joule Jpotenza watt Wcarica elettrica coulomb Ctensione elettrica volt Vcapacitagrave elettrica farad Fresistenza elettrica ohm Wconduttanza elettrica siemens Sflusso di induzione magnetica weber Wbinduzione magnetica tesla Tinduttanza henry Hflusso luminoso lumen lmilluminamento lux lxattivitagrave di un radionuclide becquerel Bqdose assorbita gray Gyequivalente di dose sievert Svattivitagrave catalitica katal kat

Tabella B5 Unitagrave derivate

Un cenno particolare merita il litro percheacute sono leciti ben due simboli perquesta unitagrave l L viene usato (impropriamente) anche ` ma non egrave lsquolegalersquo invecequesto simbolo se fosse legale costituirebbe una scelta quanto mai opportunapercheacute evita ogni possibile confusione della l minuscola con la cifra 1 e quelladella L maiuscola con la cifra 4

432 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Grand

ezza

fisica

Unitagrave

Simbo

loEq

uivalenz

aan

golo

pian

ograd

osessagesim

ale

1

rad

180

angolo

pian

ominutosessagesim

ale

prime1prime

rad

1080

0an

golo

pian

osecond

osessagesim

ale

primeprime1primeprime

rad

6480

00an

golo

pian

ogonograd

ocentesim

ale

gon

1gon

rad

200

angolo

pian

ogiro

giro

1giro

=2π

rad

area

ara

a1a

=10

0m2

area

ettaro

ha1h

a=

1000

0m2

volume

litro

lL

1L=

1dm

3

tempo

minuto

min

1min

=60

stempo

ora

h1h

=36

00s

tempo

giorno

d1d

=86

400s

massa

tonn

ellata

t1t

=10

00kg

massa

unitagrave

dimassa

atom

ica

u1u

=1

6605

7times

10minus

27kg

lavoroe

nergia

elettron

volt

eV1e

V=

160

219times

10minus

19J

lavoroe

nergia

kilowa

ttora

kWh

1kW

h=

36M

Jcaric

aelettrica

ampe

rora

Ah

1Ah

=36

00C

tempe

ratura

Celsiu

sgrad

oCelsiu

s C

1C

=1K

madiffe

risce

lozero

della

scala

t=Tminus

273

15K

Tabe

llaB6

Unitagrave

dimisu

ralegalm

ente

ammesse

B2 SIMBOLI MATEMATICI NELLE SCIENZE 433

Le unitagrave ammesse sono riportate nella tabella B6Infine sono ancora tollerate o temporaneamente accettate alcune altre unitagrave

in via di estinzione quelle che si sono giagrave estinte (come lrsquoatmosfera il quintaleil millimetro di mercurio mdash ammesso solo in campo medico mdash il poise eccetera)non sono nemmeno elencate proprio per evitare che possa venire la tentazionedi usarle ancora Le convenzioni internazionali a cui lrsquoItalia aderisce farannosparire in un prossimo futuro anche queste unitagrave tollerate che sono elencatenella tabella B7

Grandezza fisica Unitagrave Simbolo Equivalenzalunghezza miglio marino miglio marino 1 miglio marino = 1852 mlunghezza aringngstroumlm Aring 1Aring = 10minus10 marea ara a 1 a = 100 m2

area ettaro ha 1 ha = 10 000 m2

area barn b 1 barn = 10minus28 m2

pressione bar bar 1 bar = 100 kPavelocitagrave nodo nodo 1 nodo = (4639) ms

1 nodo = 1 miglio marinohaccelerazione gal Gal 1 Gal = 1 cms2

attivitagravedi radionuclide curie Ci 1 Ci = 37times 1010 Bq

esposizionea raggi X o γ roentgen R 1 R = 258times 10minus4 Ckg

dose assorbita rad rad rd 1 rd = 1 cGyequivalente di dose rem rem 1 rem = 1 cSv

Tabella B7 Unitagrave di misura temporaneamente accettate

Nelle tabelle B1ndashB7 si notano delle assenze vistose oltre a quelle giagrave segna-late in particolare mancano tutte le unitagrave CGS dagli erg alle dine dai gauss aglioumlrsted tanto per citare quelle piugrave comuni non sono accettati il kilogrammo-forzail micron il carato metrico la caloria lrsquoatmosfera Si notano inoltre le assenzedei simboli cc mc mmc mq che sono scorrettamente tanto comuni in alcunescienze al loro posto vanno usati i simboli corretti cm3 m3 mm3 m2 Unavolta ai tempi della dattilografia era piuttosto laborioso inserire gli esponentioggi con i sistemi di videoscrittura in particolare di composizione tipograficacome LATEX gli esponenti non sono piugrave un problema quindi quelle abbreviazionierrate tollerate per necessitagrave di cose fino a trenta anni fa oggi non sono piugraveaccettabili

B2 Simboli matematici nelle scienzeIn questo paragrafo sono raccolti i simboli matematici piugrave comuni che si impieganonelle scienze e nella fisica essi sono ispirati tra lrsquoaltro alle norme CNR-UNI 10002e alle norme CEI 24-1 ma quando queste norme erano in conflitto egrave stataoperata una scelta arbitraria se usare il simbolo proposto da una norma piuttostoche quello indicato dallrsquoaltra oppure se indicarli entrambi Egrave stato seguito questo

434 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

criterio anche per la scelta dei simboli che si ritengono meno frequenti e che nonsono stati inseriti nella tabella B8

Come al solito lrsquoelenco non egrave e non puograve essere completo ma puograve servire daguida o modello per preparare un analogo elenco qualora si facesse uso di unasimbologia fisico-matematica piuttosto elaborata

Nella tabella B8 a e b sono due numeri reali qualsiasi i j k n sono numeriinteri z s sono variabili o numeri complessi x y (talvolta anche z) e t sonovariabili reali D egrave un dominio A B C P sono punti del piano o dello spazioLa colonna intestata Simbolo contiene il segno grafico del simbolo oppureunrsquoespressione che ne fa uso

B3 NomenclaturaEgrave praticamente impossibile fare un elenco di tutti nomi delle grandezze chevengono usate in ogni scienza dalla fisica alla medicina dallrsquoelettronica allageologia Si ritiene perograve cosa utile riprendere lrsquoelenco del prospetto IV dellanorma CNR-UNI 10003 ampliandolo un poco e aggiungendovi il simbolo (o unascelta di simboli) che sono comunemente accettati in ogni scritto scientificosenza che sorga la necessitagrave di compilare un elenco delle grandezze e dei simboliusati

Nel compilare la tabella B9 si egrave tratta ispirazione dalle norme CNR-UNIdalle norme CEI dal fascicolo CEI di nomenclatura nucleare dal documento sullanomenclatura pubblicato dalla Societagrave Internazionale di Fisica senza inventarenulla ma operando solo delle scelte fra le grandezze o i simboli che sono statiinclusi o esclusi nella tabella

Fra parentesi nella colonna delle unitagrave di misura vi sono delle indicazioniulteriori che comprendono anche i radianti o altre unitagrave come i neper o i cicliquando egrave parso che lrsquointroduzione di queste unitagrave accessorie rendesse piugrave chiara ladifferenza fra grandezze di specie diversa ma apparentemente equidimensionate

La tabella B9 come detto sopra egrave certamente incompleta ma rappresentacomunque un modello da imitare qualora fosse necessario fare un elenco dellegrandezze e dei simboli usati nel documento

B3 NOMENCLATURA 435

Tabella B8 Simboli matematici

Simbolo Significato Note

virgola decimale Non usare il punto per separare laparte intera dalla parte decimaleNon usare nemmeno altri separato-ri tra i gruppi di tre cifre prima edopo la virgola Il punto decimalesi puograve usare solo scrivendo in ingle-se ma i separatori fra gruppi di trecifre devono essere assenti lo stessoIn entrambi i casi il separatore puograveessere costituito da uno spazio finenon separabile

infin infinito

π π = 3141 592 Se il font lo consente sarebbe desi-derabile stampare la costante ma-tematica π con un carattere noninclinato

e e = 2718 281 Va scritta in tondo se non altro perdistinguerla dalla carica elementa-re e ma come base degli esponen-ziali neperiani sarebbe preferibiletrattarla sempre come un operatore

γ γ = 0577 215 Vale la stessa osservazione fatta perπ

i j unitagrave immaginariaoperatore di rotazione

Va scritta in tondo come gli altrioperatori

omissione Si usa sia nel significato di elementiomessi sia in quello di eccetera

x y z coordinate cartesiane x larghezza y profonditagrave z altezza

ϕ z coordinate cilindriche distanza dallrsquoasse ϕ longitudinez altezza

ϕ ϑ coordinate sferiche distanza radiale ϕ longitudineϑ colatitudine

a = b uguale

a = b diverso

continua

436 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B8

Simbolo Significato Note

a equiv b identico

e asymp 2718 uguale a circa

a sim b proporzionale Si puograve usare anche a prop b

aharr b equivalente

a gt b maggiore

a lt b minore

a ge b maggiore o uguale

a le b minore o uguale

a b molto maggiore

a b molto minore

ararr b tendente

a b asintoticamente uguale

a b corrispondente Si usa nelle indicazioni di scala deidiagrammi per esempio 1 cm 10 V

adivide b intervallo Si usa nel senso di ldquoda a a brdquo

a+ b somma

aminus b sottrazione

a b a middot b moltiplicazione Non usare altri simboli quando glioperandi sono indicati mediantelettere

15times 23 moltiplicazione Non usare altri simboli quando glioperandi sono entrambi numerici

15 a15 middot a

moltiplicazione Gli operandi numerici precedonosempre quelli letterali

continua

B3 NOMENCLATURA 437

Continua tabella B8

Simbolo Significato Note

ab a

bdivisione Le due simbologie possono essere me-

scolate usare le parentesi per isola-re le singole operazioni ed evitareambiguitagrave per esempio

(ab) + 1(ab) + (ba)

a mod b modulo resto della divisione ab con quozien-te intero egrave sempre

0 le (a mod b)b lt 1

ab elevazione a potenzabradica estrazione di radice Non usare neacute b

radica neacute b

radic(a) se b = 2

b viene omesso

|a| valore assolutonsumi=1

ai somma

nprodi=1

ai prodotto

n fattoriale(n

m

)coefficiente binomiale n(nminus 1) middot middot middot (nminusm+ 1)

1times 2times middot middot middot m

f(x) funzione

logb x logaritmo in base b

log x logaritmo decimale

lnx loge x logaritmo neperiano

lbx log2 x logaritmo binario

ex expx esponenziale In questa e nelle funzioni successivescritte in caratteri tondi lrsquoargomen-to non necessita di parentesi quan-do egrave composto da un solo elementoletterale o numerico

sin x seno

continua

438 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B8

Simbolo Significato Note

cosx coseno

tan x tangente

cotx cotangente

sinh x seno iperbolico

cosh x coseno iperbolico

tanh x tangente iperbolica

coth x cotangente iperbolica

arcsin x arcoseno

arccosx arcocoseno

arctan x arcotangente

arccotx arcocotangente

arsinhx arcoseno iperbolico

arcoshx arcocoseno iperbolico

artanhx arcotangente iperbolica

arcothx arcocotangente iperbolica

K(k) integrale ellittico completodi prima specie

K(k) =int π2

0

dϑradic1minus k2 sin 2ϑ

F (ϕ k) integrale ellitticoincompleto di prima specie

F (ϕ k) =int ϕ

0

dϑradic1minus k2 sin 2ϑ

E(ϕ k) integrale ellitticoincompleto di secondaspecie

E(ϕ k) =int ϕ

0

radic1minus k2 sin 2ϑ dϑ

Π(nϕ k) integrale ellitticoincompleto di terza specie

Π(nϕ k) =int ϕ

0

dϑ(1minus n sin2 ϑ)

radic1minus k2 sin 2ϑ

ϕ amplitudine Lrsquoamplitudine egrave legata allrsquointegra-le ellittico di prima specie dallarelazione x = F (ϕ k)

sn (x k) seno ellittico sn (x k) = sinϕ

continua

B3 NOMENCLATURA 439

Continua tabella B8

Simbolo Significato Note

cn (x k) coseno ellittico cn (x k) = cosϕdn (x k)∆(ϕ)

delta amplitudine ∆(ϕ) =radic

1minus k2 sin 2ϕ

o(x) ordine di infinito oinfinitesimo

Se y = o(x) allora lim yx = 0

O(x) ordine di infinito oinfinitesimo

Se y = O(x) allora | lim yx| ltinfin

Γ(z) funzione gamma Γ(z) =int infin

0tzminus1 eminust dt

(a)n simbolo di Pochhammer (a)n = Γ(a+ n)Γ(a)

erf (z) funzione drsquoerrore erf (z) = 2radicπ

int z

0eminust

2dt

erfc (z) funzione complementaredrsquoerrore

erfc (z) = 1minus erf (z)

C(z) integrale di Fresnel C(z) =int z

0cos(πt22) dt

S(z) integrale di Fresnel S(z) =int z

0sin(πt22) dt

Si(z) seno integrale Si(z) =int z

0

sin tt

dt

Ci(z) coseno integrale Ci(z) = γ + ln z +int z

0

cos tminus 1t

dt

E1(z) esponenziale integrale E1(z) =int infinz

eminustt

dt

Ei(x) esponenziale integrale Ei(x) = minusint x

minusinfin

eminustt

dt

li(x) logaritmo integrale li(x) = minusint x

0

dtln t = Ei(ln x)

ζ(s) funzione Zeta di Riemann ζ(s) =infinsumk=1

kminuss

δ(t) distribuzione di Dirac

u(t) gradino unitario u(t) =

0 per t lt 012 per t = 01 per t gt 0

continua

440 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B8

Simbolo Significato Note

δij simbolo di Kronecker δij =

0 per i = j

1 per i = j

Jν(z) funzione di Bessel di primaspecie

Yν(z) funzione di Bessel diseconda specie

H(1)ν (z) funzione di Hankel di prima

specieH

(1)ν (z) = Jν(z) + iYν(z)

H(2)ν (z) funzione di Hankel di

seconda specieH

(2)ν (z) = Jν(z)minus iYν(z)

Iν(z) funzione di Besselmodificata di prima specie

Kν(z) funzione di Besselmodificata di seconda specie

berν(x) prima funzione di Kelvindi prima specie

berν(x) = Re[Jν(x e3π i 4 )]

beiν(x) seconda funzione di Kelvindi prima specie

beiν(x) = Im[Jν(x e3π i 4 )]

kerν(x) prima funzione di Kelvindi seconda specie

kerν(x) = Re[Kν

(x eπ i 4 )]

keiν(x) seconda funzione di Kelvindi seconda specie

keiν(x) = Im[Kν

(x eπ i 4 )]

M(a b z) funzione ipergeometricaconfluente

Funzione di Kummer di prima specie

U(a b z) funzione ipergeometricaconfluente

Funzione di Kummer di secondaspecie

F (a b c z) funzione ipergeometrica Lrsquoespressione generale egrave

F (a b c z) = Γ(c)Γ(b)Γ(cminus b) middot

int 1

0tbminus1(1minus t)cminusbminus1(1minus tz)minusa dt

Pn(z) polinomio di Legendre Detto anche funzione sferica

Tn(z) polinomio di Chebyshevdi prima specie

Un(z) polinomio di Chebyshevdi seconda specie

C(α)n (z) polinomio di Gegenbauer Detto anche polinomio ultrasferico

continua

B3 NOMENCLATURA 441

Continua tabella B8

Simbolo Significato Note

P (α β)n (z) polinomio di Jacobi Lrsquointervallo di ortogonalitagrave egraveminus1divide+1

G(p q z) polinomio di Jacobi Lrsquointervallo di ortogonalitagrave egrave 0divide+1

Hn(z) polinomio di Hermite

Ln(z) polinomio di Laguerre

L(α)n (z) polinomio di Laguerre

generalizzatoBn(z) polinomio di Bernoulli

En(z) polinomio di Eulero

Pmicroν (z) funzione ultrasferica diprima specie

Quando micro = 0 si omette di scriverneil valore percheacute la funzione coincidecon il polinomio di Legendre

Qmicroν (z) funzione ultrasfericadi seconda specie

limxrarra

f(x) limite

∆x incremento finito

δx incremento virtuale

dx differenziale Come gli altri operatori va scritto intondo ma non richiede lo spazio adestra

f(x)∣∣∣ba

incremento Cioegrave f(b)minus f(a)dydx derivata

party

partxderivata parziale

dnydxn derivata n-esima

partny

partxnderivata parziale n-esima Lrsquoordine di derivazione nelle deriva-

te parziali miste quando non siaindifferente egrave il seguente

part2z

partxparty= part

partx

(partz

party

)intf(x) dx integrale indefinito

continua

442 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B8

Simbolo Significato Noteint b

a

f(x) dx integrale definitointD

f(P) dD integrale esteso ad undominio

Il particolare dominio D va spe-cificato Il punto P appartiene aldominio

minusint b

a

f(z) dz integrale principale diCauchy

La funzione f(z) egrave discontinua lun-go la linea che congiunge a e be lrsquointegrale viene calcolato comelimite simmetrico a cavallo delladiscontinuitagrave∮

`

f(z) dz circuitazione di f lungo lalinea chiusa `

L[f(t)] trasformata di Laplace F (s) = L[f(t)]

Lminus1[F (s)] antitrasformata di Laplace f(t) = Lminus1[F (s)]

F [f(t)] trasformata di Fourier F (ω) = F [f(t)]

Fminus1[F (ω)] antitrasformata di Fourier f(t) = Fminus1[F (ω)]

ABC angolo Il vertice corrisponde al punto B︷ ︷AB arco

AB segmento

~V vettore

|~V | V modulo di vettore

~V1 middot ~V2 prodotto scalare Non usare mai lrsquooperatore times per ilprodotto scalare

~V1 and ~V2~V1 times ~V2

prodotto vettore

int`

~V middotminusrarrd` lsquolavororsquo di ~V lungo la linea `

intS

~V middotminusrarrdS flusso di ~V attraverso la

superficie S

gradΦ nablaΦ gradiente Si puograve indicare anche con minusminusminusminusrarrgradΦoppure minusrarrnablaΦ

continua

B3 NOMENCLATURA 443

Continua tabella B8

Simbolo Significato Note

div ~V nabla middot ~V divergenza

rot ~V nablatimes ~V rotore Si puograve indicare anche conminusminusminusrarrrot ~V

oppureminusminusminusminusrarrnablatimes ~V

nabla2Φ laplaciano di uno scalare

nabla2~V laplaciano di un vettore Vettore le cui componenti sono or-dinatamente i laplaciani delle com-ponenti di ~V Si puograve indicare ancheconminusminusrarrnabla2~V

x valore istantaneo

X valore efficace Il concetto ha senso solo se x(t) egraveperiodica

x xmax valore massimo Il valore massimo della funzione x(t)in un intervallo prefissato tmindividetmax

x xmin valore minimo Il valore minimo della funzione x(t)in un intervallo prefissato tmindividetmax

x valore medio Il valore medio della funzione x(t) inun intervallo prefissato tmin divide tmax

Re z parte reale

Im z parte immaginaria Se z = x+ i y allora Im z dovrebbeessere uguale a y e non a i y matalvolta egrave usato per i y

|z| modulo

arg z argomento o anomalia z = |z| ei arg z

zlowast coniugato Nei testi matematici egrave piugrave comune z

flowast(s) paraconiugato flowast(s) = f(minuss) ma se f(s) egrave hermi-tiana flowast(i y) = flowast(i y)

A insieme A = a1 a2 Nello stesso mo-do per indicare altri insiemi si pos-sono usare altre lettere maiusco-le che non siano giagrave associate adinsiemi particolari

empty insieme vuoto

continua

444 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B8

Simbolo Significato Note

Ω universo

N N insieme dei numeri interipositivi

Z Z insieme dei numeri interirelativi

Q Q insieme dei numeri razionali

R R insieme dei numeri reali

C C insieme dei numericomplessi

AtimesB prodotto cartesiano diinsiemi

Ogni elemento del prodotto cartesia-no egrave formato dallrsquoaccoppiamento diun elemento dellrsquoinsieme A con unelemento dellrsquoinsieme B

Rn Rn insieme delle n-uple reali Indica anche lo spazio reale a ndimensioni

Cn Cn insieme delle n-uplecomplesse

Indica anche lo spazio complesso adn dimensioni

exist esiste Esiste ed egrave unico exist

non esiste

a isin A appartiene

a isin A non appartiene

A 3 a contiene

A 3 a non contiene

A capB intersezione

A cupB unione

AB differenza Lrsquoinsieme AB egrave formato daglielementi di A esclusi quelli cheappartengono anche a B

ΩA complemento ΩA = ΩA

A sub B egrave contenuto A egrave un sottoinsieme di B

A sub B non egrave contenuto

continua

B3 NOMENCLATURA 445

Continua tabella B8

Simbolo Significato Note

A sube B egrave contenuto o coincide

A sube B non egrave contenuto neacute coincide

B sup A contiene B contiene lrsquoinsieme A

B sup A non contiene

B supe A contiene o coincide

B supe A non contiene neacute coincide

A matrice Quando la matrice ha una sola co-lonna (riga) si egrave soliti usare lette-re minuscole La matrice puograve essereesplicitata in uno dei modi seguenti

A =

a11 a1r an1 anr

oppure A =

a11 a1r an1 anr

|A| det A determinante La matrice A di cui si calcola il

determinante deve essere quadrataEgrave

det A =

∣∣∣∣∣∣∣a11 a1n an1 ann

∣∣∣∣∣∣∣A norma

tr A traccia tr A =nsumi=1

aii

Alowast matrice coniugata Nei testi di matematica egrave piugravefrequente A

A tA matrice trasposta Si indica anche con AT Questo se-condo simbolo egrave piugrave adatto quandola matrice egrave esplicitata mediante isuoi elementi

A matrice associata A = Alowast

Alowast matrice paraconiugata Alowast(s) = A(minuss) ma se gli elementiaij(s) di A sono hermitiani forall i j egraveAlowast(i y) = A(i y)

continua

446 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B8

Simbolo Significato Note

D matrice diagonale D = diag (a1 an) Puograve essereusata qualunque altra lettera purcheacutene sia definito il significato

I 1 matrice identitagrave Il secondo simbolo puograve essere usa-to solo quando il primo possaingenerare confusione con altregrandezze

G diadica

sn i capitalizzazione Coefficiente di capitalizzazione di nannualitagrave posticipate allrsquointeresse i

sn i capitalizzazione Coefficiente di capitalizzazione di nannualitagrave anticipate allrsquointeresse i

an i attualizzazione Coefficiente di attualizzazione di nannualitagrave posticipate allrsquointeresse i

an i attualizzazione Coefficiente di attualizzazione di nannualitagrave anticipate allrsquointeresse i

σn i reintegrazione Coefficiente di reintegrazione me-diante n annualitagrave posticipate allrsquoin-teresse i

σn i reintegrazione Coefficiente di reintegrazione me-diante n annualitagrave anticipate allrsquoin-teresse i

αn i ammortamento Coefficiente di ammortamento me-diante n annualitagrave posticipate allrsquoin-teresse i

αn i ammortamento Coefficiente di ammortamento me-diante n annualitagrave anticipate allrsquoin-teresse i

B3 NOMENCLATURA 447

Tabella B9 Nomenclatura simboli e unitagrave di misura

Grandezza Simbolo Unitagrave SI

angolo piano α β γ rad

angolo solido ω Ω sr

lunghezza l m

larghezza b m

altezza h m

raggio r m

spessore d δ m

diametro d m

percorso curvilineo s m

superficie area S A m2

volume V v m3

lunghezza drsquoonda λ m (monda)

numero drsquoonda (1λ) σ mminus1 (ondem)

ondulanza (2πλ) k mminus1

attenuazione spaziale α mminus1 (Npm)

costante di fase β mminus1

costante di propagazione (α+ iβ) γ mminus1

tempo t s

periodo T s (sciclo)

frequenza f Hz (ciclis)

pulsazione ω sminus1

tempo di rilassamento o costante di tempo τ s (sNp)

coefficiente di smorzamento δ sminus1 (Nps)

decremento logaritmico (Tτ) Λ (Npciclo)

velocitagrave v u ms

continua

448 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B9

Grandezza Simbolo Unitagrave SI

velocitagrave angolare ω rads

accelerazione a ms2

accelerazione angolare α rads2

accelerazione di gravitagrave g ms2

costante di gravitazione G Nm2kg2

velocitagrave della luce nel vuoto c0 ms

massa m kg

massa volumica kgm3

densitagrave relativa (allrsquoacqua) d ndash

volume massico (1) v m3kg

quantitagrave di moto p kgms

momento della quantitagrave di moto L kgm2s

momento quadratico di superficie I m4

momento di inerzia J kgm2

forza F N

coppia T M Nm (Nmrad)

momento di una forza M Nm (Nmrad)

pressione p Pa

tensione normale σ Pa

tensione di taglio τ Pa

allungamento relativo ε ndash

modulo di elasticitagrave E Pa

angolo di torsione γ rad

modulo di torsione G Pa

dilatazione volumica relativa ϑ ndash

modulo di compressione K Pa

continua

B3 NOMENCLATURA 449

Continua tabella B9

Grandezza Simbolo Unitagrave SI

rapporto di Poisson micro ndash

viscositagrave dinamica η Pa s

viscositagrave cinematica (η) ν m2s

coefficiente di attrito micro ndash

tensione superficiale γ σ Nm

energia E J

energia potenziale Ep V Φ J

energia cinetica Ek T K J

lavoro W J

potenza P W

rendimento η ndash

velocitagrave del suono c ms

velocitagrave longitudinale cl ms

velocitagrave trasversale ct ms

velocitagrave di gruppo cg ms

flusso energetico (acustico) P Wm2

fattore di riflessione (acustica) ndash

fattore di assorbimento (acustico) αa α ndash

fattore di trasmissione (acustica) τ ndash

fattore di dissipazione (acustica) δ ndash

livello sonoro LN Λ dB

corrente elettrica i I A

densitagrave di corrente j J Am2

carica elettrica Q C

densitagrave volumica di carica Cm3

densitagrave superficiale di carica σ Cm2

continua

450 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B9

Grandezza Simbolo Unitagrave SI

potenziale elettrico V V

tensione (elettrica) V V

impulso di tensione U Vs

forza elettromotrice E V

campo elettrico E K Vm

spostamento elettrico D Cm2

flusso elettrico Ψ C

capacitagrave C F

permittivitagrave (o permettivitagrave) ε Fm

permittivitagrave del vuoto ε0 Fm

permittivitagrave relativa εr ndash

polarizzazione dielettrica P Cm2

suscettivitagrave elettrica (εr minus 1) χe ndash

elettrizzazione (Dε0 minus E) Ei Ki Vm

polarizzazione (D minus ε0E) P Cm2

momento di dipolo (elettrico) p Cm

campo magnetico H Am

potenziale magnetico Um A

forza magnetomotrice Fm A

induzione magnetica B T

flusso di induzione (magnetica) Φ Wb

permeabilitagrave micro Hm

permeabilitagrave del vuoto micro0 Hm

permeabilitagrave relativa micror ndash

magnetizzazione M Am

suscettivitagrave magnetica (micror minus 1) χm κ ndash

continua

B3 NOMENCLATURA 451

Continua tabella B9

Grandezza Simbolo Unitagrave SI

momento elettromagnetico m micro Am2

polarizzazione magnetica J T

resistenza R W

reattanza X W

impedenza Z W

fattore di qualitagrave QL QC ndash

coefficiente di risonanza Q ndash

conduttanza G S

suscettanza B S

ammettenza Y S

resistivitagrave Wm

conducibilitagrave σ γ Sm

induttanza (propria) L H

induttanza mutua M H

coefficiente di accoppiamento (MradicLpLs) k ndash

coefficiente di dispersione (1minus k2) σ ndash

riluttanza R R Hminus1

permeanza Λ H

potenza reattiva Q VA

potenza apparente P VA

sfasamento ϕ rad

numero delle fasi m ndash

angolo di perdita δ rad

numero di spire N n ndash

densitagrave volumica di energia elettromagnetica w Jm3

vettore di Poynting S Wm2

continua

452 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B9

Grandezza Simbolo Unitagrave SI

potenziale vettore magnetico A A Wbm

temperatura termodinamica T K

temperatura (Celsius) t degC

quantitagrave di calore Q J

entropia S JK

energia interna U J

energia libera (U minus TS) F J

entalpia H J

entalpia libera G J

coefficiente di pressione (part(ln p)partT |V ) β Kminus1

compressibilitagrave (minuspart(lnV )partp|T ) κ m2N

coefficiente di dilatazione lineare α Kminus1

coefficiente di dilatazione volumica γ Kminus1

conducibilitagrave termica λ W(mK)

calore massico cp cv J(kgK)

capacitagrave termica Cp Cv JK

rapporto dei calori massici κ ndash

flusso termico Φ W

flusso di calore areico q Wm2

coefficiente di trasmissione termica τ W(m2K)

coefficiente di diffusione termica a m2s

potenza raggiante Q W W

intensitagrave energetica I Wsr

irradiamento E Wm2

radianza L W(m2 sr)

intensitagrave luminosa I cd

continua

B3 NOMENCLATURA 453

Continua tabella B9

Grandezza Simbolo Unitagrave SI

flusso luminoso Φ lm

quantitagrave di luce Q lm s

luminanza L cdm2

illuminamento E lx

fattore di assorbimento α ndash

fattore di riflessione ndash

fattore di trasmissione τ ndash

indice di rifrazione n ndash

distanza di due piani reticolari adiacenti d m

angolo di Bragg ϑ rad

massa efficace dellrsquoelettrone mlowast meff kg

energia di Fermi EF J

vettore drsquoonda di Fermi kF mminus1 (radm)

coefficiente di Seebeck S VK

coefficiente di Peltier Π V

coefficiente piezoelettrico(polarizzazionesforzo)

dmn CN

temperatura caratteristica di Weiss ΘW K

temperatura di Curie TC K

temperatura di Neel TN K

coefficiente di Hall RH Vm2A2

quantitagrave di sostanza n mol

massa molare M kgmol

volume molare Vm m3mol

energia interna molare Um Jmol

capacitagrave termica molare Cpm Cvm J(molK)

continua

454 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B9

Grandezza Simbolo Unitagrave SI

entropia molare Sm J(molK)

concentrazione di un costituente c molm3

molalitagrave di un soluto m molkg

dose assorbita D Gy

energia impartita massica z Gy

indice di dose assorbita Di Gy

rateo di dose assorbita D Gys

equivalente di dose H Sv

esposizione X Ckg

rateo di esposizione X C(kg s)

attivitagrave di un radio nuclide A Bq

Appendice C

Divisione in sillabe

Lrsquoalgoritmo per dividere in sillabe le parole in fin di riga egrave una specialitagrave delsistema TEX ed egrave stata incorporata in diversi altri programmi tra i quali meritasegnalare OpenOffice e NeoOffice come esempi di software Open Source a cuipossono collaborare tutti gli utenti che ne hanno la possibilitagrave e la competenzaun porsquo come succede per il sistema TEX

TEX attiva lrsquoalgoritmo di sillabazione quando terminata la lettura di uncapoverso dal file sorgente e dopo aver trasformato le informazioni contenutenel file sorgente in una lunga linea di caratteri e altre informazioni specifichecon lrsquoaiuto dei pacchetti inputenc e fontenc deve accingersi a spezzare questalunga riga nelle varie righe giustificate che appariranno nel file di uscita

Si noti bene tutte le macro presenti nel file sorgente sono state giagrave elaborateal punto che la lunga riga contiene solo caratteri e alcuni comandi rsquoprimitivirsquo chenon producono testo e che il motore di composizione usa solo nel momento dicreare la pagina di uscita

Per quel che riguarda la sillabazione si noti che il file di ingresso potevacontenere caratteri codificati in diversi modi mentre il file di uscita e quindi lalunga riga contiene solo caratteri codificati secondo le prescrizioni del font usatiper lrsquouscita Se si usa il vecchio encoding OT1 per i font di uscita qualunquelettera con segni diacritici non egrave compresa nella polizza dei caratteri e deve venireottenuta componendo il carattere di base con il segno diacritico che gli competequesta composizione si ottiene per sovrapposizione il comando per eseguirequesta sovrapposizione egrave quindi un comando primitivo ancora presente nellastringa che costituisce la lunga riga da spezzare Se invece si usa la codifica T1 lelettere con diacritici delle lingue occidentali sono giagrave tutte presenti nella polizzadel font usato e quindi la lunga riga contiene solo lettere (sempre trascurando lealtre informazioni codificate che verranno usate solo nel processo di formazionedella pagina di uscita alcune delle quali solo durante la scrittura nel file di uscitadi una pagina completa)

Ciograve premesso bisogna capire come fa TEX a individuare una parola ciograve cheil programma crede che sia una parola per TEX una parola egrave una sequenza dilettere maiuscole o minuscole tratte dallo stesso font che comincia dopo unospazio ma puograve essere preceduta da segni di interpunzione in senso lato (peresempio parentesi virgolette ecc) e finisce con il primo token che non abbia lecaratteristiche di una lettera Questa stringa non puograve essere seguita da tokendiversi da una lettera che appartengano a certe categorie per esempio non puograve

455

456 APPENDICE C DIVISIONE IN SILLABE

essere seguita dal comando footnote Non puograve nemmeno essere preceduta dauna macro percheacute lo spazio che separa la macro dalla stringa di lettere servegiagrave allrsquointerprete TEX per capire che la macro egrave terminata la stringa puograve perogravecostituire lrsquoargomento di una macro Non deve nemmeno essere la prima paroladopo un cambiamento di modo per esempio da verticale a orizzontale questosignifica che la prima parola di un capoverso non viene divisa in sillabe

Il lettore puograve sfruttare il comando showhyphens per vedere come TEX dividain sillabe usando babel con lrsquoopzione per lrsquoitaliano potrebbe vedere che cosasuccede scrivendo

showhyphensmacroistruzione macroistruzione

e troverebbe sullo schermo o nel file log un messaggio del tipo

Underfull hbox (badness 10000) in paragraph at lines 5300--5300[] fontiii ma-croi-stru-zio-ne ma-cro-istru-zio-ne

A seconda del sistema operativo e della particolare distribuzione del sistemaTEX il nome fontiii potrebbe essere sostituito da qualcosa drsquoaltro in ognicaso esso rappresenta la descrizione interna del font in uso nel momento in cuiviene eseguito il comando showhyphens

Lrsquoannotazione lsquoUnderfull hbox (badness 10000) in paragraph at lines rsquopuograve venire ignorata per altro egrave il messaggio che TEX emette ogni volta che deveallargare troppo lo spazio interparola per giustificare una riga

La parte piugrave interessante viene dopo infatti lsquoma-croi-stru-zio-nersquo egrave la divisionein sillabe che TEX eseguirebbe spontaneamente senza sapere che si tratta di unaparola composta mentre lsquoma-cro-istru-zio-nersquo egrave la divisione in sillabe conseguenteallrsquouso del carattere attivo che come si egrave giagrave detto serve appunto (tra lrsquoaltro)per indicare una divisione etimologica piuttosto che fonetica

Si noti che la potenziale parola talvolta non coincide con quello che gli umanisanno essere una parola della loro lingua o di unrsquoaltra lingua straniera

Se si usasse la codifica OT1 invece della codifica T1 gli accenti vengonocollocati sulle vocali (o sopra o sotto altre lettere come per esempio ccedil oppure čin molte altre lingue diverse dallrsquoitaliano) mediante un comando primitivo che sichiama accent quindi anche se uno scrive qualitagrave quando TEX interpreta ilcontenuto del file sorgente sostituisce la lsquoagraversquo con una sequenza di istruzioni inparticolare sostituisce la stringa iniziale con qualitaccent18a in questo modoper TEX quello che lui crede essere una parola egrave la stringa lsquoqualitrsquo allrsquointerno diquesta stringa esso trova un solo punto di divisione lsquoqua-litrsquo e quindi lrsquoeffettocomplessivo sarebbe di dividere la parola in lsquoqua-litagraversquo invece che in lsquoqua-li-tagraversquo

Queste cesure mancate potrebbero essere talvolta causa di composizioniin cui qualche riga sporge fuori dalla giustezza oppure qualche riga egrave stataspaziata troppo per consentire la giustificazione tuttavia il problema egrave facilmenterisolubile basta usare la direttiva

usepackage[T1]fontenc

come si egrave giagrave detto diverse volteQuando si esamina il file log per cercare di capire percheacute qualche cesura in

fin di riga ha provocato righe troppo lunghe o troppo spaziate si scopre sempreche le cause sono quelle descritte sopra una macro precede troppo da vicinoo segue troppo da vicino una stringa di lettere che potrebbe essere una parola

457

del linguaggio oppure si egrave usato un font che non consente la cesura come peresempio un font della famiglia a spaziatura fissa

Un espediente elementare sarebbe quello di dividere a mano basta inserireil comando - allrsquointerno di una parola nel punto in cui si vorrebbe eseguire lacesura in questo testo egrave stato eseguito solo per una voce dellrsquoindice analiticoformata da una parola talmente lunga che invadeva la colonna adiacente

Ma piugrave in generale basta inserire una spaziatura orizzontale di ampiezzanulla fra la parola e lrsquooggetto lsquotroppo vicinorsquo come per esempio una macro ouna nota o allrsquoinizio di un capoverso o prima della prima parola che segue uncomando item in una lista Ciograve si ottiene usando comandi di basso livello comeper esempio

hskip 0pt

dove hskip egrave il comando primitivo che inserisce lo spazio orizzontale specificatoimmediatamente dopo nel nostro caso 0 pt

Egrave bene conoscere questo meccanismo al fine di porre rimedio alle rare circo-stanze in cui il meccanismo di sillabazione non svolge il suo compito come ci siaspetterebbe

Vale la pena di aggiungere una osservazione Nessun meccanismo automaticoegrave infallibile la sillabazione in italiano funziona molto bene ma non si puograveescludere che un neologismo particolare o una parola tecnica possa risultaredivisa in sillabe in modo scorretto specialmente se egrave ricavato da una radicestraniera Per esempio la parola tecnica dellrsquoambito medico lsquodispepsia viene divisain lsquodi-spep-siarsquo ovviamente questo egrave un caso semplice da trattare mediantelrsquouso del carattere attivo percheacute scrivendo dispepsia la parola risultadivisa in modo etimologico Dalla chimica si potrebbe prendere un lunga parolacomposta per esempio desclorfeniraminacloridrato che puograve venire scritta nellaforma desclorfeniraminacloridrato che porta sempre alla divisione insillabe corretta anche nei punti non esplicitamente indicati des-clor-fe-nir-ami-na-clor-idra-to Attenzione percheacute il moncone di parola -ami- non viene divisoin -a-mi- Percheacute il segno spezza la stringa che TEX crede essere una parolain tanti monconi che TEX tratta come parole intere e in nessuna parola TEXstacca una sillaba iniziale o finale formata da una sola lettera questo fatto verragravecommentato meglio piugrave avanti

In inglese il meccanismo di sillabazione sembra funzionare correttamentein poco piugrave del 90 dei casi In francese lrsquoalgoritmo funzionerebbe benissimononostante le numerose lettere con diacritici ma le regole della buona educazioneimpediscono di dividere in sillabe parole che lascino nella riga contenente lacesura o nella riga seguente monconi di parole che hanno significati volgari acausa di ciograve alcune parole non vengono divise affatto o vengono divise in monconitalvolta troppo lunghi In tedesco il problema egrave veramente difficile a causa dellenumerosissime parole composte che vanno divise etimologicamente talvolta conun cambio di ortografia Tuttavia lrsquoalgoritmo viene usato con soddisfazione datutti e nei pochi casi in cui fallisce ci sono almeno tre strade assai semplici daseguire

1 Si marcano a mano con - i punti di divisione di quelle poche paroleche nelle bozze risultano divise in modo scorretto con lrsquoitaliano ciograve egraveestremamente raro per non dire impossibile percheacute le norme UNI cheregolano la materia ammettono come corrette tutte le divisioni fonetiche

458 APPENDICE C DIVISIONE IN SILLABE

certo con parole straniere o derivate da radici straniere questo potrebbenon essere corretto

2 Si usa per lrsquoitaliano il carattere attivo nelle parole composte che sidesidera dividere etimologicamente si noti che le norme UNI che regolanoquesta questione in italiano accettano la divisione fonetica anche per leparole composte ma in uno scritto tecnico egrave preferibile usare la divisioneetimologica Nelle altre lingue straniere tranne in inglese le opzioni dibabel prevedono quasi sempre un comando che utilizza il carattere attivo per esempio - che consente di svolgere la stessa funzione che da solosvolge in italiano bisogna consultare la parte di documentazione di babelrelativa alla lingua specifica

3 Si ricorre alla lista di parole divise in sillabe contenute nellrsquoargomento delcomando hyphenation per lrsquoitaliano per esempio se si dovesse usarespesso la parola lsquomacroistruzionersquo al singolare e al plurale basterebbescrivere nel preambolo

hyphenationma-cro-istru-zio-ne ma-cro-istru-zio-ni

Nel preambolo si possono usare diverse liste introdotte mediante il coman-do hyphenation i loro contenuti vengono raccolti tutti assieme in unaapposita memoria del programma il quale consulta sempre questa listaprima di attivare lrsquoalgoritmo di sillabazione vero e proprioCon lingue che usano la declinazione (come succede in parte per lrsquoitaliano)e la coniugazione queste liste potrebbero diventare immense In italiano unsostantivo richiede due voci singolare e plurale per un aggettivo ne possonoessere richieste quattro singolare e plurale maschile e femminile per unverbo occorrono una sessantina di voci In italiano si ricorre assai raramentea questo meccanismo ma per esempio per lrsquoinglese ogni installazione delsistema TEX prevede la lettura automatica iniziale di una lista di eccezionidi diverse centinaia di parole

Tuttavia superati questi punti vediamo come fa TEX a dividere in sillabeEsso spezza ogni parola che si trovi verso la fine di ogni riga nelle sue compo-

nenti di una sola lettera di due lettere di tre lettere ma con un procedimentosequenziale che non comporti tutte le possibili scomposizioni nel fare questo essoegrave guidato dai lsquopattern di sillabazionersquo Questi sono contenuti in un file che in fasedi costruzione del formato vengono allocati in una struttura dati molto veloce daesplorare egrave per questo che bisogna sempre essere sicuri che detto file sia statoelaborato nella costruzione del formato altrimenti la sillabazione per la linguacui corrispondono quei pattern egrave impossibile Essi sono formati da monconi diparole in cui egrave indicata la possibilitagrave di dividere in sillabe mediante delle cifrepari (non dividere) o dispari (dividi pure) che possono andare da 0 a 9 Se fra lestesse due lettere di pattern diversi compaiono cifre diverse non si tratta di unacontraddizione ma fra le due indicazioni prevale quella con la cifra piugrave alta Peresempio il pattern 1b dice che si puograve dividere prima della lsquobrsquo ma non dopo (lacifra assente implica la cifra zero) ma il pattern 2bb dice che si puograve andare acapo dopo la prima lsquobrsquo ma non prima Infatti tenendo conto dei due pattern ilsecondo si legge come se fosse 2b1b0 il che conferma quanto appena descritto aparole

459

d e l l rsquo i s t r u z i o n e

d 0 e 0 l 0 l 0 rsquo 0 i 0 s 0 t 0 r 0 u 0 z 0 i 0 o 0 n 0 e1 l rsquo 2 1 s 2 1 r 1 z 1 n

1 l 1 t2 l 0 l t 2 r

d 0 e 2 l 1 l 0 rsquo 2 i 1 s 2 t 2 r 0 u 1 z 0 i 0 o 1 n 0 e

Tabella C1 Pattern usati per dividere in sillabe dellrsquoistruzione

d i s c i n e s i a

d 0 i 0 s 0 c 0 i 0 n 0 e 0 s 0 i 0 a1 s 2 1 n 1 s 2

1 cd 0 i 2 s 3 c 0 i 0 n 0 ed 0 i 2 s 3 c 0 i 1 n 0 e 1 s 2 i 0 a

Tabella C2 Pattern usati per dividere in sillabe discinesia

Prendiamo un esempio piugrave complesso per esempio la lsquoparolarsquo con elisionee apostrofo dellrsquoistruzione Conviene rifarsi alla tabella C1 in questa tabellala parola iniziale egrave scomposta nelle sue componenti ed egrave preceduta e seguita dadue segni di punto questi rappresentano per TEX i delimitatori della stringadi lettere che lui ritiene essere una parola Nella seconda riga tutti i codici dicesura pari al valore di default lsquozerorsquo sono intercalati alle lettere Nella terzae nella quarta riga sono indicati i pattern che coinvolgono una sola letteracontornati da rispettivi codici di consenso o interdizione della cesura come sivede questi pattern coinvolgono solo le consonanti e lrsquoapostrofo Nella quinta rigasono riportati i pattern che coinvolgono due lettere insieme ai rispettivi codici diconsenso e interdizione della cesura per lrsquoitaliano non esistono altri pattern ditre o piugrave lettere che si possano trovare nella parola indicata quindi non ci sonoaltre righe da scrivere nella tabellina Perciograve nellrsquoultima riga oltre alle letterecomponenti sono riportate le cifre piugrave alte che compaiono in ogni colonna dicifre Ne consegue che le cesure possono cadere solo fra le due lsquolrsquo tra la lsquoirsquo e lalsquosrsquo tra la lsquoursquo e la lsquozrsquo e tra la lsquoorsquo e la lsquonrsquo dove compaiono i codici dispari

La tabella C2 mostra un esempio ancora piugrave complesso non lo si commentapercheacute il procedimento esposto in relazione alla tabella C1 egrave il medesimo Questavolta la parola da dividere in sillabe egrave discinesia che i medici pronunciano con ilprefisso lsquodisrsquo separato dalla parola lsquocinesiarsquo Il risultato infatti porta alla divisioneetimologicamente corretta dis-ci-ne-sia Il lungo pattern che compare nella quintariga serve appunto per specificare lrsquoeccezione alla regola di non separare la lsquosrsquoimpura (che in questo caso insieme alla lsquocrsquo e alla lsquoirsquo forma un lsquotrigrammarsquoche normalmente si pronuncia diversamente dalle singole lettere componenti)il pattern egrave sufficientemente lungo per isolare la radice di lsquodiscinesiarsquo e deisuoi derivati come per esempio lsquodiscineticorsquo ma non coinvolge altre parole checominciano nello stesso modo per esempio lsquodisciplina lsquodiscintorsquo eccetera

Per lrsquoinglese i pattern sono quasi 5000 le eccezioni introdotte con il comandohyphenation sono alcune centinaia e la probabilitagrave di una divisione errata egravebassa ma non nulla

In italiano i pattern sono circa 330 la lista delle eccezioni egrave nulla e negli ultimi

460 APPENDICE C DIVISIONE IN SILLABE

10 anni non sono stati segnalati errori tutto ciograve la dice lunga sulla facilitagrave delladivisione fonetica dellrsquoitaliano e della difficoltagrave della divisione ritmica dellrsquoinglesein questa lingua due parole ortograficamente identiche ma che si pronuncianocon accenti ritmici diversi richiedono divisioni diverse record (nome) e record(verbo) si dividono rispettivamente in rec-ord e re-cord

I pattern per lrsquoitaliano sono tradizionalmente contenuti nel file ithyphtexma le recenti estensioni allrsquouso dei font codificati secondo la codifica UNICODEha portato alla definizione di un altro sistema di file per la definizione dei patternper le varie lingue Secondo questo nuovo schema il caricamento dei patternegrave suddiviso fra due file il primo egrave semplicemente un loader che esegue alcunedefinizioni e poi carica il file dei pattern vero e proprio questrsquoultimo per lrsquoitalianosi chiama hyph-ittex La lista vera e propria di pattern per lrsquoitaliano noncambia dal vecchio al nuovo formato ma per altre lingue ci possono essere diversicambiamenti legati alla presenza di caratteri specifici di quella lingua che sefossero scritti con la codifica interna di TEX per i numeri esadecimali oppurefossero codificati con numeri decimali risulterebbero del tutto incomprensibili Illoader allora definisce quei caratteri con delle sequenze di controllo per esempioae al posto di ^^^^00e6 in modo da individuare direttamente la legatura lsquoaeligrsquo

Esercizio C1 Il lettore cerchi nellrsquoelenco dei pattern (nel file ithyphtex op-pure hyph-ittex) quelli che corrispondono alle possibili divisioni di unaparola a sua scelta e controlli a mano la divisione prodotta dai patternsuccessivamente inserisca la stessa parola dentro al comando showhyphense verifichi se LATEX divide come egli ha trovato a mano Per semplicitagrave usila classe minimal

Esercizio C2 Percheacute la lista dei pattern contiene lrsquoattribuzione di un codicestrano allrsquoapostrofo e poi la lista dei pattern contiene anche pattern conuno o due apostrofi

Esercizio C3 Il file dei pattern non contiene nulla per dividere in sillabe inmodo etimologico la parola dispepsia anche percheacute il dizionario Garzantiindica solo la divisione di-spep-siaQuale pattern bisognerebbe aggiungere a quelli esistenti per dividere questaparola e i suoi derivati come per esempio dispeptico in modo etimologico

In alcune circostanze pur dividendo in sillabe le parole in fin di riga riman-gono delle righe sporgenti fuori della giustezza oppure troppo lsquobruttersquo percheacute lospazio interparola egrave stato allargato troppo

Non egrave il caso di preoccuparsi troppo se lrsquoindice di bruttezza (badness ininglese) egrave di qualche centinaio o di poche migliaia il messaggio di bruttezzache viene esposto sullo schermo e trascritto nel file log comincia a diventarepreoccupante se si supera il valore 5000 ma certamente la bruttezza egrave lsquoinfinitarsquose il messaggio riporta una bruttezza di 10 000

Per la bruttezza delle righe si puograve specificare nel preambolo un limite sotto ilquale il programma non deve preoccuparsi il parametro hbadness puograve venireimpostato nel preambolo ad un valore diverso a seconda del tipo di documento edel suo contenuto per esempio

hbadness=5000

461

permette di eliminare tutti i messaggi relativi alle righe la cui bruttezza siainferiore al valore 5000

In modo analogo si possono eliminare alcuni messaggi per la bruttezza verti-cale che TEX emette quando deve allargare troppo la gomma dei contrografismiverticali durante la composizione della pagina il parametro specifico si chia-ma vbadness talvolta la bruttezza verticale puograve essere notevole ma a partestabilire un valore per il parametro appena menzionato se si vuole renderela composizione veramente professionale bisogna apportare modifiche al testoda comporre Generalmente questa bruttezza verticale dipende dal fatto cheun oggetto ingombrante (come ad esempio il titolino di una sezione seguito daalmeno due righe di testo) non trova posto al fondo di una pagina Allungando iltesto che precede lrsquooggetto ingombrante si riduce lrsquoammontare dellrsquoallargamentodella gomma verticale

Tornando alle righe brutte si puograve procedere come per le pagine brutte simodifica il testo Tuttavia sarebbe meglio conoscere il meccanismo con cui TEXdivide i capoversi in righe Siccome perograve questo argomento si addentra nelle partipiugrave tecniche si rinvia il lettore al testo di base il TEXbook dove lrsquoargomento egravesviscerato nei dettagli

Qui il lettore si accontenti di sapere che la brutta divisione che TEX hatrovato egrave quella che rende minima la bruttezza dellrsquointero capoverso dunque crsquoegravepoco da fare per ridurre la bruttezza visto che questa egrave la minima possibile Sipuograve tentare per esempio di introdurre degli altri punti di cesura mediante ilcomando -

Ci si ricordi inoltre che i pattern per lrsquoitaliano non dividono i dittonghi (ed egravegiusto) ma non dividono nemmeno gli iati questa decisione egrave stata presa con unamotivazione lsquopsicologicarsquo il lettore si trova a disagio se trova un gruppo di due opiugrave vocali spezzato fra due righe anche quando la grammatica lo consentirebbesi egrave deciso di spezzare i gruppi di tre o piugrave vocali se queste contengono almenoun dittongo o un lsquotrittongorsquo ma lasciando un eventuale trittongo indiviso quindilsquoquietorsquo si divide solo in lsquoquie-torsquo percheacute contiene un trittongo ma lsquomaieuticarsquo sidivide in lsquoma-ieu-ti-carsquo percheacute le quattro vocali contengono un trittongo Perogravelsquoaiuolarsquo viene diviso solamente in lsquoaiuo-larsquo e non in lsquoa-iuo-larsquo come la grammaticaconsentirebbe percheacute TEX non divide dopo sillabe iniziali o prima di sillabefinali lsquotroppo cortersquo

Una sillaba iniziale o finale egrave troppo corta se contiene meno lettere del numerospecificato dai parametri lefthyphenmin e righthyphenmin per lrsquoitalianoentrambi questi parametri valgono 2 mentre per lrsquoinglese il francese ed altrelingue essi valgono rispettivamente 2 e 3

Con i vincoli tipografici e psicologici indicati pertanto parole come lsquoidearsquolsquomaestrorsquo lsquoeroersquo lsquocroatorsquo perdono dei possibili punti di divisione grammaticalema rispettano le regole tipografiche e quelle psicologiche Allrsquooccorrenza egrave semprepossibile dividere mediante lrsquouso del carattere attivo oppure mediante la predi-sposizione di elenchi di parole divise da dare in pasto al comando hyphenationchi scrive perograve non ne ha mai avuto bisogno specialmente da quando pdflatexpuograve usare il pacchetto microtype che consente una composizione migliore e conpochissime parole divise in sillabe in fin di riga Questo testo ha pagine intere incui non compare nemmeno una cesura o dove compare una cesura sola

Perciograve in quelle rare circostanze in cui la giustezza non consente la compo-sizione perfetta nemmeno usando microtype per un dato capoverso diviso inmodo brutto si potrebbe formare un gruppo dove si impostano i due parametri

462 APPENDICE C DIVISIONE IN SILLABE

lefthypenmin eo righthyphenmin a valori piugrave bassi eo si inseriscono ledivisioni esplicite per esempio di paese oppure di ideale La bruttezzasi sposta dalla forma del capoverso alle cesure scelte in modo infelice

Unrsquoaltra possibilitagrave egrave quella di usare lrsquoambiente sloppypar con le impostazionie la sintassi seguente

beginsloppypartolerance=〈tolleranza〉〈capoverso da comporre〉endsloppypar

Il valore 〈tolleranza〉 viene specificato mediante un numero inferiore a 10 000ma altrimenti piuttosto alto chi scrive solitamente usa il valore 9999 Si trattadi una forte tolleranza che perograve secondo TEX non egrave infinita Il capoverso avragraveuna certa bruttezza ma non saragrave infinitamente brutto

La soluzione migliore se il capoverso lo consente egrave perograve quella di modificareil testo spesso basta aggiungere o togliere una parola oppure scambiare di postodue parole oppure riformulare un periodo o una frase Se il capoverso non egravetroppo corto le possibilitagrave sono innumerevoli

Per altro il lettore attento avragrave notato che in questo testo le cesure in fin diriga sono rarissime in parte egrave merito dellrsquouso del pacchetto microtype e in partedel fatto che la giustificazione delle righe mediante il sapiente allargamento erestringimento dello spazio interparola guidato dallrsquoalgoritmo di minimizzazionedella bruttezza di ciascun capoverso rende la divisione in sillabe piuttosto raraQuesto egrave uno dei pregi del programma di composizione tipografica pdftex che lorende insuperabile in molte applicazioni

Appendice D

Codifica in entrata ecodifica in uscita

Nella pagina 112 si egrave definito ciograve che si intende per codifica La definizione siriferisce ai file relativi ai font che vengono usati per lsquoscriverersquo il documento nelfile di uscita Nello stesso tempo si egrave parlato spesso di codifica dei caratteri concui si scrive il file tex da comporre

Qui bisogna fare attenzione a non confondere le idee infatti la codifica inentrata quella che serve per scrivere i file tex riguarda il modo di funzionaredello shell editor con il quale si esegue questa scrittura La codifica in uscitariguarda le polizze dei caratteri che si usano per la composizione In mezzo fraqueste due codifiche si trova il programma di composizione pdflatex che usa unasua codifica interna

Quando si invoca il pacchetto inputenc con una qualunque opzione di codificache il pacchetto accetti si stabilisce una corrispondenza fra la codifica dei caratteriimmessi con la tastiera nello shell editor (che esso trascrive nel file tex e chemostra graficamente sullo schermo) con la codifica interna di pdflatex

Quando invece si invoca il pacchetto fontenc con una qualunque opzioneaccettata da questo pacchetto si stabilisce una corrispondenza fra il codiceinterno di pdflatex e i vari segni delle polizze dei font usati caratterizzati dallacodifica specificata e trascritti da pdflatex sia nella pagina in lavorazione sianelle pagine emesse nel file di uscita le pagine composte che finalmente sarannovisualizzate sullo schermo o stampate su carta

I dettagli sono molto tecnici e si omettono non conosco nessun documentodove questi dettagli siano descritti in modo comprensibile per quel che riguardala codifica di uscita esiste il file encguidepdf nella cartella doclatexbase dove vengono descritte alcune delle codifiche latine in particolare lacodifica T1

Perograve non egrave particolarmente difficile leggere i file per esempio latin1defe t1encdef1 il primo descrive la corrispondenza fra i caratteri della tastieracodificati secondo la norma ISO 8859-1 nota anche come ISO Latin e la codificainterna di pdflatex

1Si trovano entrambi nella cartellatexlatexbase

463

464 APPENDICE D CODIFICA IN ENTRATA E CODIFICA IN USCITA

Se si apre il file latin1def si vede che le prime righe definiscono conProvideTextCommandDefault il significato di default di alcuni comandi internigeneralmente conosciuti da parte di pdflatex per esempio il primo comando

ProvideTextCommandDefaulttextdegreeensuremath^circ

dice che se textdegree non egrave ancora stato definito esso va composto di defaultin modo matematico con un circoletto ad esponente Naturalmente esistono deipacchetti per i font di uscita che possono definire o ridefinire questo comando didefault per produrre un segno piugrave adeguato disegnato apposta ma in mancanzadi questi font la definizione di default produce un risultato accettabile

Ci sono anche dei comandi del tipo

ProvideTextCommandDefaulttextcentTextSymbolUnavailabletextcent

che emettono un messaggio di errore se si usa il comamdo textcent questosuccede percheacute il segno cent non egrave simulabile in nessun modo per produrlo ci vuoledunque lrsquouso di una polizza di caratteri in uscita che contenga questo segno eche perciograve dia una definizione valida per textcent

Dopo altri comandi di questa specie vengono definite le corrispondenze frai caratteri con gli indirizzi da 164 a 255 nella codifica ISO 8859-1 e la codificainterna di pdflatex Per esempio la definizione

DeclareInputText164textcurrency

specifica che introducendo nello shell editor con la tastiera il carattere che ildriver della tastiera trasforma nel codice 164 questo produce sullo schermo ilsegno curren Egrave vero che fra i primi comandi si dichiara che il segno corrispondenteal comando textcurrency non egrave disponibile ma se questo comando egrave giagrave statodefinito o viene ridefinito in altro modo questo segno potrebbe venire stampatonel modo giusto e non verrebbe emesso nessun avviso di simbolo indisponibileinfatti qualche riga piugrave in alto il segno egrave stato stampato correttamente percheacute lacomposizione di questo testo si affida anche al pacchetto textcomp che permettedi usare i segni della famiglia Text Companion Font illustrati nella figura 119

Per i caratteri in entrata non strettamente ASCII come le lettere nazionalisi hanno poi svariate definizioni det tipo seguente valido per la lettera lsquoiumlrsquo chenella codifica ISO Latin 1 occupa la posizione 239

DeclareInputText239i

Questa dichiarazione sostituisce il carattere lsquoiumlrsquo contenuto nel file di entrata conquanto egrave contenuto nel secondo argomento ma del quale lrsquoutente normale nondeve preoccuparsi esso serve per porre la dieresi sulla lettera lsquoırsquo senza puntinoindicato con la macro i Oggi lrsquoutente normale non deve preoccuparsi della lsquoisenza puntinorsquo (a meno che non scriva in irlandese o in turco) percheacute ci pensasempre LATEX a usarla quando occorre almeno in modalitagrave testo Si vede dunqueche anche in questo caso il carattere non appartenente al sottoinsieme ASCIIviene sostituito con codici interni di LATEX

Si noti dunque che con la codifica di entrata (le altre disponibili con il sistemaTEX sono concepite nello stesso modo ma ovviamente con definizioni diverse)ogni tasto che produca nello shell editor un segno diverso dai caratteri ASCIIviene trasformato in un segno visibile sullo schermo e nel file tex che si sta

465

scrivendo o modificando Quando il file tex verragrave letto da pdflatex ogni carattereche vi si trova viene sostituito da comandi interni di LATEX e verragrave trattato cometale fincheacute non verragrave il momento di trasferire il testo composto nel buffer diuscita costituito dalla famosa scatola 255 riservata da TEX per questo scopo

Si ricorda che i primi 128 caratteri di ogni codifica di ingresso corrispondonosempre ai caratteri definiti dallrsquoAmerican Standard Code for Information Inter-change ndash ASCII che comprendono i 32 codici per lrsquoazionamento delle telescriventi(cose del passato) le cifre i segni di interpunzione e lrsquoalfabeto latino di 26 letterenon accentate in forma maiuscola e minuscola per un totale di 128minus 32 = 96segni stampabili (in realtagrave il centoventottesimo non egrave stampabile e quindi nerestano solo 95) Da una codifica ISO allrsquoaltra cambiano i secondi 128 caratteried egrave per questo che esistono diversi nomi per distinguere le varie codifiche diingresso Ognuno dei file def relativo alla codifica di ingresso definisce i comanditestuali di default e la corrispondenza fra i codici da 164 a 255 con i comandiinterni di LATEX

Il secondo file t1encdef contiene le definizioni delle corrispondenze fra icomandi interni di LATEX e le posizioni dei singoli segni nella tabella del font diuscita La sintassi egrave un porsquo diversa da quella usata per la codifica di ingressoma il significato egrave altrettanto comprensibile Per esempio

DeclareTextAccentlsquoT10DeclareTextAccentrsquoT11

definiscono gli accenti grave e acuto mettendo in relazione i comandi LATEX lsquo ersquo con la posizione dei corrispondenti segni (0 e 1 rispettivamente) nella polizzaconforme alla codifica T1 Di fatto questi accenti possono servire solo per esseresovrapposti a lettere che non hanno corrispondenza nella codifica del font diuscita T1 per esempio s

Per la cediglia che non egrave un segno da mettere sopra una lettera la definizioneegrave molto piugrave complessa

DeclareTextCommandcT1[1]leavevmodesetboxzhbox1ifdimhtz=1exaccent11 1elseooalignunhboxzcrcr

hidewidthchar11hidewidthfi

ma si dice sempre che il comando per la cediglia c trova il segno lsquocedigliarsquo nellaposizione 11 per metterlo sotto la lettera che costituisce il suo unico argomentoPerograve per i segni con la cediglia presenti nella polizza codificata con la codificaT1 come ccedil ţ ş2 allora ulteriori comandi dicono che cosa fare per trovare il segnogiusto nella polizza dei font

Successivamente vengono definite le corrispondenze fra i simboli speciali eoaccentati e gli indirizzi in cui trovare questi segni nella polizza codificata T1Per esempio

DeclareTextSymbolssT1255DeclareTextCompositeT1i239DeclareTextCompositeT1i239

2Questi ultimi due se usati in rumeno non dovrebbero avere la cediglia ma una virgolaspesso perograve i rumeni devono accontentarsi di una approssimazione percheacute molti font mancanodel segno con la virgola esiste il pacchetto combelow per risolvere con LATEX questo problema

466 APPENDICE D CODIFICA IN ENTRATA E CODIFICA IN USCITA

La prima dichiarazione serve per indicare che il segno szlig ottenibile con il comandointerno ss si trova nella posizione 255 della polizza Invece il segno ottenutousando il comando per la dieresi con lrsquoargomento i (i con il puntino) oppurei (i senza puntino) producono entrambi la lsquoiumlrsquo giagrave accentata3 che si trova nellaposizione 236 della polizza dei font codificati T1

Se invece non si egrave specificata nessuna opzione per la codifica del font diuscita LATEX usa la codifica di default OT1 con questa codifica aprendo il fileot1encdef si trovano le seguenti dichiarazioni

DeclareTextAccentOT1127DeclareTextSymboliOT116DeclareTextCompositeCommandOT1ii

La prima dichiarazione indica dove trovare nella polizza dei caratteri il segnoper la dieresi la seconda dice dove trovare nella polizza dei caratteri la lsquoirsquo senzapuntino la terza dice che se in entrata si egrave scritto i invece che direttamente igravela sequenza per il comando della dieresi seguita dalla lettera i col puntino deveessere interpretata alla stessa maniera di come si interpreta il codice di ingressoiuml cioegrave come i Come si vede entrambe le dichiarazioni sono valide solo perla codifica dei font di uscita OT1

Quando quindi LATEX incontra una lsquoirsquo accentata o con la macro per lrsquoaccento orappresentata direttamente con il codice drsquoentrata per la lsquoirsquo accentata si ritrova adover eseguire lrsquoespressione i questa si traduce in parole povere nella stringaaccent127char16 il comando primitivo accent serve per sovrapporre ilsegno che ha lrsquoindirizzo specificato come suo argomento sul segno seguente chequi egrave indicato con il comando primitivo char seguito dallrsquoindirizzo specificodella lsquoirsquo senza puntino I comandi primitivi non sono sviluppabili sono eseguibilima quando lrsquoalgoritmo di divisione in righe entra in gioco agisce sul testo checontiene questi comandi primitivi non ancora eseguiti Come tali non fanno partedella stringa di token leciti in una parola per cui lrsquoalgoritmo di sillabazionetermina la lsquoparolarsquo subito prima del comando per lrsquoaccento cosiccheacute non riesce asillabare completamente lrsquointera stringa che gli umani considerano una parola

Ora dovrebbe quindi essere chiaro che

1 Quando pdflatex deve eseguire la sillabazione usando per lrsquouscita la codificaT1 si trova nel suo buffer interno il capoverso da dividere in righe compostosolo da caratteri e non contiene comandi di nessun genere (tranne quelliche non riguardano il testo) e quindi funziona a dovere Invece con lacodifica OT1 quella di default ogni comando per inserire gli accenti restanel buffer del capoverso e abbiamo visto che questo impedisce a pdflatexdi riconoscere come parole le stesse stringhe di caratteri che gli umaniconsiderano parole

2 I segni accentati delle polizze codificate T1 sono disegnati individualmentequindi lo stesso accento egrave collocato sulla lettera di base nella posizione piugraveopportuna in relazione alla sua forma Invece con la codifica OT1 lo stessoaccento viene sempre centrato sulla mezzeria della lettera di base senzatenere conto delle asimmetrie ottiche associate a ciascuna lettera di base

3Questo fatto succede con tutti gli accenti quando lrsquoargomento egrave una lsquoirsquo Per cui diventaobsoleta la prescrizione che per mettere un accento sopra la lsquoirsquo bisogna usare solo la variantesenza puntino

467

Son queste due ottime ragioni per non usare mai i font con codifiche diverseda T1 quando si compongono con pdflatex testi in lingue che contengono diversidiacritici in realtagrave questa raccomandazione vale anche per lrsquoinglese che solita-mente non usa diacritici ma li usa (a) nelle citazioni di nomi o parole stranieree (b) nelle edizioni storiche o critiche di testi scritti in middle English

Discorsi simili si possono fare per la codifica utf8 solo che ogni carattereUNICODE che si introduce con la tastiera attraverso lo shell editor nel filetex non egrave formato da un solo carattere di otto bit ma da un codice di almeno16 bit per cui la gestione dellrsquoimmissione dei caratteri nel file tex egrave un pocopiugrave complicata Anche la trasformazione dei caratteri immessi in eventualicomandi TEX o LATEX diventa un poco piugrave complessa Ma offre il vantaggio chetastiera permettendo qualunque segno immissibile con la tastiera puograve esserefatto corrispondere con il segno giusto compatibilmente con la codifica dei fontdi uscita Se anche i font di uscita sono codificati UTF-8 non crsquoegrave bisogno dinessun passaggio intermedio ed egrave questo quello che fanno i compilatori xetexluatex e context-mk-iv

Qualsiasi sia la codifica dei caratteri di ingresso nasce un problema che ogniutente di LATEX o degli altri programmi della collezione deve affrontare

Egli deve specificare nel preambolo del suo documento quale sia la codificadel font con il quale ha scritto il file sorgente mediante lrsquouso dellrsquoopzione giustaal pacchetto inputenc altrimenti il suo file non potragrave essere correttamentecompilato

Un errore comune egrave quello di scordarsi addirittura di invocare il pacchettoinputenc non parliamo di specificare una opzione valida oppure di invocareil pacchetto ma di specificare una opzione con coerente con le impostazionidello shell editor Succede piugrave spesso di quanto non si creda Tizio scrive unfile sorgente tex usando la codifica di ingresso utf8 poi spedisce il file al suocollega Caio Caio il cui shell editor egrave configurato per usare la codifica latin1apre il file inviatogli da Tizio ma non riesce a leggere quasi niente percheacute trovail testo intercalato con caratteri strani Questa egrave un situazione frequentissima

Egrave successo anche a chi scrive (utente di un portatile MacBook Pro) diricevere da unrsquoaltra persona anchrsquoessa utente di una macchina simile un fileLATEX codificato con la codifica MacRoman lrsquoaltra persona non si rendeva contoche quella egrave una codifica ristretta ai sistemi Mac e non egrave diffusa come le codifichelsquoapolidirsquo non legate ad un particolare sistema operativo o a una particole marcadi hardware Chi scrive abitualmente usa la codifica ISO Latin 1 per scrivere initaliano e la codifica UTF-8 per scrivere in altre lingue quando ha ricevuto ilfile ci ha messo un poco a rendersi conto di questa situazione e quando se ne egraveaccorto era troppo tardi per porvi rimedio in modo corretto Quanto segue oltrea descrivere la situazione relativa ai malintesi generati dalle varie codifiche serveanche per indicare alcuni modi corretti per affrontare questo tipo di problemi

Se Tizio e Caio stanno usando lo shell editor multipiattaforma TeXworks e sehanno configurato bene il file tex non devono fare nulla Per configurare beneil file bisogna che esso prima del testo vero e proprio contenga delle righe dicommento speciali che dicono a TeXworks se esiste e come si chiama il masterfile e quale sia la codifica usata per scrivere il testo (nellrsquoesempio che segue laprima riga egrave facoltativa nel senso che se il file egrave il master file non crsquoegrave nessunbisogno di fornire questa informazione lapalissiana)

TeXroot=MyMasterFiletex

468 APPENDICE D CODIFICA IN ENTRATA E CODIFICA IN USCITA

TeXencoding=IsoLatin

In questo modo se Tizio e Caio usano shell editor diversi ma che siano in gradodi decifrare queste speciali righe di commento sono gli editor che si autoregolanodi conseguenza e i due tastieristi non devono fare assolutamente nulla

Esistono poi alcuni shell editor che riconoscono automaticamente la codificausata per creare i file Apparentemente Aquamacs egrave uno di questi shell editor nonho abbastanza esperienza con questo programma ma credo di poter confermarelrsquoaffermazione TeXmakerX egrave in grado di distinguere la codifica latin1 e la codificautf8 per le altre codifiche deve venire configurato a mano

Se Tizio e Caio non si trovano in queste condizioni che cosa deve fare Caio perpoter elaborare il testo contenuto nel file ricevuto da Tizio Ha due possibilitagrave(a) cambia codifica al file tex oppure (b) cambia lrsquoimpostazione della codificadel suo shell editor Ma prima di tutto deve scoprire quale sia la codifica del filericevuto da Tizio

La soluzione (b) sarebbe preferibile Infatti se Tizio poteva compilare cor-rettamente il suo file era percheacute aveva specificato lrsquoopzione giusta al pacchettoinputenc Caio allora bencheacute non riesca a leggere il testo del documento sor-gente con facilitagrave puograve perograve leggere perfettamente il preambolo basta allora checerchi la stringa inputenc e ligrave trova che Tizio ha usato la codifica utf8 Chiudeil file appena aperto ma senza salvarlo riconfigura lo shell editor percheacute usianchrsquoesso la stessa codifica e poi riapre lo stesso file dove ora potragrave leggereperfettamente il testo

Fin qui va bene Ma se Tizio ha usato la codifica utf8 ma si egrave scordato dispecificare la codifica del suo shell editor nel preambolo del documento Bersquovuol dire due cose primo non poteva compilare il suo file producendo il file diuscita in modo corretto e secondo Caio deve tirare a indovinare per scoprirela codifica usata da Tizio probabilmente in modo inconsapevole egrave chiaro chebasterebbe una telefonata o un messaggio di posta elettronica ma talvolta il fileegrave stato scritto da un anonimo Tizio che lrsquoha messo in rete e Caio lrsquoha trovatointeressante guardandolo sullo schermo ma dopo averlo scaricato non riescepiugrave a leggerlo In questo caso disperato sempre senza modificare e salvare ilfile appena scaricato tira ad indovinare lrsquoindovinello egrave facile se il file era statoscritto usando la codifica utf8 percheacute ogni carattere non ASCII egrave sostituito dadue caratteri strani Invece lrsquoindovinello puograve essere difficile se appaiono caratteristrani isolati specialmente alla fine delle parole Non resta che provare tutte lecodifiche di cui il proprio shell editor sia capace fincheacute si lsquoimbroccarsquo la codificagiusta Magari poi con un porsquo di esperienza si sanno interpretare i caratteri stranie lrsquoindovinello non egrave piugrave tanto difficile da risolvere

Il caso piugrave disperato si ha quando Tizio eo Caio si servono di shell editorvecchiotti che usano una sola codifica ma purtroppo si tratta di codifiche diverseNon crsquoegrave quindi modo di modificare le impostazioni dello shell editor e non rimanealtra scelta che quella di cambiare mediante appositi programmi da linea dicomando la codifica del file tex

Tra questi programmi quello base egrave egrave lrsquoapplicativo iconv per macchine Linuxe Mac OS X la cui sintassi egrave

iconv [-c] [-s] [-f codifica] [-t codifica] inputfile

dove le opzioni -c e -s controllano i messaggi drsquoerrore nel caso che il file diingresso contenga caratteri non convertibili Il file di ingresso inputfile egrave scritto

469

con la codifica specificata con lrsquoopzione -f mentre il file di uscita egrave scritto conla codifica specificata con lrsquoopzione -t Il programma di default scrive il filedi uscita nello stream di scrittura standard (generalmente lo schermo) se sivuole scrivere su un file vero e proprio bisogna reindirizzare lrsquouscita verso un filetramite il codice di reindirizzamento

Per conoscere le codifiche disponibili sulla particolare macchina sulla quale sista lavorando e per scrivere i nomi delle codifiche con lrsquoortografia giusta convienedare il comando

iconv -l

e sul terminale appare tutto lrsquoelenco delle codifiche disponibili per le quali egravepossibile eseguire le conversioni Le codifiche scritte sulla stessa riga sono sinonimilrsquouna dellrsquoaltra stando alla pagina del manuale Nella macchina sulla quale stolavorando le codifiche disponibili (con le righe ripiegate e rientrate per i limitidella giustezza del testo) sono

ANSI_X34-1968 ANSI_X34-1986 ASCII CP367 IBM367 ISO-IR-6ISO646-US ISO_646IRV1991 US US-ASCII CSASCII

UTF-8ISO-10646-UCS-2 UCS-2 CSUNICODEUCS-2BE UNICODE-1-1 UNICODEBIG CSUNICODE11UCS-2LE UNICODELITTLEISO-10646-UCS-4 UCS-4 CSUCS4UCS-4BEUCS-4LEUTF-16UTF-16BEUTF-16LEUTF-32UTF-32BEUTF-32LEUNICODE-1-1-UTF-7 UTF-7 CSUNICODE11UTF7UCS-2-INTERNALUCS-2-SWAPPEDUCS-4-INTERNALUCS-4-SWAPPEDC99JAVACP819 IBM819 ISO-8859-1 ISO-IR-100 ISO8859-1 ISO_8859-1

ISO_8859-11987 L1 LATIN1 CSISOLATIN1ISO-8859-2 ISO-IR-101 ISO8859-2 ISO_8859-2 ISO_8859-21987

L2 LATIN2 CSISOLATIN2ISO-8859-3 ISO-IR-109 ISO8859-3 ISO_8859-3 ISO_8859-31988

L3 LATIN3 CSISOLATIN3ISO-8859-4 ISO-IR-110 ISO8859-4 ISO_8859-4 ISO_8859-41988

L4 LATIN4 CSISOLATIN4CYRILLIC ISO-8859-5 ISO-IR-144 ISO8859-5 ISO_8859-5

ISO_8859-51988 CSISOLATINCYRILLICARABIC ASMO-708 ECMA-114 ISO-8859-6 ISO-IR-127 ISO8859-6

ISO_8859-6 ISO_8859-61987 CSISOLATINARABIC

470 APPENDICE D CODIFICA IN ENTRATA E CODIFICA IN USCITA

ECMA-118 ELOT_928 GREEK GREEK8 ISO-8859-7 ISO-IR-126 ISO8859-7ISO_8859-7 ISO_8859-71987 CSISOLATINGREEK

HEBREW ISO-8859-8 ISO-IR-138 ISO8859-8 ISO_8859-8 ISO_8859-81988CSISOLATINHEBREW

ISO-8859-9 ISO-IR-148 ISO8859-9 ISO_8859-9 ISO_8859-91989L5 LATIN5 CSISOLATIN5

ISO-8859-10 ISO-IR-157 ISO8859-10 ISO_8859-10 ISO_8859-101992L6 LATIN6 CSISOLATIN6

ISO-8859-13 ISO-IR-179 ISO8859-13 ISO_8859-13 L7 LATIN7ISO-8859-14 ISO-CELTIC ISO-IR-199 ISO8859-14 ISO_8859-14

ISO_8859-141998 L8 LATIN8ISO-8859-15 ISO-IR-203 ISO8859-15 ISO_8859-15 ISO_8859-151998ISO-8859-16 ISO-IR-226 ISO8859-16 ISO_8859-16 ISO_8859-162000KOI8-R CSKOI8RKOI8-UKOI8-RUCP1250 MS-EE WINDOWS-1250CP1251 MS-CYRL WINDOWS-1251CP1252 MS-ANSI WINDOWS-1252CP1253 MS-GREEK WINDOWS-1253CP1254 MS-TURK WINDOWS-1254CP1255 MS-HEBR WINDOWS-1255CP1256 MS-ARAB WINDOWS-1256CP1257 WINBALTRIM WINDOWS-1257CP1258 WINDOWS-1258850 CP850 IBM850 CSPC850MULTILINGUAL862 CP862 IBM862 CSPC862LATINHEBREW866 CP866 IBM866 CSIBM866MAC MACINTOSH MACROMAN CSMACINTOSHMACCENTRALEUROPEMACICELANDMACCROATIANMACROMANIAMACCYRILLICMACUKRAINEMACGREEKMACTURKISHMACHEBREWMACARABICMACTHAIHP-ROMAN8 R8 ROMAN8 CSHPROMAN8NEXTSTEPARMSCII-8GEORGIAN-ACADEMYGEORGIAN-PSKOI8-TMULELAO-1CP1133 IBM-CP1133ISO-IR-166 TIS-620 TIS620 TIS620-0 TIS6202529-1 TIS6202533-0

TIS6202533-1

471

CP874 WINDOWS-874VISCII VISCII11-1 CSVISCIITCVN TCVN-5712 TCVN5712-1 TCVN5712-11993ISO-IR-14 ISO646-JP JIS_C6220-1969-RO JP CSISO14JISC6220ROJISX0201-1976 JIS_X0201 X0201 CSHALFWIDTHKATAKANAISO-IR-87 JIS0208 JIS_C6226-1983 JIS_X0208 JIS_X0208-1983

JIS_X0208-1990 X0208 CSISO87JISX0208ISO-IR-159 JIS_X0212 JIS_X0212-1990 JIS_X02121990-0 X0212

CSISO159JISX02121990CN GB_1988-80 ISO-IR-57 ISO646-CN CSISO57GB1988CHINESE GB_2312-80 ISO-IR-58 CSISO58GB231280CN-GB-ISOIR165 ISO-IR-165ISO-IR-149 KOREAN KSC_5601 KS_C_5601-1987 KS_C_5601-1989

CSKSC56011987EUC-JP EUCJP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE

CSEUCPKDFMTJAPANESEMS_KANJI SHIFT-JIS SHIFT_JIS SJIS CSSHIFTJISCP932ISO-2022-JP CSISO2022JPISO-2022-JP-1ISO-2022-JP-2 CSISO2022JP2CN-GB EUC-CN EUCCN GB2312 CSGB2312CP936 GBKGB18030ISO-2022-CN CSISO2022CNISO-2022-CN-EXTHZ HZ-GB-2312EUC-TW EUCTW CSEUCTWBIG-5 BIG-FIVE BIG5 BIGFIVE CN-BIG5 CSBIG5CP950BIG5-HKSCS BIG5HKSCSEUC-KR EUCKR CSEUCKRCP949 UHCCP1361 JOHABISO-2022-KR CSISO2022KR

Perciograve per trasformare il file myfiletex scritto con la codifica latin1 in unaltro file myfile-utf8tex scritto con la codifica utf8 bisogna dare il comando

iconv -f LATIN1 -t UTF-8 myfiletex gt myfile-utf8tex

Per convertire un file myfilewtex scritto su una macchina Windows con lacode page di default 1252 in un file con la codifica latin1 si scriveragrave

iconv -f WINDOWS-1252 -t LATIN1 myfilewtex gt myfile-latin1tex

Per il Mac esiste un interfaccia grafica charco che permette di fare sostanzial-mente le stesse cose lavorando prevalentemente con il mouse

Per le macchine Windows si puograve usare ancora iconv ma bisogna installarlodentro lrsquoambiente di simulazione CygWin operando come se si stesse installandoil programma su una macchina Linux

472 APPENDICE D CODIFICA IN ENTRATA E CODIFICA IN USCITA

32 48 0 64 80 P 96 lsquo 112 p33 49 1 65 A 81 Q 97 a 113 q34 50 2 66 B 82 R 98 b 114 r35 51 3 67 C 83 S 99 c 115 s36 $ 52 4 68 D 84 T 100 d 116 t37 53 5 69 E 85 U 101 e 117 u38 amp 54 6 70 F 86 V 102 f 118 v39 rsquo 55 7 71 G 87 W 103 g 119 w40 ( 56 8 72 H 88 X 104 h 120 x41 ) 57 9 73 I 89 Y 105 i 121 y42 58 74 J 90 Z 106 j 122 z43 + 59 75 K 91 [ 107 k 123 44 60 lt 76 L 92 108 l 124 |45 - 61 = 77 M 93 ] 109 m 125 46 62 gt 78 N 94 ^ 110 n 126 ~47 63 79 O 95 _ 111 o 127

Tabella D1 I 95 caratteri ASCII stampabili Il carattere ASCII 32 egrave lo spazio quireso visibile () mediante il comando textvisiblespace Il carattere ASCII 127(il novantaseiesimo della tabella) non egrave un carattere stampabile

Alternativamente si puograve scaricare la libreria libiconv dal sito httpsourceforgenetprojectsgnuwin32fileslibiconv e lrsquoinstallatore prov-vede anche a rendere disponibile la versione Windows Win-iconv con la quale sipuograve operare senza ricorrere allrsquoambiente di simulazione CygWin

Se tutto ciograve dovesse lsquodisturbarersquo o comunque apparire troppo complicatonon resta che rifarsi al TEX originale scrivere o convertire il file sorgente texusando solo caratteri ASCII bisogna cioegrave sostituire globalmente ogni istanzadel carattere eacute con la sequenza rsquoe operando nello stesso modo per ogni altrocarattere non ASCII In questo modo il file sorgente non dipende da nessunacodifica percheacute qualunque codifica deve avere i primi 128 caratteri in corrispon-denza biunivoca con i caratteri ASCII Vale la pena di avere la tabella D1 inmodo da sapere esattamente di che cosa si stia parlando

Un altro problema sorge invece quando si compone un testo eseguendo uncollage di contributi di varie persone che hanno fornito file in formati come doco pdf e il compositore procede a mano copiando dal file esterno e incollandonel file tex

In questi casi spesso sono i caratteri di interpunzione quelli che differisconosensibilmente dai caratteri della codifica che si vorrebbe usare fosse essa anchela codifica piugrave generale utf8 A occhio nudo spesso questi caratteri (apostrofovirgolette semplici virgolette diritte eccetera) sono difficili da rilevare percheacute ilriconoscimento corretto dipende anche dal disegno dei font che vengono usati dalloshell editor nella finestra del file sorgente io preferisco i font a spaziatura fissain questa finestra del file sorgente ma nonostante questo quei segni sono difficilida rilevare ad occhio nudo Tenendo conto che un file deve essere scritto tuttocon la stessa codifica bisogna per forza o convertire a mano tutti i segni nellacodifica principale oppure marcare il file sorgente con la codifica specifica usatadal collaboratore esterno o che il suo programma di trasformazione nel file pdfha usato TeXworks potrebbe interpretare correttamente questa informazione

473

e Aquamacs potrebbe diagnosticare da solo la codifica usata In ogni caso sipuograve eseguire la compilazione con pdflatex e poi andare a controllare un certonumero di istanze di questi caratteri speciali passando dalla finestra del filesorgente alla finestra del file composto sfruttando la capacitagrave dello shell editor edel visualizzatore del file composto di eseguire correttamente la ricerca direttae inversa Se questi caratteri un porsquo particolari sono tutti presenti in modocorretto nel file di uscita allora la codifica dichiarata o determinata egrave correttaAltrimenti egrave opportuno procedere ad una correzione manuale di tutti questisegni solitamente la ricerca e sostituzione di tutte le istanze di un dato caratterepuograve essere fatta con pochi click di mouse con qualunque shell editor

Riassumendo

bull Egrave necessario eseguire subito una copia del file di cui si deve cambiare lacodifica nel caso ci si sbagli con le operazioni successive il file originalepuograve sempre essere recuperato

bull Se aprendo un file tex con lo shell editor si vede il file che contiene deicaratteri strani allora lrsquoimpostazione della codifica dello shell editor noncorrisponde alla codifica del font con cui egrave stato scritto il file tex

bull Non bisogna assolutamente modificare il file neacute tanto meno salvarlo dopoavere malauguratamente fatto modifiche bisogna invece chiudere subitolo shell editor senza alterare minimamente il file appena aperto poi bisognareimpostare se possibile lrsquoimpostazione della codifica dello shell editorche si sta usando e infine riaprire lo stesso file

bull Se non fosse possibile reimpostare lo shell editor allora si puograve usare ilprogramma iconv da linea di comando producendo un altro file texcodificato con la codifica conforme a quella dellrsquoimpostazione dello shelleditor

bull In mancanza di qualunque altro mezzo di configurazione o di conversionedi codifica bisogna pazientemente cambiare a mano la codifica (usandoi comandi globali dello shell editor) in modo da trasformare il file texiniziale in un file scritto solamente mediante lrsquouso dei caratteri ASCII

bull Bisogna procedere a mano spesso anche quando si compone un testomettendo insieme delle parti composte da altri collaboratori che hannousato altri programmi e forniscono i loro contributi per esempio in formatodoc o in formato pdf

In questo testo si egrave sempre consigliato di usare la codifica latin1 pur nonessendo completamente conforme con qualunque impostazione di sistema opera-tivo eo di shell editor per scrivere in italiano e nella maggior parte delle lingueoccidentali questa codifica va benissimo e mantiene decisamente contenute ledimensioni del file sorgente

Oggi perograve viene suggerito sempre piugrave sovente di usare la codifica di entratautf8 il file sorgente aumenta un poco di dimensioni ma si egrave sicuri che pur diusare uno shell editor recente che accetti la codifica di ingresso utf8 non esistonoproblemi di codifica a livello di pdflatex Va anche notato che le versioni aggiornatedei piugrave moderni shell editor giagrave dalla prima installazione sono preimpostati perlavorare con la codifica utf8

474 APPENDICE D CODIFICA IN ENTRATA E CODIFICA IN USCITA

Tuttavia secondo lrsquoesperienza di chi scrive il successo di aderire sistemati-camente alla codifica utf8 non garantisce di evitare problemi quando si eseguelavoro cooperativo visto che i vari lsquotastieristirsquo non necessariamente dispongonodegli stessi shell editor operanti su macchine dello stesso genere controllatedallo stesso sistema operativo Bisogna sempre essere pronti a riconoscere iproblemi della codifica di entrata e saperli risolvere Questa raccomandazioneegrave particolarmente indicata per coloro che si sono avvicinati al sistema TEX dapoco oppure a coloro che aggiornano il loro strumenti software a versioni piugravemoderne e non sono pronti ad affrontare questo genere di novitagrave

Appendice E

Come fa TEX a comporrele pagine

Sul Forum del guIt compaiono spesso domande che rivelano la difficoltagrave degliutenti a padroneggiare il meccanismo di composizione asincrona del sistema TEXQuesto meccanismo si badi bene egrave sostanzialmente identico con qualuunque deimotori ci composizione del sistema sia esso tex pdftex context luatex xetexo gli altri motori meno conosciuti o meno usati Per semplicitagrave nel seguito ciriferiremo a pdftex che permette di sfruttare la microgiustificazione ma quantoverragrave detto per questo motore di composizione vale sostanzialmente anche pergli altri eccetto per quel che riguarda la microgiustificazione

In tutti i casi pdftex determina per ogni capoverso e per ogni pagina dei fattoridi merito o di demerito tenendo conto di misure di lsquobruttezzarsquo nel gergo di TEXchiamata badness delle penalitagrave (penalty) e dei fattori di demerito (demerit) chevengono intercalati nel testo e nelle pagine da comporre diciamo cosigrave allrsquoinsaputadel compositore

Il compositore inserisce fattori di merito o di demerito o penalitagrave di variogenere nel file sorgente quanto usa comandi quali pagebreak clearpage ofinalhyphendemerits ma spesso questi comandi e i relativi parametri sonogiagrave presenti nei file di classe In piugrave pdftex determina altri fattori di bruttezzao di demerito per conto proprio Il risultato di tutte queste operazioni egrave cheil motore di composizione sceglie le divisioni in righe dei singoli capoversi ele divisioni in pagine dei singoli capitoli in modo da minimizzare la bruttezzacomplessiva dei capoversi oppure delle pagine

Lrsquoalgoritmo che determina questo minimo egrave decisamente complicato da unpunto di vista del programma di pdftex anche percheacute la ricerca dellrsquoottimo deveessere eseguita velocemente e con il massimo di efficienza e di efficacia

E1 Divisione dei capoversiCominicamo e riesaminare il procedimento di divisione dei capoversi in righe Sene egrave giagrave parlato nellrsquoappendice C ma ci torniamo sopra per esaminare meglioquesto meccanismo

Cominciamo a ricordare che il capoverso inizialmente costituisce una solalunga riga e il motore di composizione deve spezzare questa riga in monconi tutti

475

476 APPENDICE E COME FA TEX A COMPORRE LE PAGINE

della stessa lunghezza (ovviamente tranne lrsquoultimo moncone che puograve essere piugravecorto) Se egrave stato invocato il pacchetto microtype esiste una complicazione inpiugrave percheacute la stessa lunghezza puograve essere raggiunta anche con i meccanismi diprotrusione e di leggera deformazione orizzontale dei font che compongono ogniriga di testo cosiccheacute in prima battuta prima cioegrave di applicare questi meccani-smi raffinati le righe di testo potrebbero essere considerate di uguale lunghezzaentro una certa tolleranza dellrsquoordine di grandezza di qualche centesimo dellalunghezza da raggiungere saragrave poi compito delle macro del pacchetto microtypequello di allungare o restringere orizzontalmente il font presente nella riga aggiu-standone la lunghezza per recuperare quei pochi punti percentuali che mancano oche eccedono rispetto alla lunghezza desiderata In mancanza di questo pacchettoo della sua piena funzionalitagrave il compito di regolare la lunghezza della rigaal valore desiderato spetta a pdftex che vi provvede allungando o accorciandosolo la gomma interparola o altra eventuale gomma presente nella riga Capitoquesto concetto lasciamo da parte la microgiustificazione e concentriamoci sulmeccanismo standard

La lunga riga iniziale potrebbe giagrave di per seacute contenere delle penalitagrave positiveo negative per esempio ogni volta che si egrave usato un segno di legatura mediantela tilde ~ che inserisce nel testo uno spazio lsquoinsecabilersquo prima del quale nonsi puograve andare a capo viene inserita una penalitagrave lsquoinfinitarsquo che per TEX egrave unqualunque valore maggiore o uguale a 10 000 Oppure potrebbe essere statoinserito un comando che ordina di spezzare la riga in quel punto e questolsquoordinersquo viene esplicitato inserendo nella lunga riga una penalitagrave negativa infinita(un valore minore o uguale a minus10 000) Inoltre la descrizione della lingua italianarichiede anche lrsquoinserimento di un valore estremamente elevato di demerito se lapenultima riga di qualsivoglia capoverso terminasse con una cesura

pdftex va allora a cercare tutti i possibili punti di divisione in righe dellrsquointerocapoverso che per ora forma una sola lunga riga associando ad ogni punto didivisione un valore di demerito Questo valore di demerito viene determinato inbase alle penalitagrave associate al quel punto di divisione ai demeriti conseguenti allapresenza di una cesura alla fine della riga alla bruttezza della riga determinatain base allrsquoallungamento o accorciamento della gomma interparola e dellrsquoaltragomma eventualmente inserita dal compositore per esempio mediante dei leaders

Per calcolare i demeriti associati ad ogni possibile punto di divisione pdftexdeve determinare la bruttezza di ogni riga questa egrave associata al fatto che lagomma complessiva presente nella riga sia stata allargata o accorciata molto opoco in relazione allrsquoallungabilitagrave o allrsquoaccorciabilitagrave complessiva presente nellariga di cui si sta valutando la possibile fine Sia z lrdquoallungamento o lrsquoaccorciamentosubito dalla gomma per raggiungere la lunghezza desiderata z puograve essere positivo(allungamento) o negativo (accorciamento) Sia x lrsquoallungabilitagrave complessivapresente nella riga e sia y la sua accorciabilitagrave La bruttezza b egrave data da unaespressione numerica di questo tipo

b = 100times

( zx

)3se egrave avvenuto un allungamento(

|z|y

)3

se egrave avvento un accorciamento(E1)

saturata al valore 10 000 se per caso il valore calcolato con lrsquoespressione E1risultasse maggiore

E1 DIVISIONE DEI CAPOVERSI 477

Va notata lrsquoasimmetria delle espressioni per lrsquoallungamento e per lrsquoaccor-ciamento egrave ovvio che lrsquoaccorciamento massimo di una riga non puograve superarelrsquoaccorciamento disponibile quindi la bruttezza associata ad un accorciamentonon supera mai il valore 100 Invece lrsquoallungamento puograve puograve essere maggioredellrsquoallungabilitagrave per cui la bruttezza associata ad un allungamento puograve esseremolto grande Si nota anche che se lrsquoallungabilitagrave o lrsquoaccorciabilitagrave sono infinitela bruttezza egrave nulla La presenza della terza potenza fa sigrave che allungamenti oaccorciamenti piccoli rispetto alle rispettive allungabilitagrave o accorciabilitagrave sonodel tutto trascurabili mentre diventano sempre piugrave importanti quando questirapporti sono vicini allrsquounitagrave o la superano

pdftex cerca di evitare che due righe adiacenti abbiano dei valori molto diversidi allungamento o di accorciamento meno che mai una accorciata e la vicinaallungata considera le righe decenti se la loro bruttezza egrave inferiore al valore 12mentre se lo eccede misura la loro compatibilitagrave visiva e se due righe adiacentirisultassero incompatibili aggiungerebbe dei demeriti al quel particolare puntodi divisione

In ogni caso calcolata la bruttezza di ogni riga e specificati i demeriti pdftexdeve determinare la bruttezza complessiva delle possibili divisioni in righe diun dato capoverso per far questa somma calcola i demeriti associati ad ognipossibile punto di divisione e sceglie quella sequenza di punti di divisione chetotalizza la minima somma di demeriti

Intanto pdftex toglie dalla lista tutti i possibili punti di divisione ai qualisiano associate penalitagrave p maggiori o uguali a 10 000 e tutti i punti in cui labruttezza sia superiore alla pretolerance o tolerance correnti ricordiamoche questi due valori servono per valutare una prima possibile divisione in righesenza cesure e poi una seconda divisione con le cesure in fin di riga se la primanon egrave andata a buon fine cioegrave se tutti i possibili punti di divisione alla fine di ogniparola avevano bruttezza superiore al valore di pretolerance allora procedead eseguire la seconda divisione con le cesure In questo testo tolerance vale200 e pretolerance vale 100

pdftex deve anche tenere conto della penalitagrave linepenalty legata al numerocomplessivo di righe in un capoverso il valore predefinito per questa penalitagrave egravel = 10 ma il file di classe potrebbe definire un valore maggiore per cercare dimantenere i capoversi il piugrave corti possibili Il valore dei demeriti d associati adogni possibile punto di divisione fra quelli rimasti nella lista viene determinatocon lrsquoespressione seguente

d =

(l minus b)2 + p2 se 0 le p lt 10 000(l + b)2 minus p2 se minus 10000 lt p lt 0(l + b)2 se p le 10 000

(E2)

Lrsquoespressione per i demeriti presenta una discontinuitagrave che ha i suoi motivi neidettagli dei quali non scendiamo Queste espressioni servono per dare una misuradi demerito approssimativamente proporzionale alla somma del quadrato dellabruttezza con il quadrato della penalitagrave Minimizzare la somma dei demeritiper un intero capoverso vuol dire pressappoco minimizzare la bruttezza diogni riga Questo egrave appunto uno dei punti di forza di questo algoritmo che puogravevenire ottenuto solo con la composizione differita eseguita dai vari motori dicomposizione del sistema TEX

478 APPENDICE E COME FA TEX A COMPORRE LE PAGINE

Esso egrave tanto preciso nel determinare il minimo demerito associato ad unaparticolare divisione in righe che se un capoverso andasse ritoccato per aggiungereun virgola o una breve congiunzione potrebbe succedere (e a chi scrive egrave successodi osservare questo fenomeno) che il capoverso cosigrave accresciuto nel numero dellelettere che contiene puograve risultare una riga piugrave corto rispetto a prima di eseguirela modifica non egrave frequente ma succede Questo dipende dalla raffinatezza dellaricerca del minimo eseguita dal motore di composizione

Finito di scomporre il capoverso in righe le scatole orizzontali che contengonoogni riga vengono accodate alla scatola 255 riservata allrsquouso di deposito tempo-raneo del testo composto La scatola 255 svolge quello che in inglese si chiamagalley proof una parte di testo da stampare come bozza con il testo egrave compostoma non impaginato Ad ogni capoverso accodato alla scatola 255 viene ancheattivato il meccanismo della formazione della pagina se la scatola 255 contieneabbastanza materiale la prima parte della scatola viene emessa nel file di uscitae quanto avanza serve per accodarvi il testo che via via viene ulteriormentecomposto e che verragrave usato per creare le pagine successive

E2 Divisione della pagine

La divisione delle pagine avviene secondo gli stessi principi seguiti per la divisionedei capoversi con alcune evidenti varianti Mentre un capoverso da dividere inrighe forma una lista orizzontale di caratteri penalitagrave grumi di gomma ecceteraun testo da dividere in pagine egrave costituito dalla lista verticale conservata nellascatola 255 questa lista egrave formata dalle righe giagrave composte per il testo dallescatole che contengono per esempio singole espressioni matematiche da penalitagraveda grumi di gomma verticale ma non solo Essa contiene anche dei segnapostiper inserire oggetti che sono stati conservati altrove gli inserti delle note a piegravedi pagina le note marginali le figure le tabelle e gli altri oggetti flottanti

pdftex nellrsquoestrarre le righe da riversare in una pagina del file di uscitadeve tenere conto dei segnaposti e intercalare alle righe di testo quanto questisegnaposti segnalano Per le note in calce deve tenere presente della riga doveappare il richiamo in modo da mettere la nota nella stessa pagina dove essaegrave richiamata e se non ci riesce deve mettere una forte penalitagrave per questolsquoinsuccessorsquo deve mettere anche una penalitagrave se la nota puograve cominciare nellapagina ma non ci sta tutta per cui deve estrarne solo alcune righe per rimetterele righe che avanzano in una posizione utile per la pagina successiva inserendovianche una penalitagrave per tenere conto di questo lsquoinsuccessorsquo Deve vedere se lenote marginali stanno nella pagina o se devono essere spostate nella paginasuccessiva deve controllare anche se le note marginali sono abbastanza separatele une dalle altre ed eventualmente deve spostare i segnaposti per farcele starema aggiungendo altre penalitagrave Deve esaminare le code degli oggetti flottanticontrollando che stiano sulla pagina e dove se non possono stare sulla paginadeve lasciarli in coda in modo da poterne differire il collocamento ad una paginasuccessiva deve tenere conto dei comandi clearpage e simili che hanno messonella lista verticale speciali penalitagrave negative minori di minus10 000 e che funzionanoda codici per particolari azioni che non richiedono solo un salto di pagina maanche lo svuotamento forzato delle code degli oggetti flottanti Determinata ladivisone migliore che generalmente non supera lrsquoaltezza della gabbia del testo

E3 COSA FARE SE 479

la procedura per la spedizione della pagina completa al file di uscita provvede ainserire la testatina e il piedino

Come si vede la formazione delle pagine egrave sotto molti aspetti piugrave complessadella formazione dei capoversi ma poi dopo aver deciso che cosa mettere nellapagina il punto migliore in cui porre la divisione avviene con lo stesso algoritmousato per i capoversi nel senso che ora non ci sono due possibili scelte quellasenza cesure e quella con cesure in fin di riga ma crsquoegrave una sola possibile sceltaquella che minimizza i demeriti complessivi della pagina

Il calcolo della bruttezza avviene piugrave meno nello stesso modo solo che lagomma interparola egrave sostituita dalla gomma interlinea lineskip che perogravesolitamente non ha nessuna componente di allungabilitagrave o accorciabilitagrave dellagomma prima della prima riga di ogni capoverso parskip che generalmenteha una lunghezza naturale nulla e una modesta allungabilitagrave Della gommainserita dai comandi di sezionamento prima della loro prima riga oltre chedella penalitagrave inserita dopo la loro fine in modo da impedire un salto di pa-gina dopo il titolo (cosa che notoriamente avviene invece con i comuni wordprocessor) della gomma presente prima o dopo gli oggetti fuori testo dalleespressioni matematiche agli oggetti flottanti in genere La formula della brut-tezza egrave simile allrsquoespressione E1 con le ovvie differenze di significato dei simbolipresenti

Invece i demeriti sono determinati diversamente e sono chiamati costo cil costo egrave tanto maggiore quanto peggiore risulta la pagina per ogni possibilepunto di divisione della pagina il costo associato vale

c =

p se b ltinfin e p le minus10 000 e q lt 10 000b+ p+ q se b lt 10 000 e |p| lt 10 000 e q lt 10 000100 000 se b = 10 000 e |p| lt 10 000 e q lt 10 000infin se (b =infin oppure q ge 10 000) e p lt 10 000

(E3)

dove b rappresenta la bruttezza ed egrave un numero compreso fra 0 e 10 000 olsquoinfinitorsquo quando la divisione corrisponde ad una pagina che supera lrsquoaltezzadella gabbia del testo ndash questo non dovrebbe succedere mai ma talvolta succedea causa di inserti troppo grandi ndash p rappresenta la penalitagrave q rappresenta leinsertpenalties la somma delle penalitagrave per le note differite o spezzate frapagine La divisione finale della pagina avviene nel punto nel quale la sommadei costi associati ai singoli punti di divisione viene minimizzata

E3 Cosa fare se Come si vede dunque lrsquoalgoritmo di ottimizzazione della divisione in paginedella scatola 255 con i suoi annessi e connessi egrave diverso da quello della divisionedei capoversi anche se egrave ispirato da una filosofia simile Si tratta sempre discegliere il punto dove i costi sono minimi se quello egrave il punto in cui essi sonominimi significa che ogni altro punto di divisione egrave peggiore quindi non crsquoegrave dastupirsi se qualche volta pdftex spezza le pagine diversamente da come noi ce loimmagineremmo se cioegrave colloca gli oggetti flottanti diversamente da dove ce loaspetteremmo

Certo potremmo cambiare i criteri con i quali le parti della pagina possonovenire utilizzate per gli oggetti flottanti e per il testo certo potremmo cambiare

480 APPENDICE E COME FA TEX A COMPORRE LE PAGINE

le penalitagrave associate alle righe orfane e vedove E in effetti chi scrive ha spessousato questi espedienti ma con grande cautela I valori preimpostati sono degliottimi compromessi e cambiarli richiede giudizio e comprensione del meccanismo

Vale la pena di raccogliere qui alcune informazioni esposte anche altrove

E31 Collocazione degli oggetti flottantipdftex mette gli oggetti flottanti dove lo consentono le condizioni imposte dai variparametri specificati dalla classe e descritti approfonditamente nel paragrafo G10Come ricordato quei parametri e quelle frazioni di pagina possono venire cambiatiun pochino ma non troppo Se si assegna per esempio una percentuale del 90alla frazione di pagina destinata agli oggetti in testa alla pagina si rischia diavere troppo poco spazio dedicato al testo e se questo contiene titoli di paragrafio elementi fuori testo come le espressioni matematiche questa parte di testo nonpotrebbe stare nella restante frazione del 10 e la pagina risulterebbe mozzaoppure lrsquooggetto flottante potrebbe venire spostato ad una pagina successiva

Se il compositore usa troppo spesso il parametro di collocamento rischia difare peggio di quanto LATEX farebbe per conto suo Si ricorda che questo specifi-catore non modifica lrsquoosservanza dei parametri solo per la posizione dichiaratacon il primo degli specificatori ma li riguarda tutti Usare la serie di specificatorihtbp serve a poco percheacute va a finire che se pdftex non puograve usare la posizionespecificata con h allora lrsquooggetto mobile non puograve piugrave essere collocato ldquoligraverdquo erischia di restare in cosa a lungo eventualmente la coda degli oggetti flottatipuograve venire svuotata drsquoautoritagrave o alla fine di un capitolo o per effetto di uncomando clerapage (eventualmente passato come argomento a un comandoafterpage) Egrave meglio evitare di specificare h non egrave un caso che le posizionipredefinite in LATEX sono proprio tbp percheacute se esso non puograve andare in testa alsquoquestarsquo pagina vi puograve andare in calce oppure puograve andare in testa o in calce inuna pagina successiva oppure quando vengano svuotate le code Se lrsquooggetto egravedi grandi dimensioni egrave meglio specificare solo p cosiccheacute alla prima pagina utileesso viene collocato in una pagina a seacute stante (sempre che la coda non sia giagraveintasata) e spedito al file di uscita

Raramente capita che le code intasate restino tali via via che si aggiungonoaltri elementi in coda quando si supera il numero di 18 oggetti in coda isuccessivi vengono persi sigrave egrave vero il programma emette un avviso ma egrave unamagra consolazione Se si ha anche solo il dubbio che la coda possa essereintasata da un oggetto troppo grande per condividere una pagina con del testoegrave meglio verificare la cosa durante la lavorazione del documento emettendo uncomando clearpage cosigrave da vedere che cosa ci sia in coda e poi eventualmentecambiare i descrittori di posizione emettere uno o piugrave clearpage passandolial programma come argomenti di afterpage insomma in modo da superarele barriere messe dal programma contro una brutta composizione tipograficaAgendo con giudizio si puograve aggiustare a mano quanto il programma non riesce agestire da solo ma questo va fatto in parte durante la lavorazione del documentoe in parte alla fine per dare i tocchi finali al lavoro compiuto

E32 Le equazioni ingombrantiLe lsquopiccolersquo equazioni fuori testo fra espressione matematica vera e propria espazi sopra e sotto impegnano lrsquoequivalente di tre righe di testo espressioni

E3 COSA FARE SE 481

matematiche piugrave complesse possono richiedere un numero di righe molto maggioreSe una di queste espressioni lsquopiccolersquo o lsquograndirsquo che siano compare in testaad una pagina egrave molto probabile che la pagina precedente sia stata dichiaratalsquoUnderfull vboxrsquo da pdftex percheacute ha dovuto stiracchiare troppo la gommadisponibile sulla pagina per non farla sembrare mozza in realtagrave non egrave mozzama egrave brutta a causa dellrsquoeccessivo allargamento dei contrografismi che separanole varie parti della pagina

In questi casi non ci sono cure diverse da quelle di

1 modificare il testo della pagina stiracchiata in modo che contenga piugravetesto

2 modificare il testo della pagina stiracchiata in modo che contenga menotesto

3 allungare la pagina stiracchiata usando il comando enlargethispage cono senza asterisco in modo che lo specchio di stampa sia un poco piugrave grandecosigrave da contenere una o due righe in piugrave

4 accorciare lo specchio di stampa della pagina stiracchiata sempre usandoenlargethispagema usando un allungamento negativo cosigrave da richiedereuno stiracchiamento minore

5 usare il comando primitivo looseness con lrsquoargomento positivo o nega-tivo per allungare o accorciare se possibile capoversi scelti della paginastiracchiata cosigrave da riempire meglio la pagina lsquocapoversi sceltirsquo vuol direcapoversi sufficientemente lunghi da avere molto spazio interparola sucui giocare per ottenere lrsquoeffetto desiderato Il numero che si assegna alcomando looseness indica di quante righe allungare o accorciare uncapoverso a meno che non si tratti di un capoverso molto lungo egrave difficileallungare o accorciare un capoverso di piugrave di una riga Tuttavia spessouno o due capoversi allungati di una riga possono aggiustare una paginain modo difficilmente riconoscibile a occhio nudo

Egrave chiaro che questi provvedimenti tranne quelli che prevedono lrsquoaumento ola diminuzione del testo sono provvedimenti da prendere solo nella fase finaledi messa a punto dellrsquoimpaginazione quando il testo egrave praticamente finito dicomporre altrimenti quegli aggiustamenti finirebbero per dover essere rivistiripetutamente ad ogni modifica del testo che li precede

Queste cose vanno viste con molta cura anche quando si eseguono degli insertinon flottanti come una piccola figura contornata dal testo questa egrave legata alparticolare capoverso il cui testo le gira attorno e se la modifica del testo che loprecede lo sposta piugrave in alto o piugrave in basso la figurina fissa rischia di andare afinire dove lrsquoalgoritmo di formazione delle pagine inserisce un salto pagina lafigurina potrebbe rimanere ligrave penzoloni alla fine della pagina a fianco di unpaio di righe del suo capoverso che perograve proseguirebbe nella pagina successivacon la rientranza vuota inizialmente riservata per la figurina Cose queste chesconsigliano fortemente di fare uso di piccole figure contornate dal testo se nonnel primo capoverso di un capitolo percheacute non vi egrave nessun testo prima che possaspostare il primo capoverso piugrave in basso

482 APPENDICE E COME FA TEX A COMPORRE LE PAGINE

E33 I sezionamentiAnche i titoli dei paragrafi e delle sezioni di rango successivo possono dareproblemi Si egrave detto e ripetuto che lo spazio verticale che segue un titolino egraveuno spazio lsquoinsecabilersquo uno spazio verticale prima e dopo del quale non puograveavere luogo un salto di pagina quindi il titolo del paragrafo egrave distanziato dal-la prima riga del suo primo capoverso ma non ne puograve venire staccato Seavvenisse un salto di pagina dopo la prima riga del capoverso essa rimarreb-be orfana per evitare questo la classe definisce un penalitagrave clubpenaltyinsieme alla sua compagna clubpenalty che viene inserita dopo la primariga di ogni capoverso proprio per evitare le righe orfane dunque sebbenenon sia strettamente impossibile (con le penalitagrave predefinite) un salto di pa-gina dopo la prima riga la seconda riga appare subito sotto alla prima rigama se il capoverso ha ancora solo una terza riga se avvenisse un salto dipagine dopo la seconda riga la terza riga resterebbe vedova una forte pe-nalitagrave widowpenalty viene inserita prima dellrsquoultima riga di ogni capoversoproprio per evitare la formazione di righe vedove e ci riesce quasi semprecon i valori predefiniti Ma tutto ciograve implica che la riga del titolino segui-ta dal suo spazio e seguito ancora da almeno due righe di testo costituisceun insieme lsquomonoliticorsquo di grandi dimensioni che o sta tutto in fondo allapagina o viene spostato tutto allrsquoinizio della pagina successiva (naturalmen-te se egrave a metagrave pagina il problema non esiste) I valori di clubpenalty e diwidowpenalty sono generalmente fissati dai file di classe o dai file di descri-zione della lingua ma il compositore puograve cambiarne i valori in modo accortoi valori predefiniti di solito sono piuttosto severi ma generalmente non so-no valori infiniti in questo testo clubpenalty vale 10000 e widowpenaltyvale 3000

Si noti che sono considerate orfane e vedove anche la prima riga dopo unaequazione fuori testo o lrsquoultima riga prima di una equazione fuori testo quindi ilproblema delle righe orfane e vedove si pone anche con le equazioni fuori testo

In questi casi si puograve agire come negli altri casi allungando o accorciano iltesto che precede il blocco lsquomonoliticorsquo volendo trattandosi di un sezionamentosi potrebbe inserire subito prima del comando di sezionamento un comandonewpage oppure talvolta egrave preferibile un comando goodbreak egrave vero che seil comando agisce lascia una pagina mozza ma se si corregge il testo precedentequesto comando potrebbe restare inefficace grazie alla piccola penalitagrave che essoinserisce nella lista verticale Il comando di basso livello (primitivo) filbreakegrave troppo forte e in caso di modifiche agirebbe anche lontano dal fondo dellapagina

E4 ConclusioniLa casistica potrebbe allungarsi moltissimo Perograve ogni qual volta ci si trovi conuna pagina mal formata con troppo spazio bianco la conoscenza del meccanismodi divisione delle pagine e il gioco sottile dellrsquoallungamento della gomma in com-petizione con le penalitagrave e con le dimensioni degli oggetti di grandi dimensionipermette di risalire alle cause e ad apportare le modifiche del caso per risistemarela pagina mal riuscita

Appendice F

Trattamento degli errori

Quando il programma di composizione incontra nel file sorgente delle parti chenon riesce ad interpretare o non riesce ad eseguire non sa cosa fare e si fermacon un messaggio drsquoerrore spesso il messaggio di errore che accompagna ladescrizione dove ha trovato la difficoltagrave egrave sufficientemente chiaro Queste ingenerale sono situazioni semplici altre volte gli errori sono molto subdoli e imessaggi sono troppo vaghi

F1 Errori ortografici nel nomi dei comandiLa situazione elementare quella di aver scritto in modo errato un comando egravegiagrave stata descritta alla fine del capitolo 4 e non ci si torna sopra Quando illettore arriva a leggere questa appendice estremamente tecnica vuol dire che si egravescontrato con un errore davvero grave ma ha giagrave acquisito abbastanza esperienzaper affrontare le situazioni elementari

F2 Errore nella ricerca dei fileNello stesso modo si risolvono errori del tipo ldquoFile not foundrdquo accanto almessaggio appare il nome del file che il programma di composizione non avrebbetrovato Lrsquoobbiezione piugrave frequente che ci viene in mente egrave ldquoMa come Se ilfile egrave nella cartella di lavorordquo Prima di lasciarci andare alla irritazione del casoconviene leggere con calma e attenzione il nome del file che il programma nonha trovato e ragionarci sopra

1 il nome del file potrebbe contenere degli spazi egrave possibile far leggere alprogramma nomi di file che contengano degli spazi ma la la soluzione oltread essere ldquosystem dependentrdquo e a eliminare ogni possibilitagrave di trasportareil file su unrsquoaltra macchina egrave da evitare in modo assoluto la soluzionevera egrave quella di togliere gli spazi dai nomi dei file Se si ritiene che i nomidei file senza spazi siano illeggibili si puograve sempre riempire lo spazio conun tratto ribassato per esempio da My filetex a My_filetex dove laleggibilitagrave egrave certamente conservata ma lo spazio non crsquoegrave piugrave

2 Il file col nome senza spazi egrave effettivamente ligrave ma il sistema operativodistingue le lettere maiuscole da quelle minuscole nei nomi dei file tutti i

483

484 APPENDICE F TRATTAMENTO DEGLI ERRORI

sistemi UNIX hanno questa particolaritagrave solo i sistemi operativi di tipoWindows non fanno differenza fra Myfiletex e myfiletex La soluzioneegrave controllare bene che si sia chiesto al programma di leggere il file il cuinome sia scritto con la stessa ortografia di come egrave registrato sul disco

3 Lrsquoestensione tex non deve mai essere specificata i programmi del sistemaTEX appendono sempre lrsquoestensione tex ai nomi di file che ne siano privima a quel punto egrave bene essere sicuri di non aver inserito spazi spuri cioegrave egraveimportante che scriviamo inputmyfile e non inputmyfile

4 Anche i file grafici egrave bene che siano specificati senza estensione non egraveobbligatorio ma egrave conveniente Perograve per esempio stabilito che pdflatexnon legge i file con estensione gif non egrave possibile cambiare lrsquoestensionegif in png lrsquoestensione non egrave una decorazione inutile di un file madice che formato ha il suo contenuto cambiare lrsquoestensione non cambia ilcontenuto Eppure questo egrave un tipico errore che viene commesso piugrave spessodi quanto non si creda e a cui il programma reagisce con un messaggio dildquoFile not foundrdquo

5 Il file potrebbe essere protetto e accessibile solo al proprietario del fi-le o allrsquoamministratore della macchina prima di poterlo aprire bisognamodificarne gli attributi per consentirne lrsquoapertura

6 Un file di classe o un pacchetto o un qualunque altro file di serviziopotrebbe essere stato installato nella cartella giusta ma egrave possibile averdimenticato di aggiornare il database dei nomi dei file il programma di com-posizione non puograve trovarlo in quanto non egrave elencato i quei database Esisteun database dei nomi dei file per ogni albero in cui egrave suddiviso lrsquoinsiemedei file di lavoro del sistema TEX generalmente i file delle distribuzioni offi-ciali sono messi in alberi accessibili solo allrsquoamministratore della macchinaNelle macchine Windows questo concetto di utente privilegiato ad eseguirequalunque operazione esiste ma egrave meno preciso di come egrave definito sullemacchine UNIX Egrave quindi possibile che lrsquoutente pensi di fare cosa giustaad aggiungere i propri file personali nelle stesse cartelle dove risiedono ifile del sistema Questo invece sarebbe un grave errore percheacute al primoaggiornamento dei file di sistema i file personali sparirebbero I file personalivanno inseriti in una struttura ad albero conforme al TDS (TEX DirectorySystem) ma la radice di questo albero deve essere in una zona personalesulle macchine Linux questa zona egrave la cartella Home indicata con ~ e adogni modifica del contenuto dellrsquoalbero personale bisogna aggiornare il da-tabase dei nomi dei file in esso contenuti usando gli strumenti specifici delledistribuzioni del sistema TEX su quelle macchine Nelle macchine Windowsla cartella corrispondente a Home non egrave ben definita sebbene le versionipiugrave recenti dei sistemi operativi creati da Microsoft abbiano una sorta dicartella personale generalmente radicata in Documenti〈NomeUtente〉Questa struttura di albero personale va elencata fra gli alberi di MiKTEXin modo che quando si apre la cartella MiKTeX Settings il tasto Refreshdatabases possa agire anche sullrsquoalbero personale Sulle macchine Mac laradice dellrsquoalbero personale egrave in ~Library e non ha bisogno di venireaggiornata percheacute ci pensa il sistema operativo e MacTEX lo sa e ne sfruttale funzionalitagrave

F3 CICLO INFINITO 485

Come si vede sono tutte soluzioni semplicissime che non spaventano nessunoche conosca bene la propria macchina e il proprio sistema operativo Egrave veroqualche volta situazioni di questo genere mettono in imbarazzo ma la soluzioneegrave poi immediata

F3 Ciclo infinito

Lrsquounico errore per il quale ogni programma del sistema TEX non emette messaggiegrave forse lrsquoerrore piugrave grave lrsquoentrata in un ciclo infinito ogni programma classeo pacchetto del sistema TEX egrave in grado di eseguire delle chiamate ricorsiveciograve che avviene quando una macro direttamente o indirettamente richiama sestessa percheacute questa ricorsione abbia termine egrave necessario che lungo questaoperazione ciclica qualcosa cambi e un test ne verifichi il cambiamento al fine dinon ripercorrere il ciclo allrsquoinfinito Se ciograve non accade il programma continua ariciclare allrsquoinfinito a parte il tempo perso a riciclare a vuoto puograve succedere cheil programma di composizione scriva qualcosa nel file di uscita o nei file ausiliariSe ciograve malauguratamente succedesse e lrsquooperatore non fosse pronto a ldquoucidererdquoil programma si finirebbe per saturare lrsquointero disco con danni non facilmentequantificabili ma sicuramente danni seri al contenuto del disco e alle operazioninecessarie al suo ripristino

Questo genere di cose possono succedere quando si scrivono delle macroricorsive generalmente queste macro servono per eseguire elaborazioni che noncoinvolgono lrsquoutente finale ma interessano moltissimo a coloro che scrivono classioppure pacchetti o anche soltanto alcune macro per il preambolo del propriodocumento

Lrsquounica via per uscirne egrave essere molto tempestivi prima che possano esseredanneggiate le informazioni sul proprio hard disk spesso lrsquoeditor dispone diun pulsante di emergenza in TEXShop crsquoegrave un bottone Abort in TeXworks ilbottone verde per lanciare la compilazione puograve essere cliccato e oltre a diventarerosso arresta il programma Sugli editor specifici per le macchine Linux o ci sonoanaloghi bottoni oppure basta eseguire le scorciatoie di tastiera come Ctrl +Y o simili Sulle macchine Windows la procedura egrave piugrave elaborata e piugrave lungain quanto bisogna arrestare il programma agendo sul Task Manager che per altrosolitamente non ha un bottone sempre disponile in una delle barre e quindi siconsuma del tempo prezioso per eseguire tutta la procedura di ldquoucisionerdquo delprogramma entrato in un ciclo infinito Con le macchine con un sistema operativoti tipo UNIX (Linux e Mac) si puograve sempre agire dalla finestra comandi dandoprima il comando ps ax per determinare il numero del processo e poi dare ilcomando kill 8902 (se il numero del processo egrave stato rilevato essere 8902)Le macchine Mac hanno anche il menugrave ldquomelardquo in alto a sinistra nella barrasuperiore con la voce ldquoForce quitrdquo cliccando su questa voce si apre una piccolafinestra di dialogo dove sono elencati i processi dellrsquoutente che sono in esecuzionee di ligrave egrave facile individuare quella componente di TEX che sta facendo capricci lasi puograve selezionare e ldquouccidererdquo

486 APPENDICE F TRATTAMENTO DEGLI ERRORI

F4 Gruppi apertiUn altro errore molto infido egrave la mancanza della parentesi chiusa di un gruppotalvolta questa parentesi mancante provoca solo un avviso scritto verso la finedel file log che spiega che il programma egrave terminato mentre si era dentro ungruppo il messaggio spiega anche a quale livello di annidamento si trovava quelgruppo qualche volta riesce a dire anche in quale riga di quale file quel gruppoera stato aperto Talvolta il gruppo era stato aperto dentro un file incluso nelflusso di elaborazione mediante il comando include in questo caso si accorgeche il gruppo non egrave chiuso quando ha finito di leggere il file incluso ma ilmessaggio non riesce a dire altro che crsquoegrave un gruppo non chiuso e indica solo lariga del master file dove crsquoegrave il comando include Egrave una informazione minimama almeno si riesce a sapere quale file il programma stava leggendo quando egravearrivato alla fine con il gruppo ancora aperto

Questo tipo di errore egrave relativamente facile da scovare la maggior partedegli shell editor sono in grado di riconoscere le graffe appaiate alcuni inbase a queste informazioni riescono a disegnare in una barra laterale (dellaschermata dellrsquoeditor) che descrive graficamente la struttura del file e dei gruppiche contiene siano essi ambienti delimitati dai comandi begin e end sianoessi gruppi delimitati dalle graffe Chi scrive trova piugrave comodo il funzionamentodi TEXShop che non ha la barra laterale in questo shell editor e in diversi altriper altri sistemi operativi cliccando su una graffa lrsquoeditor cerca la sua compagnaed evidenzia tutto il gruppo con un colore di sfondo diverso sia che il gruppo siabreve sia che coinvolga diverse schermate del file sorgente il brusco cambiamentodi colore indica subito lrsquoesistenza di un gruppo al massimo potrebbe essere statochiuso nel punto sbagliato ma almeno il gruppo esiste Quando invece il grupponon egrave chiuso non succede nientrsquoaltro e lrsquoerrore egrave trovato basta solo andare acercare il punto giusto per porre la parentesi chiusa mancante

Lrsquoerrore infido della mancata chiusura di un gruppo puograve talvolta essere moltodifficile da scovare in un lungo documento non suddiviso in file da includereanche in un documento suddiviso in diversi file inclusi puograve essere particolarmentedannoso se la mancanza del gruppo provoca messaggi drsquoerrore incomprensibilie che non si riesce a mettere in relazione a quello che si crede di avere scrittodentro il file sorgente In questo caso si puograve procedere col metodo della dicotomiasi sposta la schermata dellrsquoeditor a metagrave del file (unico o incluso) non dentroun ambiente ma prima o dopo lrsquoapertura o rispettivamente la chiusura di unambiente e ligrave si inserisce una riga contenente solo

enddocument

A questo punto si lancia il programma di composizione se lrsquoerrore continuaa presentarsi la mancanza della chiusura del gruppo egrave nella prima metagrave delfile altrimenti egrave nella seconda metagrave A questo punto si toglie la precedentespecificazione di fine documento lasciando al suo posto un contrassegno diposizione potrebbe essere quella riga stessa dopo averla commentata Poi la siinserisce nuovamente a metagrave della parte incriminata e si ripete il processo quantevolte occorre fino a restare con una parte di file di poche decine di righe dovedovrebbe essere piugrave facile trovare che cosa manca

Si tratta di soluzioni estreme Certo quando non crsquoegrave nessuna informazio-ne utile per capire la natura dellrsquoerrore bisogna ricorrere a soluzioni estremeammetto di averle dovute usare molto raramente ma in quasi trentrsquoanni drsquouso

F5 MANCATA APERTURA DI UN GRUPPO 487

di LATEX potranno essere state una mezza dozzina di volte Certo mi capitavapiugrave facilmente quando la distribuzione del sistema stava su un paio di floppy da514

primeprime e la documentazione era virtualmente inesistente ora sono anni che nonmi capita piugrave grazie sia alla migliore diagnostica e allrsquoesperienza accumulata

F5 Mancata apertura di un gruppoManca sempre una graffa questa volta aperta mentre egrave presente la graffa chiusaIl metodo di cliccare su graffe aperte o chiuse e controllare quale parte del filesorgente viene evidenziata funziona sempre ma prima bisogna capire che sitratta di una graffa aperta mancante Spesso il messaggio drsquoerrore fa riferimentoad una graffa chiusa ed informa lrsquoutente che

erroritex55 Too many rsquosl55 graffa chiusa

ed informa lrsquoutente che

Si capisce subito di che cosa si tratta e che lrsquoerrore non egrave grave per cui si puogravetranquillamente lasciar continuare al compilazione fino in fondo bisogna perogravericordarsi che la riga 55 del file erroritex (come dice il messaggio) contieneuna graffa chiusa priva di una precedente compagna graffa aperta e lrsquoerrorettova comunque corretto

F6 Interferenza con le definizioniTalvolta la graffa aperta mancante cade in una posizione insolita dove la cor-rispondente graffa chiusa ha un senso per il programma interprete La graffachiusa non viene rilevata come erronea e lrsquointerpretazione continua fino ad unpunto dove il programma non capisce piugrave niente ed emette un messaggio drsquoerroreche non ha nulla a che fare con il punto doove manca effettivamente la graffaaperta Si consideri il codice seguente

newcommandmycommandifnum

defRCirelaxletRCunoRCidefRCiirelaxletRCdueRCiidefRCiiirelaxletRCtreRCiii

else

fi

Viene usato un test con la sintassi primitiva di TEX la mancanza della graffaaperta nella definizione di RCCii fa sigrave che il test iniziato con ifnum non sichiuda allrsquointerno della definizione Se usando TEXShop avessimo cliccato sullaparentesi che apre la definizione di mycommand avremmo trovato che questo

488 APPENDICE F TRATTAMENTO DEGLI ERRORI

ldquogruppordquo si chiude dopo il comando relax che segue la definizione di RCii e cisaremmo accorti subito dellrsquoerrore Non lrsquoabbiamo fatto e abbiamo mandato incompilazione il documento contenete queste definizioni Poicheacute le macro contenutedentro le definizioni ldquonormalirdquo non vengono sviluppate (eseguite) il programmadi composizione ci avrebbe avvisato della presenza di un ldquoextra elserdquo seavessimo forzato il programma a proseguire avremmo avuto un altro avviso dierrore per la presenza di un ldquoextra firdquo avremmo avuto due segnalazioni dierrore causati dalla mancanza di una graffa aperta ma i due messaggi drsquoerroreavrebbero portato la nostra attenzione sui comandi condizionali non sulle graffese avessimo forzato ancora il programma a proseguire finalmente esso ci avrebbeavvisato della presenza di ldquoToo many rsquosrdquo e finalmente avremmo capito chemancava una graffa aperta o che crsquoera una graffa chiusa di troppo forzandoci arivedere le graffe e a trovare finalmente la mancanza della graffa aperta

F7 File personali che provocano conflittiIn un file di classe avevo scritto il seguente codice

AfterEndPreambleifundefinedvirgolaDeclareMathSymbolvirgolamathpunctletters3BDeclareMathSymbolvirgoladecimalemathordletters3B

Volevo evitare di ridefinire alcune assegnazioni eventualmente eseguite in altrifile letti nel preambolo Il lettore puograve riconoscere parte del codice illustrato nelcapitolo 17 a proposito della virgola intelligente Quel tipo di codice apparegiagrave nella mia versione personale del file di descrizione della lingua italianaitalianldf letto da babel quando specifico la lingua italiana Il mio erroreconsiste proprio nellrsquoaver modificato a titolo personale un file avente lo stessonome del file del sistema TEX che non deve mai essere modificato mai e poi maiper nessun motivo ldquoMal me ne incolserdquo

Infatti la documentazione del pacchetto etoolbox col quale egrave definito ilcomando AfterEndPreamble specifica chiaramente che i comandi contenutinellrdquoargomento di questo comando vengono sviluppati dopo che che egrave cessatoil preambolo (come drsquoaltronde il nome dice con grande chiarezza) e che quindiquesti comandi non possono contenere altri comandi usabili solo nel preamboloIl comando DeclareMathSymbol egrave appunto uno di questi comandi a validitagravelimitata che possono essere usati solo nel preambolo

Anche se avevo recepito questo avvertimento non lrsquoavevo evidentementeinteriorizzato e avevo scritto il codice suddetto che funzionava perfettamentee non ricevevo nessun messaggio drsquoerrore Tranquillo della bontagrave del codiceavevo mandato il file ad un amico al quale la cosa non funzionava e riceveva ilmessaggio drsquoerrore che

DeclareMathSymbolmay be used only in the preamble

See the LaTeX Companion for exlanation

F8 TRACCIARE LrsquoOPERATO DEL PROGRAMMA 489

Lrsquoamico mi scriveva dicendomi ldquoricevo questo messaggio drsquoerrore ti mando ilfile log rdquo e io gli rispondevo ldquoNon riesco a replicare il tuo errore dammi piugravedettagli rdquo Insomma fra noi crsquoera un dialogo fra sordi ma il sordo ero io cheavevo completamente rimosso lrsquoavvertimento del pacchetto etoolbox e non locollegavo con il messaggio piuttosto esplicito dellrsquoamico

Il problema ere causato dal mio file personalizzato italianldf che definivail comando virgola per cui il codice incriminato veniva saltato grazie al testifundefined ho fatto perdere al mio amico una buona settimana di botta erisposta inconcludenti per colpa mia fincheacute finalmente mi si egrave accesa la luce hocapito il problema e ho potuto rimediare con mille scuse Per lrsquoennesima volta hocommesso il ldquopeccatordquo di ridefinire un file di sistema e per lrsquoennesima volta neho pagate le conseguenze Ecco percheacute tra lrsquoaltro insisto sempre sulla necessitagravedi non commettere un simile errore Qui almeno aggiungo la raccomandazionedi non essere ottusi come lo sono stato io a non cogliere il significato vero deimessaggi drsquoerrore

F8 Tracciare lrsquooperato del programmaIl sistema TEX non egrave cosigrave rozzo come potrebbe apparire da quanto descritto neiparagrafi precedenti di questa appendice quei paragrafi descrivono situazioniestreme per le quali un linguaggio interpretato come il linguaggio TEX talvoltanon puograve far fronte

TEX invece egrave dotato di un certo numero di comandi primitivi alcuni dei qualirichiedono degli argomenti e tra i pacchetti LATEX ce ne egrave uno che svolge questocompito molto bene anche se i puristi preferiscono gestire individualmente isingoli parametri di tracciamento

F81 I comandi primitivi di tracciamentoI parametri di tracciamento sono descritti qui di seguito va notato che sonoquantitagrave a cui bisogna assegnare un valore positivo quando si assegna il valorezero diventano inefficaci la sintassi per tutti egrave del tipo seguente

〈comando di tracciamento〉 = 〈numero〉

tracingonline serve per emettere le informazioni di tracciamento sulla consolelo si puograve usare anche quando si lancia il programma di composizioneattraverso uno shell editor ma sarebbe meglio evitarlo specialmente pertracciati lunghi la memoria della console egrave relativamente limitata e sirischia di perdere alcune parti del tracciato

tracingmacros con un valore positivo meglio se pari a 2 mostra lo sviluppodelle macro via via che queste vengono sviluppate

tracingstats con un valore positivo mostra lrsquoutilizzazione delle memorie delsistema TEX

tracingparagraphs serve per mostrare i calcoli eseguiti quando il program-ma compone un capoverso spezzandolo in righe possibilmente di ugualelunghezza

490 APPENDICE F TRATTAMENTO DEGLI ERRORI

tracingpages serve per mostrare i calcoli eseguiti quando il programma spezzala scatola 255 in pagine inserendovi dentro le note e gli oggetti mobili

tracingoutput serve per mostrare le operazioni che il programma eseguequando deve spedire una pagina composta al file di uscita

tracinglostchars serve per mostrare quello che succede quando si invocalrsquouso di un particolare carattere (glifo) ma il font non lo contiene

tracingcommands serve per mostrare quello che il programma di composizionefa quando deve eseguire un comando

tracingassigns mostra quando viene assegnato un valore ad un registro diconteggio di numeri interi di lunghezze di lunghezze elastiche eccetera

tracingrestores serve per mostrare che cosa viene ripristinato quando ilprogramma di composizione esce da un gruppo

showboxbreadth indica il massimo numero di oggetti da mostrare in ciascunlivello di inscatolamento durante il tracciato

showboxdepth mostra il massimo livello di inscatolamento da mostrare neltracciato

Chi scrive spesso si egrave servito della coppia di specificazioni

tracingcommands=2tracingmacros=2relax〈righe del file sorgente da tracciare〉tracingcommands=0tracingmacros=0relax

Il difetto egrave che lrsquoinformazione egrave molto forse troppo abbondante in particolarequando vengono selezionati dei font quando si compone della matematicaquando si traccia la chiusura di un documento quando le righe da tracciarecoinvolgono un fine pagina e la spedizione di una pagina allrsquouscita

Qualunque esempio anche minimo che si potrebbe fare per lrsquouso di questicomandi impiegherebbe diverse pagine e non si ritiene che sia di nessuna utilitagravesenza un commento riga per riga che risulta in realtagrave superfluo visto che ogniriga del tracciamento egrave autoesplicativa Se esiste qualche difficoltagrave questa stanellrsquointerpretazione delle informazioni e nellrsquoabilitagrave del lettore di saltare le partiche non interessano Tuttavia si impara la lettura del tracciamento non egrave spiegatada nessuna parte ma tutti quelli che hanno eseguito e letto dei tracciati li hannocompresi certo con pazienza e con molta determinazione ma ci sono riusciti

F82 Il pacchetto trace

Il pacchetto trace sembra poco flessibile ma sostanzialmente traccia tutto quelloche puograve essere tracciato tranne la selezione dei font la costruzione delle partimatematiche la costruzione dei capoversi e la costruzione delle pagine delle qualiespone solo la riga finale Se si usano male i suoi comandi potrebbe succedereche venga tracciato anche lrsquooperato della routine di uscita quella che emettenel file di uscita una pagina definitivamente composta con il testo le note alpiede e le note marginali le eventuali figure e quantrsquoaltro venga eseguito durantelrsquoaccodamento di una pagina completata al file di uscita

F8 TRACCIARE LrsquoOPERATO DEL PROGRAMMA 491

I comandi per attivare il tracciamento sono molto prevedibilmente traceone traceoff essi vanno messi a cavallo della parte che si vuole tracciare e cheproduce messaggi drsquoerrore per coloro che creano classi pacchetti o macro perso-nali possono servire per scoprire percheacute le macro accuratamente programmate erealizzate non fanno quello che si vorrebbe che facessero Se si dovesse metteretraceoff proprio appena prima della chiusura di un gruppo lo si puograve ometterepercheacute il comando traceon inserito dentro lo stesso gruppo cessa il suo effettoalla chiusura del gruppo stesso

In effetti traceon serve per impostare i parametri di tracciamento in questomodo

tracingtruetracingstats=2tracingpages=1tracinglostchars=1tracingparagraphs=1errorcontextlines=maxdimentracingoutput=1showboxbreadth=maxdimenshowboxdepth=maxdimenerrorstopmodetracingmacros=2tracinggroups=1tracingrestores=1tracingcommands=2tracingassigns=2tracingonlinetracingonlinep

Il comando opposto traceoff rimette a zero tutti quei parametri Si noti chemaxdimen rappresenta sia la massima lunghezza trattabile dai programmi delsistema TEX visto in termini di ldquoscaled pointsrdquo se si assegna questo valoread un contatore intero indica il massimo numero intero (diviso per quattro)gestibile dai programmi del sistema TEX1 di fatto assegnare questo valore ashowboxbreadth e a showboxdepth equivale ad assegnare un valore talmentegrande da poterlo considerare ldquoinfinitordquo tracingtrue impone al valore truealla variabile booleana tracing tracinngonlinep egrave una macro che puogravecontenere il valore 0 o 1 a seconda delle opzioni con cui viene chiamato ilpacchetto trace

Infine errorstopmode imposta il modo di funzionamento del programmain modo che si arresti ad ogni errore spesso i programmi di composizionevengono lanciati con altre opzioni per esempio nonstopmode che possono risultarepiugrave veloci nellrsquoesecuzione chi scrive preferisce sempre lavorare in modalitagraveerrorstopmode cosi puograve rendersi conto subito degli errori commessi avendodisponibile la schermata dello shell editor puograve nella maggior parte dei casispostarsi alla riga segnalata come erronea correggere subito quella riga nel filesorgente contemporaneamente alla richiesta del programma di composizioneegli introduce lrsquoinformazione corretta servendosi della lettera di codice i moltocomoda appunto per correggere subito certi errori di ortografia nei comandi

1Il registro maxdimen vale 1638399998pt assegnando maxdimen a un contatore interoquesto vale 1073741823 piugrave di un miliardo

492 APPENDICE F TRATTAMENTO DEGLI ERRORI

ma tale da poter proseguire subito generalmente fino alla fine della compilazionedellrsquointero file

Questi due comandi oltre ad ldquoaccendererdquo il tracciamento e a ldquospegnerlordquofanno sigrave che le informazioni del tracciamento vengano scritte nel file logTerminata lrsquoesecuzione del programma di composizione si puograve aprire anche conlo stesso shell editor con cui si compone il file sorgente dei documenti quel filelog e leggere tutto quello che ha fatto il programma nella parte tracciata

Di ogni comando che viene eseguito viene mostrata la definizione e qualiargomenti vengono passati al comando poi uno per uno vengono elencati icomandi primitivi oppure vengono ldquoespanserdquo le macro e viene mostrato su qualiargomenti lavorano si procede cosigrave fino alla fine della parte da tracciare senzamostrare se non qualche breve parte relativa ai cambiamenti di font quel tantoche basta per sapere quale comando sia stato eseguito e quale font in effetti siastato selezionato vengono mostrate tutte le aperture di gruppi con i loro livelli ele corrispondenti chiusure come vengono ripristinate le macro o i contatori cheabbiano ricevuto altre definizioni o altri valori allrsquointerno di ogni gruppo qualivalori avessero le macro oggetto di test di vario genere quali siano gli esiti deitest e quale biforcazione si sia presa alla fine del test che cosa indicassero i tokenimpliciti che cosa contenessero le macro oggetto dei comandi expandafterInsomma per filo e per segno ogni possibile azione eseguita dal programma dicomposizione salvo i dettagli meno interessanti come per esempio la selezionedei font e poche altre cose se interessassero queste informazioni si possono usarei comandi di tracciamento descritti nel paragrafo precedente

La descrizione di queste cose egrave molto minuziosa il file log rischia di esseremolto molto grande la sua lettura molto faticosa la sua comprensione moltodifficile fincheacute non si egrave presa la mano Egrave una operazione da cuori molto fortiPer altro anche con i comandi primitivi si hanno situazioni dello stesso generetalvolta ancora piugrave dettagliate

Mettere qui un esempio vorrebbe dire scrivere un altro libro Vi rinuncioTuttavia non esistono altri metodi per imparare a comprendere i tracciatocontenuto nel file log se non quello di provarci e di riprovarci dopo un paio divolte si fa luce nella nostra visione dellrsquooperato del programma di composizionee la lettura del tracciato non egrave piugrave cosigrave difficile come le prime volte lungo sigravenoioso sigrave ma oscuro non piugrave

Vanno usate alcune piccole astuzie bisogna stare attenti a non inserire le duemacro di accensione e spegnimento dentro una macro che viene usata centinaiadi volte ma mettere i due comandi suddetti a cavallo di un breve brano difile sorgente che contenga una sola volta lrsquoesecuzione di quella macro Bisognaevitare tratti di testo sorgente che contengano numerosi cambiamenti di fontanche se per questi viene presentato solo un riassunto se i cambiamenti sononumerosi i riassunti sono numerosi e alla fine si perde di vista quello che interessaBisogna ovviamente trovato lrsquoerrore o la causa di un malfunzionamento di unamacro commentare o cancellare quei due comandi altrimenti il tracciamentocontinua ad essere eseguito rendendo difficoltosa la lettura di un eventuale altrotracciamento in un altro punto del file sorgente Insomma si impara ad usarecorrettamente la funzionalitagrave di tracciamento e a leggerne soltanto le parti cheinteressano Diventa un aiuto prezioso specialmente se si scrivono macro

F9 COSTRUZIONE DEI CAPOVERSI E DELLE PAGINE 493

F9 Costruzione dei capoversi e delle pagineIl tracciamento della costruzione dei capoversi e delle pagine egrave richiesto quandonon si capisce bene percheacute un capoverso venga composto male o diversamenteda come ce lo aspetteremmo lo stesso vale per la costruzione delle pagine daspedire in uscita

A differenza degli altri comandi di tracciamento descritti nel paragrafoprecedente questi comandi sono descritti approfonditamente nel TEXbook Icomandi in questione sono tracingparagraphs=1 e tracingparagraphs=0per accendere e spegnere il tracciamento della costruzione dei capoversi al livellodi dettaglio 1 analogamente per il tracciamento della costruzione delle paginetracingpages=1 e tracingpages=0

In questa appendice si sono dati i comandi per il tracciamento delle paginedurante il corpo di due pagine precedenti (in formato B5) I messaggi ottenutinel file log sono ridotti allrsquoosso

[610] t=4700 plus 90 minus 80 g=4660 b=12 p=0 c=12 t=4820 plus 100 minus 80 g=4660 b= p=3000 c=[611]

goal height=4660 max depth=50 t=100 g=4660 b=10000 p=3000 c=100000 t=220 g=4660 b=10000 p=0 c=100000 t=340 g=4660 b=10000 p=0 c=100000 t=460 g=4660 b=10000 p=0 c=100000 t=580 g=4660 b=10000 p=0 c=100000 t=700 g=4660 b=10000 p=0 c=100000 t=820 g=4660 b=10000 p=0 c=100000 t=940 g=4660 b=10000 p=0 c=100000 t=1060 g=4660 b=10000 p=0 c=100000 t=1180 g=4660 b=10000 p=0 c=100000 t=1300 g=4660 b=10000 p=3000 c=100000 t=1420 g=4660 b=10000 p=0 c=100000 t=1540 plus 10 g=4660 b=10000 p=3000 c=100000 t=1660 plus 10 g=4660 b=10000 p=0 c=100000 t=1780 plus 10 g=4660 b=10000 p=0 c=100000 t=1900 plus 10 g=4660 b=10000 p=3000 c=100000 t=2020 plus 10 g=4660 b=10000 p=0 c=100000 t=2140 plus 20 g=4660 b=10000 p=3000 c=100000 t=2260 plus 20 g=4660 b=10000 p=0 c=100000 t=2380 plus 20 g=4660 b=10000 p=0 c=100000 t=2500 plus 20 g=4660 b=10000 p=0 c=100000 t=2620 plus 20 g=4660 b=10000 p=0 c=100000 t=2740 plus 20 g=4660 b=10000 p=0 c=100000 t=2860 plus 20 g=4660 b=10000 p=0 c=100000 t=2980 plus 20 g=4660 b=10000 p=0 c=100000 t=3100 plus 20 g=4660 b=10000 p=0 c=100000 t=3220 plus 20 g=4660 b=10000 p=0 c=100000 t=3340 plus 20 g=4660 b=10000 p=0 c=100000 t=3460 plus 20 g=4660 b=10000 p=0 c=100000

494 APPENDICE F TRATTAMENTO DEGLI ERRORI

t=3580 plus 20 g=4660 b=10000 p=0 c=100000 t=3700 plus 20 g=4660 b=10000 p=0 c=100000 t=3820 plus 20 g=4660 b=10000 p=3000 c=100000 t=3940 plus 20 g=4660 b=10000 p=0 c=100000 t=4060 plus 30 g=4660 b=10000 p=3000 c=100000 t=4180 plus 30 g=4660 b=10000 p=0 c=100000 t=4300 plus 30 g=4660 b=10000 p=0 c=100000 t=4420 plus 30 g=4660 b=10000 p=3000 c=100000 t=4540 plus 30 g=4660 b=6396 p=0 c=6396 t=4660 plus 40 g=4660 b=0 p=3000 c=3000 t=4780 plus 40 g=4660 b= p=0 c=[612]

Possiamo leggere i risultati cosigrave

bull Per la pagina indicata qui col numero [611] si legge che il totale dialtezza al momento di spedire la pagina allrsquouscita egrave di 4700 pt con lacomponente di allungamento totale nella pagina di 90 pt e una componentedi accorciamento di 80 pt lrsquoaltezza della pagina da raggiungere (il goal) egravedi 4660 pt quindi bisogna accorciare lrsquoaltezza della pagina di soli 40 ptabbondantemente rientrante negli 80 pt di accorciamento disponibile Labruttezza egrave perciograve molto piccola (vale solamente 12) non ci sono penalitagravedi nessun genere il costo per lrsquoemissione di quella pagina egrave quindi pari allabruttezza e vale 12 un costo minimo che indica che la fine della pagina611 egrave avvenuto nel migliore dei modi Se si andasse ad una riga dopo labruttezza diventerebbe ldquoinfinitardquo (b=) e il costo infinito

bull Per la pagina [612] si legge il costo riga per riga alla penultima riga dellapagina si sono raggiunti 4540 pt con pochissimo allungamento accumulatodi soli 30 pt e non si dispone di nessuna componente di accorciamentoLrsquoaltezza della pagina da raggiungere egrave di 4660 pt (come prima eviden-temente) ma i 120 pt mancanti devono essere recuperati dal piccolissimoallungamento disponibile di soli 30 pt dunque la componente di bruttezzaegrave piuttosto pesante 6396 ma non infinita per cui in mancanza di penalitagraveil costo per emettere la pagina egrave piuttosto alto 6396 In effetti quellosarebbe il costo per emettere la pagina una riga prima della riga orfana infondo alla pagina Quella riga in effetti egrave alta esattamente 120 pt quindiil punto scelto dal programma per emettere la pagina non ha nessunabruttezza ma ha una penalitagrave positiva pari alla penalitagrave di default per lerighe orfane pari a 3000 quindi abbastanza minore di quella corrispondentealla bruttezza raggiunta alla penultima riga La pagina quindi egrave stataspezzata nel punto di minimo costo (c=3000) mentre una riga dopo sisarebbe ottenuto un costo grandissimo

Si noti che avendo caricato il pacchetto trace in questo testo il tracciamentodelle pagine cessa con una sola informazione raggiunta verso la fine della paginanel punto in cui si egrave specificato il comando di tracciamento e cessa da solo senzabisogno di specificare un nuovo comando con il valore nullo

Invece per tracciare il processo di composizione della formazione del capoversoprecedente si ha il tracciato seguente decisamente piugrave complicato da decifrare

firstpass

F9 COSTRUZIONE DEI CAPOVERSI E DELLE PAGINE 495

[]T1lmrmit10Si noti che avendo caricato il pacchetto T1lmvttmsl10trace[] T1lmrmit10 in questo testo il tracciamento via 0 b=0 p=0 d=1001 line 12 t=100 -gt 0delle pagine cessa con una sola informazione raggiuntaverso la fine della pagina

via 1 b=0 p=0 d=1002 line 22 t=200 -gt 1nel punto in cui si egrave specificato il comando di tracciamentoe cessa da solo via 2 b=23 p=0 d=10893 line 31 t=1289 -gt 2senza via 2 b=0 p=0 d=1004 line 32 t=300 -gt 2bisogno di specificare un nuovo comando con il valore nullopar via 3 b=0 p=-10000 d=100par via 4 b=0 p=-10000 d=1005 line 42- t=400 -gt 4

Il tracciato comincia con firstpass che indica che le informazioni mostrateindicano la ricerca dei punti migliori di divisione in righe al primo passaggio senzacioegrave usare punti di cesura ma cercando i fine riga solo fra gli spazi interparolaVi sono indicati i cambiamenti di font nelle righe via via prese in considerazione

Il primo fine riga con un demerito totale paria a 100 viene trovato dopo laparola ldquotracciamentordquo analogamente il secondo fine riga viene trovato dopola parola ldquopaginardquo di nuovo con un demerito pari a 100 nella terza riga vieneprovata lrsquointerruzione dopo la parola ldquosolordquo ma i demeriti ammontano a 1089invece andando avanti e prendendo in considerazione anche la parola ldquosenzardquo idemeriti ammontano solo al valore 100 questo egrave quindi accettato come terzofine riga possibile Il quarto fine riga avviene alla fine del capoverso dove lapenalitagrave vale -10 000 e quindi non ci sono problemi nel terminare la riga allafine del capoverso (ovviamente) Nelle ultime due righe vengono riassunti i varidemeriti totali raggiunti attraverso i vari possibili punti di fine riga e vienescelto il percorso (segnato dai vari segnaposto 1 2 ecc) che porta alminimo della somma totale dei demeriti pari a 400 Ovviamente in capoversi piugravecomplessi dove sia necessaria anche la seconda passata per cercare i possibilipunti di cesura usando la sillabazione il tracciato potrebbe essere molto piugravecomplesso ma con un porsquo di pazienza sarebbe decifrabile come si egrave fatto perquesto capoverso

In realtagrave la frase che forma il capoverso che abbiamo tracciato egrave solo unamezza veritagrave per il tracciamento delle pagine egrave vera per il tracciamento deicapoversi egrave falsa Per avere il tracciamento completo come abbiamo mostratosopra egrave necessario evitare di caricare il pacchetto trace percheacute appunto configurai comandi di tracciamento in modo troppo ridotto per disporre di un buontracciamento di pagine e di capoversi

Chi scrive peraltro riconosce che in generale questi due tracciamenti ricchis-simi di informazioni sono meno indispensabili di quelli che si ottengono con icomandi traceon e traceoff chi scrive di solito riesce a capire i difetti di

496 APPENDICE F TRATTAMENTO DEGLI ERRORI

formazione dei capoversi e delle pagine senza ricorrere al loro tracciamento maleggendo solo la scarne informazioni associate agli avvisi di ldquoOverfulrdquo box verticalio orizzontali Naturalmente questa egrave una questione di preferenze personali oltreche di cose che vengono scritte nei vari tipi di file sorgente quando provocanomessaggi di errore o avvisi di cattiva composizione

F10 ConclusioniBencheacute siano fortemente illuminanti i comandi di tracciamento per le paginee per i capoversi vengono usati raramente i comandi traceon e traceoffvengono usati non tanto spesso ma sono la vera ultima risorsa a cui accederequando non si riesce a capire dai messaggi errore come eliminare gli erroriche il programma di composizione si ldquoostinardquo a commettere Inoltre egrave quantomai opportuno leggere attentamente i messaggi di errore spesso la spiegazionedellrsquoerrore egrave descritta dal messaggio ma con parole che non ci sono familiari oche non sappiamo comprendere Solo la pratica insegna a capire questi messaggima se non si comincia mai a usare gi strumenti descritti qui non si riusciragrave maia capire il messaggi drsquoerrore fino in fondo

Nel TEXbook al capitolo 27 dedicato alla soluzione delle condizioni di erroreKnuth termina con queste due citazioni2

Who can understand his errors

mdash Psalm 1912 (c 1000 BC)

It is one thing to shew a Man that he is in an Errorand another to put him in possession of Truth

mdash JOHN LOCKE An Essay Concerning Humane Understanding (1690)

Senza scendere troppo in considerazioni filosofiche il problema dellrsquoerrorenon solo era stato messo nero su bianco fin dai tempi in cui si ritiene che siastata scritta la Bibbia ma era anche un argomento dibattuto nel periodo pre-illuministico quando si evidenziava la differenza fra riconoscere lrsquoerrore rispettoa correggerlo

2Prima citazione ldquoChi riesce a capire i propri errorirdquo Seconda citazione ldquoUna cosa egravemostrare allrsquouomo che egrave in errore e una differente metterlo in condizione di conoscere la veritagraverdquo

Appendice G

Riepilogo della sintassidi LATEX

In questa appendice si riepilogheragrave in modo molto succinto la sintassi di tutti (oquasi) i comandi LATEX anche quelli non descritti nei capitoli del testo Lrsquoordinedel materiale segue lrsquoappendice C del manuale di Lamport il creatore di LATEXNon si tratta perograve di una semplice traduzione anche se la materia sembra espostanello stesso ordine egrave una esposizione ragionata e commentata anche alla luce diinformazioni rese disponibili dopo la pubblicazione di quel manuale

Parentesi graffe e quadre Le parentesi graffe generalmente racchiudono ogli argomenti obbligatori dei comandi oppure un insieme di testo e di comandi eistruzioni che formano un gruppo i comandi e le istruzioni mantengono la loroefficacia solo allrsquointerno del gruppo tranne alcuni comandi il cui effetto egrave globalequesti comandi sono

newcounter pagenumbering newlength hyphenationsetcounter thispagestyle newsaveboxaddtocounter pagecolor newtheorem

Le parentesi quadre delimitano gli argomenti facoltativi di molti comandi bisognastare attenti alle possibili contraddizioni fra queste parentesi e le parentesi quadreche compaiono nel testo queste potrebbero essere scambiate per quelle Al finedi evitare queste incomprensioni egrave opportuno racchiudere le parentesi quadretestuali (o le frasi racchiuse fra parentesi quadre) fra parentesi graffe I comandicon cui potrebbero succedere queste incomprensioni sono i seguenti

linebreak nolinebreak newcounter twocolumnitem pagebreak nopagebreak newtheorem suppressfloats

Si scriveragrave per esempiobeginitemizeitem [omissis] il conte disse allora ltAh ahgtitem[[omissis]] serve per indicare

lrsquoomissione di una parte di testo

497

498 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

Gli argomenti degli ambienti Quando si apre un ambiente solo il comandodi apertura puograve ricevere degli argomenti mentre il comando di chiusura nonne puograve accettare alcuno Se lrsquoambiente ha un nome che contiene un asteriscofinale questo va ripetuto anche nel comando di chiusura lrsquoasterisco non egrave unargomento ma fa parte integrante del nome

Comandi fragili e robusti Quasi tutti i comandi di LATEX sono robusti nelsenso che eseguono quel che devono eseguire senza che questa operazione possaessere modificata dalla posizione che essi hanno per esempio negli argomenti dialtri comandi Sono fragili gli altri e per evitare che possano combinare pasticcibisogna proteggerli con protect premesso al loro nome Il LATEX3 Team stafacendo lrsquoimpossibile per eliminare eo modificare i pochi comandi fragili cherimangono tuttavia ce ne sono ancora alcuni

I comandi fragili si possono comportare male quando sono contenuti fra gliargomenti mobili di altri comandi sono argomenti mobili quelli che devono venireelaborati in fasi successive per esempio quando devono essere scritti nei fileausiliari e poi riletti ed elaborati in una fase successiva quando si rilancia LATEX

I comandi con argomenti mobili sono tipicamente quelli che scrivono qual-cosa che deve poi comparire negli indici generale eo analitico nei glossarinelle liste delle figure eo delle tabelle eccetera gli argomenti di footnote edi footnotetext gli argomenti di typein e di typeout che consentono dicreare dei file tex interattivi il contenuto dellrsquoambiente letter definito allrsquoin-terno della classe letter lrsquoargomento di thanks usato tipicamente nei titolispecialmente per indicare le afferenze degli autori lrsquoargomento facoltativo dibibitem lrsquoargomento delle -espressioni nella definizione degli incolonnamentidegli ambienti tabular e array

Egrave opportuno usare protect con parsimonia per non correre il rischiodi inserirlo dove proprio non ci vuole conviene inserirlo a posteriori quandolrsquoesecuzione della compilazione mostra errori irrecuperabili spesso di difficilediagnosi ma altrettanto spesso dovuti alla fragilitagrave di qualche comando

Il comando Il comando serve sia per andare a capo durante la composi-zione del testo normale eventualmente contenuto dentro ambienti che specificanoil tipo di composizione (testi in display) sia nella composizione di tabelle omatrici quando si vuole terminare una riga di quella struttura I due usi pos-sono entrare in collisione specialmente nelle colonne definite con i descrittoridi colonna p m o b Per evitare che un comando usato con il testo che devevenire composto in una colonna p m o b di una tabella possa venire male inter-pretato come comando relativo alla tabella basta racchiudere lrsquointero contenutodella cella dentro un gruppo formato dalla coppia di parentesi graffe alternativamente si puograve usare il comando newline

Quando LATEX compone un capoverso si eviti di usare due comandi diseguito si usi invece lrsquoargomento facoltativo per aggiungere altro spazio lasintassi del comando lo si ricorda egrave

[〈spazio〉][〈spazio〉]

dove la versione asteriscata impedisce un salto pagina prima della nuova riga acausa di queste diverse modalitagrave di andare a capo il comando egrave fragile

G1 LA STRUTTURA DEL DOCUMENTO 499

Gli ambienti (anche nelle versioni asteriscate) e i comandi che accettano ilcomando a parte il testo normale sono i seguenti

shortstack author title dateeqnarray tabbing array tabular

Gli ambienti array e tabular sono stati messi in evidenza percheacute insieme congli altri ambienti per comporre materiale tabulare bisogna evitare che il segnodi lsquoa caporsquo del testo possa essere frainteso per un comando di fine riga della tabella questa possibile confusione egrave particolarmente insidiosa se la partetestuale viene composta con una delle dichiarazioni centering raggedrighto raggedleft Per evitare di confondere il significato di si suggerisce diusare per lrsquolsquoa caporsquo testuale il comando newline

Inoltre se si specifica uno 〈spazio〉 come argomento di allrsquointerno di unatabella o di una matrice e se questo egrave troppo piccolo potrebbe non manifestarsinessun effetto visibile percheacute il piccolo spazio viene assorbito dalla profonditagravedello strut che compare in ogni riga delle tabelle e delle matrici

G1 La struttura del documentobeginfilecontents〈nome file〉〈contenuto del file〉endfilecontents documentclass[〈lista di opzioni〉]〈classe〉〈preambolo〉begindocument〈testo del documento〉enddocument

La dichiarazione documentclass puograve essere preceduta da uno o piugrave ambientifilecontents che servono in particolar modo quando si inviano i file sorgente adaltri collaboratori per specificare i pacchetti non standard da cui dipende lacomposizione del documento Questi file vengono estratti dal file sorgente la primavolta che il documento viene elaborato nella nuova situazione e memorizzaticon il loro 〈nome file〉 nella cartella corrente cosiccheacute quando la compilazionecomincia per davvero LATEX dispone di tutti i file di cui ha bisogno compresiappunto i file non standard allegati al file sorgente

G2 Periodi e capoversi

G21 PeriodiApostrofi e virgolette

apostrofo rsquovirgolette semplici rialzate lsquo〈testo〉rsquovirgolette doppie rialzate lsquolsquo〈testo〉rsquorsquovirgolette caporali lt〈testo〉gt oppure con encoding T1 ltlt〈testo〉gtgt

500 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

Lineati

lineetta -lineato medio per intervalli numerici --lineato lungo per gli incisi e per i dialoghi ---

Spazi

spazio fine spazio interparola spazio interparola che impedisce di andare a capo ~spazio di fine periodo

Il comando inserito dopo una lettera maiuscola e prima di un punto fermoserve per evitare che questo sia scambiato per un punto di abbreviazioneLrsquointerprete infatti ritiene che un punto dopo una lettera minuscola sia unpunto di fine periodo mentre un punto dopo una lettera maiuscola indichiuna abbreviazione Si osservi la spaziatura quando si scrive M Rossi equando invece si scrive m rossi In questo secondo caso lo spazio chesegue m dovrebbe essere due volte piugrave grande dello spazio che segue M ecomunque circa il doppio dello spazio interparola Si confrontino ancora ledue frasi

Vado allrsquoufficio postale a pagare lrsquoICI Poi torno a casaVado allrsquoufficio postale a pagare lrsquoICI Poi torno a casa

Nel secondo caso non egrave stato inserito il comando dopo la parola ICILa differenza egrave minima ma un occhio esercitato la rileva Egrave per questo chenella composizione della bibliografia dove le abbreviazioni sono numerosesi usa il prossimo comando frenchspacing che rende uguali tutti gli spazidopo i segni di interpunzione in modo che non ci sia da preoccuparsi seun punto indichi una abbreviazione o un punto fermofrenchspacing serve per rendere uguali gli spazi dopo qualsiasi segno diinterpunzionenonfrenchspacing serve per aumentare gli spazi dopo i punti di inter-punzione che marcano la fine della frase o del periodo in particolare dopo ipunti fermi Questa egrave la situazione di default secondo alcuni stimati bookdesigner la spaziatura alla francese sarebbe da evitare sempre secondoaltri dovrebbe essere lrsquounica ad essere usata Si noti che questo interodocumento egrave stato composto con la dichiarazione frenchspacing

Segni speciali

$ $ _ _amp amp

Loghi

LaTeX Logo di LATEXLaTeXe Logo di LATEX2εTeX Logo di TEX

G2 PERIODI E CAPOVERSI 501

today produce la data del giorno

emph〈testo〉 Evidenzia 〈testo〉 scrivendolo in corsivo allrsquointerno di un contestoin tondo e in tondo allrsquointerno di un contesto corsivo

mbox〈testo〉 scrive 〈testo〉 allrsquointerno di una scatola orizzontale in modo chenon possa per esempio essere divisa in sillabe in fin di riga questo comandopuograve essere usato anche in un contesto matematico ma di fatto se nonci sono motivi speciali in matematica si possono usare sia i comandi discelta dei font da usare in un contesto testuale per esempio textrmrinunciando perograve alla prerogativa delle matematica di scegliere il font dellagiusta dimensione oppure i comandi text oppure intertext messi adisposizione dal pacchetto amsmath

G22 CapoversiUn capoverso si puograve iniziare o terminare con uno dei seguenti comandi in ognicaso una o piugrave righe assolutamente bianche senza neanche i segni di commentoservono per terminare un capoverso

noindent comincia un capoverso senza inserirne il tipico rientro

indent comincia un capoverso con il tipico rientro anche quando normalmenteesso non sarebbe inserito

par termina un capoverso e non egrave piugrave necessario lasciare altre righe bianche

I capoversi vengono composti secondo le seguenti giustezze

textwidth egrave la giustezza normale fissata dal file di classe se la si vuole cambiarebisognerebbe farlo solo nel preambolo

linewidth egrave la giustezza corrente puograve essere inferiore o maggiore del valoregenerale textwidth a seconda dellrsquoambiente allrsquointerno del quale si stacomponendo

columnwidth egrave la giustezza di una colonna quando si sta componendo su piugravecolonne

columnsep egrave lo spazio di separazione fra due colonne adiacenti

columnseprule egrave lo spessore del filetto verticale che separa le colonne quandosi compone su due o piugrave colonne

parindent egrave lrsquoammontare del rientro del capoverso

baselineskip egrave lrsquoavanzamento di riga stabilito con la scelta del corpo del fontche si sta usando eventualmente modificato dal comando seguente

linespread〈fattore〉 modifica lrsquoavanzamento di riga mediante il coefficientemoltiplicativo 〈fattore〉 per attivare questa specifica deve essere impartitoil comando selectfont in modo esplicito o implicito (egrave implicito se sispecifica un altro comando di cambiamento di font)

lineskip interlinea aggiuntiva da aggiungere fra due righe adiacenti per evitareche si sovrappongano

502 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

lineskiplimit valore minimo della distanza fra due righe successive scenden-do sotto il quale TEX introduce interlinea supplementare pari a lineskip

parskip rappresenta uno spazio di interlinea (contrografismo) supplementareda inserire prima di ogni nuovo capoverso generalmente questo spazio egravenullo talvolta egrave rappresentato da una lunghezza elastica (vedi piugrave avantinel paragrafo G82) dotata di un valore naturale nullo ma di un piccoloallungamento talvolta anche di un piccolo accorciamento che consente digiustificare le pagine affacciate anche se contengono un numero di righeleggermente diverso Questo normalmente succede quando per esempiouna formula di una certa dimensione verticale o un nuovo paragrafo devecominciare verso la fine di una pagina ma se non crsquoegrave abbastanza postolrsquooggetto viene spostato alla pagina successiva La pagina rimarrebbelsquomozzarsquo e per evitare questo inestetismo il programma di composizionesfrutta lrsquoelasticitagrave di questi contrografismi per distribuire le righe dellapagina in modo che le due pagine affacciate terminino allo stesso livello

enlargethispage〈lunghezza〉 allunga la pagina della 〈lunghezza〉 specifica-ta per ovvi motivi conviene che questa lunghezza si specificata con unnumero intero e piccolo (1 o 2) di righe di testo che in fondo alla paginarichiedono un numero intero di avanzamenti di riga Il comando asteriscatoenlargethispage〈lunghezza〉 prima di allungare la pagina cerca dicomprimere i contrografismi verticali presenti nella pagina stessa al fine difar stare piugrave materiale nella pagina in generale egrave piugrave conveniente usare ilcomando asteriscato

G23 Note in calcefootnote[〈numero〉]〈testo〉

Se viene specificato il 〈numero〉 non vi si puograve fare riferimento in modo simbolicoattraverso i comandi ref label eccetera Il contatore footnote viene rap-presentato con un numero a esponente tranne che nelle note interne allrsquoambienteminipage dove le note sono numerate con lettere minuscole sempre a esponenteIn certe circostanze egrave possibile separare il comando che inserisce il richiamo dellanota dal comando che effettivamente la scrive

footnotemark[〈numero〉] footnotetext[〈numero〉]〈testo〉

Per i parametri stilistici di composizione si veda il prossimo paragrafo

G24 Note marginali

marginpar[〈nota a sinistra〉]〈nota a destra〉

La 〈nota a sinistra〉 serve facoltativamente per specificare un testo con unamodalitagrave di composizione diverso da quello della 〈nota a destra〉

I parametri stilistici con cui vengono composte le note in calce e quellemarginali sono le seguenti

G2 PERIODI E CAPOVERSI 503

footnotesep egrave una lunghezza che rappresenta lrsquoaltezza dello strut messoallrsquoinizio di ogni nota aumentando questa altezza ogni nota viene staccatadi piugrave dalla precedente

footnoterule egrave il comando con il quale vengono collocati nella lista vertica-le di oggetti che compongono la pagina il filetto orizzontale e gli spaziadiacenti i modo da marcare la separazione fra il testo e le note in calceComplessivamente il filetto e gli spazi adiacenti devono avere una altezzatotale nulla quindi bisogna usare anche dello spazio lsquonegativorsquo infatti ladefinizione di default di questo comando egrave la seguente

deffootnoterulekern-3p hrule width 2in kern 26p

Bencheacute sia scritto con comandi protetti di basso livello si capisce cheprima si arretra di 3 pt poi si inserisce un filetto lungo due pollici e spesso04 pt (questo egrave il valore di defualt) e infine si avanza di 26 pt si constatache minus3 pt + 04 pt + 26 pt = 0 pt Si puograve ridefinire questo comando conrenewcommand ma la definizione deve sempre corrispondere ad una seriedi oggetti la cui altezza complessiva sia nulla

marginparsep egrave la larghezza dello spazio che separa le note marginali dal testoa cui sono affiancate

marginparpush egrave la distanza minima fra due note marginali consecutive

marginparwidth egrave la giustezza con cui sono composte le note marginali va daseacute che il margine che le deve contenere deve essere sufficientemente largo edeve tenere conto anche di marginparsep e di un buono spazio verso iltaglio della pagina affincheacute dopo il taglio non si debba scoprire che ancheparte della nota egrave stata tagliata

reversemarginpar egrave una istruzione booleana che imposta lo scambio del mar-gine nel quale vengono composte le note marginali agisce solo quando sicompone ad una sola colonna percheacute a due colonne le note marginali dellacolonna di sinistra vengono composte comunque a sinistra e quelle relativealla colonna di destra a destra di questa

normalmarginpar ristabilisce la composizione delle note marginali nel margineesterno

G25 Accenti e simboli specialiPremesso che con lrsquouso del pacchetto inputenc e della tastiera nazionale lanecessitagrave di ricorrere ai comandi per gli accenti egrave fortemente diminuita tuttaviaegrave utile saper gestire anche i comandi piugrave insoliti al fine di comporre correttamenteanche parole in lingue straniere che fanno uso di segni che non compaiono sullatastiera nazionale

I comandi per gli accenti testuali sono raccolti nella tabella G1 mentre quelliper il contesto matematico sono raccolti nella tabella 97

504 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

lsquoa agrave rsquoa aacute =a ava a ^a acirc a auml~a atilde ua ă a aHa a too oo ct ţda a ba a

macrru ů

i ı j oe œOE Œ ae aelig AE AEligaa aring AA Aring o oslashO Oslash l ł L Łss szlig lsquo iquest lsquo iexcldag dagger ddag Dagger S sectP para copyright copy pounds pound

Tabella G1 I comandi per gli accenti testuali e i simboli speciali di molte linguestraniere

G3 Suddivisione del testo e indiciG31 Comandi di sezionamentoTutti i comandi di sezionamento propriamente detti e gli altri comandi similihanno una sintassi comune

comando[〈titolo breve〉]〈titolo lungo〉

Essi sonopart chapter section subsectionsubsubsection paragraph subparagraph caption

Il comando chapter non egrave definito per la classe article nessun comando disezionamento egrave definito per la classe letter Il livello di sezionamento part nonegrave obbligatorio tutti gli altri comandi devono essere contenuti sotto un comandodel livello precedente

Le parole che eventualmente vengono scritte nelle intestazioni coma lsquoPartrsquoo lsquoPartersquo lsquoChapterrsquo o lsquoChapicirctrersquo vengono impostate tramite lrsquoopportuna chia-mata al pacchetto babel con le opzioni per la lingua del documento In ognicaso esse sono contenute nei comandi partname chaptername figurenametablename per cui possono venire ridefinite a piacere

Ogni comando di sezionamento oltre a comporre lrsquointestazione della divisionespecifica mediante il 〈titolo lungo〉 scrive negli opportuni file accessori il 〈titolobreve〉 da inserire nei corrispondenti indici e con certe classi nelle testatine

Ogni divisione del documento puograve venire numerata e puograve comparire nellrsquoindicequesti due fatti sono controllati dai valori numerici contenuti nei due contatorisecnumdepth e tocdepth Le sezioni sono numerate se il loro livello egrave associatoad un numero minore o uguale a quello contenuto in secnumdepth i loro titolivanno a finire nellrsquoindice se il loro livello corrisponde ad un numero minore ouguale a quello contenuto in tocdepth si veda la tabella G2

Per produrre gli indici si usano i comandi

tableofcontents listoffigures listoftables

G3 SUDDIVISIONE DEL TESTO E INDICI 505

Sezionamento Livello Macro checontiene il nome

part minus1 partnamechapter 0 chapternamesection 1subsection 2subsubsection 3paragraph 4subparagraph 5

caption mdash figurenametablename

Tabella G2 Numeri associati al livello di sezionamento

Le informazioni per produrre questi indici sono contenute in tre file ausiliarile cui estensioni sono rispettivamente toc lof e lot

Le versioni asteriscate dei comandi di sezionamento producono solo lrsquointesta-zione non numerata e non producono niente nellrsquoindice Il comando captionnon possiede la variante asteriscata

Sebbene le versioni asteriscate non producano nessuna voce nei file indicetuttavia le si puograve far comparire se si procede a mano inserendo dopo i comandiespliciti asteriscati il comando addcontentsline con la seguente sintassi

addcontentsline〈estensione〉〈livello〉〈voce〉

dove 〈estensione〉 egrave lrsquoestensione del file ausiliario per lrsquoindice specifico 〈livello〉 egraveil nome (non il numero) del livello di sezionamento espresso dallo stesso nomedel comando senza perograve il backslash la 〈voce〉 egrave quanto viene scritto nel fileindice Generalmente quanto viene scritto nellrsquoindice egrave costituito dallrsquoespressione

protectnumberline〈numero〉〈titolo〉

dove 〈numero〉 egrave il numero della sezione per esempio 38 per lrsquoottavo paragrafodel capitolo tre va da seacute che una sezione non numerata ha questo campo vuotoIl 〈titolo〉 non egrave altro che il titolo (breve) della sezione

Per le sezioni non numerate lasciare vuoto il campo riservato al 〈numero〉implica che il 〈titolo〉 viene incolonnato con gli altri titoli delle sezioni numerateSe invece si omette tutta la parte protectnumberline〈numero〉 allora il〈titolo〉 viene allineato al margine sinistro Si veda per esempio nellrsquoindicegenerale di questo testo dalla voce lsquoBibliografiarsquo allrsquoultimo indice analitico

Per lrsquoindice analitico e il glossario i vari elementi vengono raccolti mediantei rispettivi comandi index e glossary ma il contenuto del loro argomentovaria molto a seconda di come si intende usare lrsquoinformazione raccolta In ognicaso nessuna informazione viene raccolta se nel preambolo mancano i comandimakeindex e rispettivamente makeglossary lrsquoindice analitico eo il glossarionon vengono composti se non si dagrave esplicitamente il comando di comporli disolito attraverso comandi messi a disposizione da pacchetti esterni Altrimentibisogna usare gli ambienti index e glossary specificando a mano il nome dei fileche contengono lrsquoindice o il glossario elaborati adeguatamente

506 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

G4 Classi pacchetti e stili delle pagineG41 Classe del documentoLa scelta della classe va eseguita con il comando

documentclass[〈opzioni〉]〈classe〉

Le classi standard sono book report article letter slides minimal proc ltxdoc queste sono affiancate dalle numerosissime altre classi nonstandard che popolano gli archivi internazionali

Le opzioni standard sono le seguenti

10pt definisce il corpo di default per il documento perograve puograve venire trasmessaanche ad altri pacchetti fra i quali type1ec il quale con questa opzionericava i disegni di tutti i caratteri dai font in corpo 10 pt ingrandendoli orimpicciolendoli a seconda delle richieste del compositore Questo modo diprocedere egrave accettabile solo quando si sta lavorando con font vettoriali Ilfile di uscita risulta meno ingombrante la qualitagrave peggiora un poco maquesta riduzione egrave visibile ad occhio nudo Tra lrsquoaltro si noti la differenzadi resa dei font ingranditi o rimpiccioliti qui si mostra lo stesso testoriportato al corpo 10 partendo da un font di corpo 5 e da un font dicorpo 17 partendo da un font di corpo 5 e partendo da un fontdi corpo 17 Lrsquoeffetto opposto si otterrebbe partendo da un font di corpo 10riducendolo al corpo 5 o ingrandendolo al corpo 17

11pt 12pt servono per scegliere il corpo da 11 pt o da 12 pt come corpo normale

letterpaper legalpaper executivepaper a4paper a5paper b5paper servonoper scegliere il supporto della carta secondo i formati specificati con le siglesuddette precisamente

letter 85 intimes 11 in A4 210 mmtimes 297 mmlegal 85 intimes 14 in A5 148 mmtimes 210 mmexecutive 725 intimes 105 in B5 176 mmtimes 250 mm

Siccome lrsquoopzione di default egrave letterpaper per scrivere in Europa egrave semprenecessario specificare un formato ISO quasi sempre a4paperLe dimensioni cosigrave specificate vengono passate anche al file pdf nel casoche si usi pdfLATEX in quanto quel formato ha bisogno di conoscere ledimensioni del supporto di uscita Il file dvi a stretto rigore non ne habisogno ma poi diventa necessario se questo tipo di file viene convertitonei file ps oppure pdf

landscape serve per scambiare fra di loro la larghezza e lrsquoaltezza del supporto

final draft servono per specificare se si sta componendo la versione finaleoppure una bozza quando si compone una bozza vengono evidenziatele righe fuori giustezza con un vistoso rettangolo nero e non vengonoimportate le figure ma al loro posto viene segnato solo un rettangolo dellegiuste proporzioni con il nome del file grafico scritto dentro

oneside twoside servono per specificare se si vuole comporre solo sul recto oanche sul verso della carta

G4 CLASSI PACCHETTI E STILI DELLE PAGINE 507

openright openany servono per specificare se i capitoli possono iniziare solosulle pagine di destra oppure su qualunque pagina

onecolumn twocolumn servono per specificare si si vuol comporre su unrsquounicacolonna o su due colonne

notitlepage titlepage servono per specificare se il titolo del documento va intesta alla prima pagina nella quale comincia subito anche il testo oppurese si deve riservare una pagina solo per il titolo

openbib serve per comporre la bibliografia (nelle classi che la riconoscono) conuno stile piugrave aperto generalmente le varie parti del riferimento bibliograficosono trattate come dei brevi capoversi senza rientro perograve le loro righe dopola prima risultano composte con un rientro rispetto al margine sinistrospecificato mediante il parametro bibindent

leqno serve per specificare che si desidera numerare le equazioni con il numerocollocato a filo del margine sinistro della gabbia del testo

fleqn serve per specificare che non si desiderano le equazioni centrate ma sidesidera che siano rientrate di una quantitagrave fissa dal margine sinistroquesta quantitagrave viene specificata mediante mathindent che di defaultvale 50 pt

G42 PacchettiLa scelta del pacchetto si esegue con il comando usepackage con la sintassi

usepackage[〈opzioni〉]〈pacchetto〉[〈data〉]

dove 〈data〉 egrave una data in forma ISO (aaaammgg) che rappresenta il limiteinferiore della data corrispondente alla versione che si vuole usare nei circa 15anni da quando esiste LATEX2ε i vari pacchetti sono stati aggiornati cosigrave cheversioni successive non solo hanno (presumibilmente) meno errori o lsquofeaturesrsquo deglistessi pacchetti nelle loro versioni precedenti ma anche funzionalitagrave maggioriEcco che specificando la data si puograve essere sicuri di usare una versione abbastanzarecente che presenta le funzionalitagrave desiderate I pacchetti standard sono

alltt serve per definire lrsquoambiente alltt dove quasi tutti i caratteri speciali perdonoil loro significato specifico e vengono usati come caratteri lsquonormalirsquo

amsmath costituisce la principale estensione per gli ambienti matematici

babel consente di comporre in diverse lingue attenzione babel sceglie le speci-fiche della lingua compresa la sillabazione ma non egrave babel che carica lasillabazione vedi lrsquoappendice C

color serve per gestire i colori dei font e degli sfondi

graphics serve per gestire le manipolazioni grafiche Bencheacute sia il pacchetto chesvolge il lavoro richiesto per lrsquoutente egrave piugrave comodo riferirsi al pacchettoseguente

508 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

graphicx gestisce le operazioni grafiche e gli effetti speciali con una interfac-cia utente piugrave efficace in realtagrave egrave graphicx che si preoccupa di caricaregraphics e di passargli i comandi tradotti nella sua sintassi specifica

ifthen permette di eseguire un fine controllo logico con una interfaccia utentepiugrave semplice di quella che offrono i comandi primitivi di TEX

latexsym consente di usare i simboli speciali di LATEX209 questo pacchettoegrave piugrave per compatibilitagrave con il passato che altro tutti quei simboli sonoaccessibili anche con il pacchetto amsfonts

makeidx serve per gestire comodamente la creazione dellrsquoindice analitico Si puograveusare in alternativa il pacchetto imakeidx che gestisce anche la produzionedi indici analitici multipli e consente di sfruttare la proprietagrave dei sistemimoderni di lanciare comandi di sistema cosiccheacute gli indici analitici possonoessere prodotti direttamente con una sola esecuzione di pdflatex

pict2e estende le capacitagrave grafiche dellrsquoambiente picture di LATEX Queste esten-sioni sono disponibili solo dal 2003 e il pacchetto ha raggiunto una situa-zione abbastanza stabile solo dal 2004 nel 2009 gli sono state ulteriormenteestese le funzionalitagrave si vede dunque come lrsquoopzione della 〈data〉 non siauna cosa tanto insolita da usare

showidx consente di scrivere le voci raccolte con index direttamente sullapagina dove sono state trovate durante la lavorazione di un documentoquesta opzione si rivela molto utile per selezionare e confrontare le varievoci sia per ridurre i duplicati sia per scegliere i riferimenti piugrave adatti

G43 Stili delle pagineOgni classe inizializza lo stile delle pagine normali secondo le prescrizionistilistiche generali della classe stessa Il comando per scegliere lo stile egrave

pagestyle〈stile〉

Il comando

thispagestyle〈stile〉

imposta lo stile della pagina solo per la pagina correnteGli stili predefiniti nelle classi standard sono i seguenti

plain contiene solo il piedino con il numero della pagina

empty sia il piedino sia la testatina sono vuoti

headings il piedino egrave vuoto ma la testatina egrave elaborata e automaticamentecontiene sul verso delle pagine scritte con lrsquoopzione twoside il titolo (breve)del capitolo e nella testatina del recto il titolo (breve) del paragrafo attivoallrsquoinizio della paginaQuesti titoli sono forniti dai comandi di sezionamento in modo automaticose si desiderano testatine specifiche che contengano elementi diversi o titoli-ni correnti diversi bisogna usare i comandi markright e markboth oppu-re bisogna servirsi di pacchetti di estensione come per esempio fancyhdrOppure bisogna servirsi di classi diverse da quelle standard

G4 CLASSI PACCHETTI E STILI DELLE PAGINE 509

myheadings in senso generale egrave simile allo stile headings salvo che le infor-mazioni da inserire nelle testatine debbono essere fornite esplicitamentemediante i comandi markright e markboth

La sintassi di questi comandi egrave la seguente

markright〈titolino di destra〉markboth〈titolino di sinistra〉〈titolino di destra〉

La numerazione delle pagine viene specificata con il comando

pagenumbering〈stile di numerazione〉

dove gli stili di numerazione disponibili sono i seguenti

arabic serve per la normale numerazione con cifre arabe

roman serve per la numerazione romana in lettere minuscole

Roman serve per la numerazione romana in lettere maiuscole

alph serve per la numerazione alfabetica in lettere minuscole

Alph serve per la numerazione alfabetica in lettere maiuscole

fnsymbol serve per rappresentare i numeri con la stessa sequenza di simboliusata per le note per esempio lrsquoasterisco la spada la doppia spada e viadi seguito I simboli in totale sono nove quindi non egrave possibile numerarepiugrave di 9 cose Generalmente questo tipo di numerazione non viene usatoper le pagine ma lo si usa abbastanza spesso per le note in particolareper quelle del frontespizio

Difficilmente si useranno numerazioni alfabetiche percheacute il numero totale dellepagine da numerare potrebbe superare 26 ma per le pagine le numerazioni arabee romane vengono usate spesso

Lo stile della pagina egrave vistosamente differente se si compone su una solacolonna o su due o piugrave colonne le classi standard consentono al massimo duecolonne ma mediante il pacchetto multicol non egrave difficile aumentare il numerodelle colonne

Quando perograve si usano le classi standard e si specifica di comporre ad unasola colonna egrave possibile comporre alcune pagine su due colonne consentendo dicomporre anche una intestazione ad una colonna Al contrario se si egrave specificatalrsquoopzione per comporre su due colonne allora egrave possibile comporre parte dellepagine su una sola colonna I comandi da usare sono

twocolumn[〈intestazione ad una colonna〉]onecolumn

Entrambi i comandi iniziano sempre una nuova pagina poi cominciano a comporrecome dice il loro nome

Ovviamente lo stile della pagina dipende anche dalla giustezza e dalla suarelazione con il formato della carta quindi dei margini Le giustezze orizzontali everticali sono specificate mediante le lunghezze textwidth e textheight e imargini sono specificati mediante le lunghezze oddsidemargin per le pagine di

510 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

destra evensidemargin per le pagine di sinistra topmargin per il marginesuperiore i margini laterali sono comunque i margini sinistri e le parole lsquooddrsquo elsquoevenrsquo (dispari o pari) si riferiscono alla posizione della pagina in relazione allasua numerazione sapendo che il verso di tutte le pagine egrave sempre pari e il rectosempre dispari Questi margini sono riferiti allo spigolo superiore sinistro delfoglio di carta e tutti sono lsquoun pollicersquo di meno di quello che ci si aspetterebbequesto dipende dal fatto che inizialmente era previsto che tutti i driver di uscitaavrebbero inserito di default un pollice di margine

Non egrave il caso di mettersi a giocare con questi margini se proprio si devemodificare lrsquoaspetto geometrico di una pagina egrave meglio usare una classe checonsenta di farlo oppure il pacchetto geometry

G44 Il frontespizioEgrave vero che se uno deve comporre un frontespizio in modo decoroso egrave opportunoche studi il layout e la scelta del corpo e dello stile dei font in modo professionaleTuttavia nei rapporti e negli articoli anche la modesta composizione di defaultoperata dalla classi standard di LATEX puograve essere accettabile

Bisogna ovviamente specificare lrsquoopzione titlepage ma bisogna anche specifi-care nel preambolo un certo numero di informazioni

title〈titolo〉 serve per specificare il titolo del documento se questo titolo egravesufficientemente lungo lo si puograve comporre su piugrave righe inserendo il comando Bisogna perograve ricordarsi di non andare a capo fra un articolo e il nomefra una preposizione e il suo complemento fra avverbi brevi come lsquononrsquoe quanto segue fa parte dellrsquoeleganza della composizione Riassumendonei titoli non si deve mai andare a capo dopo le congiunzioni gli articolile preposizioni e i brevi avverbi per evitarlo si deve usare il comando dilegatura costituito dalla tilde ~

author〈nomi〉 serve per specificare i nomi degli autori ma se gli autori sonopiugrave di uno bisogna separarli con and si puograve andare a capo usando Attenzione per ciascun autore sempre il o i nomi propri prima del o deicognomi

date〈testo〉 il testo di questo comando potrebbe essere una data comesuggerisce il nome del comando ma potrebbe anche essere il nome di unaconferenza un luogo qualunque informazione che permetta di identificareil documento oltre al suo titolo e ai suoi autori (i quali potrebbero averprodotto un articolo con lo stesso titolo ad un altro convegno )

thanks〈testo〉 questo comando puograve essere appeso sia ai nomi degli autori peresempio per specificarne lrsquoafferenza sia al titolo per esempio per associargliil nome dellrsquoente finanziatore delle ricerca sia al testo specificato con dateEsso funziona come il comando per inserire delle note a piegrave di pagina soloche il riferimento di queste note non egrave neacute un numero neacute una lettera ma ungenerico simbolo tratto da una lista che contiene lrsquoasterisco la spada laspada doppia eccetera

Il tutto viene eseguito dando il comando maketitle Alternativamente econ risultati esteticamente variabili a seconda del gusto del compositore si puogravecomporre il frontespizio aprendo lrsquoambiente titlepage e scrivendoci dentro quello

G5 TESTI IN DISPLAY 511

che si desidera dove lo si desidera con i font che si desiderano talvolta la cosaproduce buoni risultati talaltra egrave meglio affidarsi alla composizione di default

Nei rapporti e negli articoli spesso il frontespizio puograve contenere anche unbreve riassunto in LATEX questo viene composto mediante lrsquoambiente abstractIl riassunto puograve comparire come prima cosa dellrsquoarticolo e se questo egrave compostosu due colonne il sunto si trova nella prima colonna subito sotto il titolo e leinformazioni composte con maketitle

Ovviamente classi diverse da quelle standard possono mettere a disposizionedel compositore degli ambienti preconfezionati di titlepage che dispongono leinformazioni desiderate in modo diverso piugrave elegante includendo alche il retrodel frontespizio con le informazioni legali il copyright gli avvisi di copia riservatao proibite altre informazioni sulle persone che hanno collaborato a impaginareil testo a fare i disegni le fotografie e simili Alcune classi consentono anche diinserire nel retro del frontespizio anche il barcode classico a 10 cifre sia quellomoderno a 13 cifre Bisogna perograve documentarsi accuratamente in merito alleclassi alternative per scegliere quella che fa al caso proprio

G5 Testi in displayG51 Citazioni e poemiGli ambienti per i testi in display sono

beginquote 〈testo〉 endquotebeginquotation 〈testo〉 endquotationbeginverse 〈testo〉 endverse

G52 ListeGli ambienti predefiniti per le liste sono

beginitemizeitem[〈contrassegno〉] 〈testo〉 enditemize

beginenumerateitem[〈contrassegno〉] 〈testo〉 endenumerate

begindescriptionitem[〈voce da descrivere〉] 〈testo di descrizione〉 enddescription

Per i primi due ambienti il 〈contrassegno〉 egrave davvero facoltativo per lrsquoam-biente description bencheacute appaia come argomento facoltativo in realtagrave esso egraveobbligatorio percheacute non avrebbe senso dare una descrizione di nulla Tuttaviase non si specifica nulla nemmeno le parentesi quadre si comincia una nuova

512 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

descrizione senza etichetta che puograve essere vista come un nuovo capoverso Nonsembra una buona idea sfruttare cosigrave male le potenzialitagrave di LATEX

Lrsquoambiente principale con il quale sono costruite tutte le altre liste perograve egravelrsquoambiente list che egrave completamente configurabile in ogni dettaglio La sintassi egrave

beginlist〈contrassegno di default〉〈dichiarazioni〉item[〈contrassegno personalizzato〉] 〈testo〉 endlist

Il 〈contrassegno di default〉 egrave il modo di comporre il contrassegno che listproduce quando non viene esplicitato un 〈contrassegno personalizzato〉 con ilcomando item Le 〈dichiarazioni〉 invece sono una serie di istruzioni chespecificano il modo di comporre eseguito da list Ci sono numerose possibilitagraveche egrave meglio descrivere una alla volta

topsep egrave la distanza che separa il testo precedente alla lista dalla prima vocedella lista La stessa distanza viene posta dopo la chiusura della lista

partopsep egrave lo spazio aggiuntivo aggiunto prima e dopo la lista se questa co-mincia un nuovo capoverso cioegrave se nel file sorgente una riga completamentebianca precede il comando di apertura dellrsquoambiente

itemsep egrave lo spazio aggiuntivo che viene messo prima di una voce della listase questa egrave preceduta da una riga bianca

parsep Siccome dentro le liste i capoversi solitamente non vengono rientratiallora si puograve usare un piccolo spazio aggiuntivo fra due capoversi appar-tenenti alla stessa voce questo spazio di separazione fra i paragraphs sichiama appunto parsep

leftmargin egrave la rientranza di ogni voce della lista rispetto al testo circo-stante liste annidate hanno rientranze sempre maggiori il file di classespecifica le varie successive rientranze mediante i comandi leftmarginileftmarginii leftmarginiii e leftmarginiv

rightmargin egrave la distanza orizzontale fra il margine destro della lista correntee il margine destro del testo che contiene la lista

listparindent egrave il rientro extra aggiunto (o anche tolto se ha un valorenegativo) alla rientranza di ogni linea di ciascuna voce tranne la primariga tutte le classi standard hanno questo parametro impostato a zero manon egrave impossibile che in altre classi o in liste personalizzate non si possausare questo parametro

itemindent egrave la rientranza della prima riga di ogni voce della lista Puograve ancheavere un valore negativo

labelsep egrave la distanza minima che separa il 〈contrassegno〉 dal resto del testonella prima riga di ogni voce

labelwidth egrave la larghezza prevista per il 〈contrassegno〉 a seconda della perso-nalizzazione se questo contrassegno fosse piugrave largo o piugrave stretto di questalarghezza il contrassegno viene fatto sporgere a sinistra oppure viene fatto

G5 TESTI IN DISPLAY 513

sporgere a destra ma cominciando il testo della voce piugrave a destra in mododa mantenere costante lo spazio fra la fine del 〈contrassegno〉 e lrsquoinzio dellavoce

makelabel〈contrassegno〉 egrave la macro che effettivamente compone il contras-segno

usecounter〈contatore〉 specifica che il 〈contatore〉 egrave quello usato per nume-rare gli elementi della lista e lo rende usabile con i comandi label eref

Vale la pena di provare a leggere la definizione dellrsquoambiente enumerate percapire meglio come si usi lrsquoambiente list Lrsquoesempio che si porta egrave ripreso dalledefinizioni sparse in diversi file per lrsquoambiente enumerate della classe bookquando si compone con il corpo di default di 10 pt Le definizioni vere e propriedellrsquoambiente sono eseguite con comandi di basso livello eo con comandi diservizio di LATEX ma si ritiene che siano abbastanza chiare da non richiedereuna spiegazione mentre se ne daranno per altri aspetti delle definizioni

Definizioni in latexltxnewcountenumdepth enumdepth = 0definecounterenumidefinecounterenumiidefinecounterenumiiidefinecounterenumiv Definizioni in bookclsrenewcommandtheenumiarabiccenumirenewcommandtheenumiialphcenumiirenewcommandtheenumiiiromancenumiiirenewcommandtheenumivAlphcenumivnewcommandlabelenumitheenuminewcommandlabelenumii(theenumii)newcommandlabelenumiiitheenumiiinewcommandlabelenumivtheenumivrenewcommandpenumiitheenumirenewcommandpenumiiitheenumi(theenumii)renewcommandpenumivpenumiiitheenumiii Definizioni in bk10clodeflistileftmarginleftmargini

parsep 4p plus2p minusptopsep 8p plus2p minus4pitemsep4p plus2p minusp

letlistIlistilistideflistii leftmarginleftmarginii

labelwidthleftmarginiiadvancelabelwidth-labelseptopsep 4p plus2p minuspparsep 2p plusp minuspitemsep parsep

deflistiiileftmarginleftmarginiii

514 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

labelwidthleftmarginiiiadvancelabelwidth-labelseptopsep 2p pluspminuspparsep zpartopsep p plusz minuspitemsep topsep

deflistiv leftmarginleftmarginivlabelwidthleftmarginivadvancelabelwidth-labelsep

deflistv leftmarginleftmarginvlabelwidthleftmarginvadvancelabelwidth-labelsep

deflistvi leftmarginleftmarginvilabelwidthleftmarginviadvancelabelwidth-labelsep

Definizioni in latexltxdefenumerate

ifnum enumdepth gtthrtoodeepelseadvanceenumdepthneedefenumctrenumromannumeraltheenumdepthexpandafterlistcsname labelenumctrendcsnameusecounterenumctrdefmakelabel1hssllap1

filetendenumerate =endlist

Inizialmente si definiscono il contatore di livello e i quattro contatori perciascuno dei quattro livelli si ricorderagrave infatti che le liste anche le enumerazionipossono essere annidate lrsquouna nellrsquoaltra ma solo fino al quarto livello

Successivamente nella classe book si definiscono i modi di rappresentare ivari contatori di enumerazione il primo contatore viene stampato mediantearabiccenumi cioegrave in cifre arabe nella lista perograve esso viene marcato comeil numero seguito da un punto theenumi Per il primo livello basta cosigrave maper i livelli successivi ci vuole un prefisso quando si cita il terzo elemento dellaseconda lista annidata per esempio non basta la scrittura del valore del secondocontatore che viene stampato con una lettera mediante alphcenumii manella lista questa lettera egrave racchiusa fra parentesi tonde (theenumii) Nellacitazione del terzo elemento non basta che appaia lsquocrsquo oppure lsquo(c)rsquo ma ci vuoleanche un prefisso che faccia riferimento alla prima lista ecco quindi il prefissotheenumi che fa si che quellrsquoelemento sia citato come lsquo2(c)rsquo Lo stesso avvieneper gli elementi delle liste interne

Nel file bk10clo che contiene le dimensioni e i corpi specificati per quando sicompone con lrsquoopzione di default 10pt sono definiti alcuni dei parametri descrittiper lrsquoambiente list Per lrsquoenumerazione di primo livello il tutto egrave contenuto nelladefinizione del comando listi questi spazi si riferiscono a tutte le liste diprimo livello non solo alle enumerazioni precisamente sono definiti parseptopsep e itemsep sono tutte lunghezze elastiche percheacute contengono la compo-nente di allungamento introdotta da plus e la componente di accorciamentointrodotta da minus il comando p indica una lunghezza predefinita del

G5 TESTI IN DISPLAY 515

valore di un punto tipografico Fra le definizioni contenute in listi compareanche leftmargin a cui viene assegnato il valore di leftmargini questo asua volta egrave definito nella classe book come una quantitagrave espressa in unitagrave dimisura em legate cioegrave al corpo del font in uso in quel contesto (potrebbe ancheessere una nota o una citazione scritta in corpo minore) Definizioni analogheappaiono anche per i livelli interni di annidamento

Infine viene la definizione vera e propria che ricorre allrsquoambiente list cosigrave comeegrave contenuta in latexltx In questa definizione per prima cosa si verifica che illivello di annidamento giagrave raggiunto non sia superiore a tre se cosigrave fosse si emetteun messaggio di errore mediante il comando toodeep altrimenti si incrementail contatore del livello di annidamento e si procede alle varie definizioni si notiche per fare riferimento ai parametri corrispondenti al livello di annidamentocorrente si fa riferimento al suo nome ottenuto agglutinando il prefisso enumcon il valore del contatore di annidamento espresso in numeri romani minuscoliquesto risultato si ottiene con i comandi primitivi csname e endcsname ingenerale lrsquoutente che deve usare lrsquoambiente list per confezionare una lista specialenon ha bisogno di ricorrere a questi comandi primitivi ma a loro modo moltoavanzati allrsquooccorrenza puograve tuttavia consultare il TEXbook

Il primo argomento dellrsquoambiente list (attivato senza ricorrere a begin madando direttamente il comando lsquointernorsquo list non egrave racchiuso fra parentesigraffe ma egrave il frutto di expandafter e nuovamente di csname e endcsname cheassieme agglutinano il prefisso label con il valore del contatore di annidamentoespresso in numeri romani minuscoli

Il secondo argomento dice di usare il contatore enumctr e dice di comporrelrsquoetichetta di ogni voce mediante un numero composto in bandiera giustificata adestra autorizzando anche di fuoriuscire dal margine di sinistra mediante lrsquoaccor-gimento di far precedere il comando llap (left overlap sovrapponi a sinistra)con un blocco di gomma elastica di lunghezza naturale nulla e allungamento eaccorciamento infiniti hss

Il comando di chiusura dellrsquoambiente enumerate egrave reso equivalente attraversolet al comando di chiusura della generica lista endlist

Lrsquoesempio appena fatto forse egrave complicato ma in realtagrave delucida tante coseche non sono state descritte nei dettagli negli appositi capitoli e mostra anchealcune tecniche di programmazione a livello di comandi primitivi di TEX

Un esempio piugrave semplice Si vuole comporre una ambiente simile a descriptionche abbia la possibilitagrave di definire il margine sinistro sulla base della lunghezzadi una parola potrebbe essere utile per un glossario per esempio Vogliamoanche che ogni chiave che introduce ogni voce sia scritta in carattere lineare manon sia nero Vediamo prima come egrave definito lrsquoambiente description

newenvironmentdescriptionlistlabelwidthz itemindent-leftmargin

letmakelabeldescriptionlabelendlist

newcommanddescriptionlabel[1]hspacelabelsepnormalfontbfseries 1

Dobbiamo quindi definire comandi simili per esempio lrsquoambiente descrizione cheaccetti un argomento sul quale prendere le misure del margine sinistro e la suaetichetta etichettadescrizione Ecco come fare

516 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

newenvironmentdescrizione[1]listsettowidthlabelwidthnormalfontsffamily1

letmakelabeletichettadescrizioneendlist

newcommandetichettadescrizione[1]hspacelabelsepnormalfonntsffamily 1

Come si vede il compito era inizialmente piugrave facile e la soluzione egrave decisamentepiugrave semplice

G53 Testo composto verbatimSi possono usare due comandi e due ambienti per comporre del testo in modoverbatim questo modo di comporre egrave quello che serve quando bisogna esporreper esempio dei brani scritti in un linguaggio di programmazione nel quale sifa uso dei caratteri speciali di TEX (ovviamente con altri significati) I comandisono

verbsimbolo〈testo da riprodurre〉simbolooppureverbsimbolo〈testo da riprodurre〉simbolo

Il simbolo egrave un solo carattere e funziona da delimitatore del 〈testo da riprodur-re〉 la versione senza asterisco riproduce gli spazi come spazi la versione conlrsquoasterisco riproduce gli spazi con il segno speciale Il 〈testo da riprodurre〉 devecomparire in una sola riga nel file sorgente

Gli ambienti sono invece

beginverbatim〈testo da riprodurre verbatim〉endverbatimbeginverbatim〈testo da riprodurre verbatim〉endverbatim

Il 〈testo da riprodurre verbatim〉 si puograve svolgere su diverse righe anzi di so-lito egrave composto di diverse righe Lrsquounica riga che non si puograve riprodurre egraveendverbatim con o senza asterisco Lrsquoambiente asteriscato come il comandoasteriscato riproduce lo spazio in modo visibile con il carattere

Il comando verb egrave fragilissimo e non puograve apparire come argomento di nessunaltro comando (nemmeno nella versione asteriscata)

Il pacchetto standard alltt definisce un ambiente alltt da usare come lrsquoam-biente verbatim dove tutti i caratteri sono diventati caratteri lsquonormalirsquo salvo e

G6 Formule matematicheG61 FormuleLa matematica in linea puograve essere delimitata dai seguenti delimitatori

$ 〈formula in linea〉 $( 〈formula in linea〉 )beginmath 〈formula in linea〉 endmath

G6 FORMULE MATEMATICHE 517

Si consiglia di non usare il primo metodo anche se egrave piugrave comodo da scriverepercheacute si perde la diagnostica di LATEX nel caso che ci si dimentichi di uno deidue delimitatori Lrsquoambiente math come si puograve ben capire non viene usatomolto spesso I delimitatori ( e ) sono i migliori ma sono fragili Invece idelimitatori $ $ sono robusti

Il comando

ensuremath〈formula〉

permette di comporre una 〈formula〉 in linea garantendo che essa venga compostacorrettamente anche se il comando viene emesso in modo testuale Egrave comodoper definire macro che debbono potersi usare sia nel modo testo sia nel modomatematico

Usando il pacchetto babel egrave disponibile il comando

textormath〈per il modo testo〉〈per il modo matematico〉

che produce un effetto analogo a quello di ensuremath con una notevoledifferenza usato per definire un comando da usare sia in modo testo sia in modomatematico puograve eseguire composizioni diverse nellrsquouno o nellrsquoaltro modo senzache il compositore debba preoccuparsi di verificare il modo di composizioneensuremath invece compone il suo argomento sempre in modo matematicoallrsquooccorrenza entrando ed uscendo da questo modo al fine di lasciare TEX nellostesso stato nel quale si trovava prima dellrsquoesecuzione del comando

Per la matematica in display si hanno gli ambienti

[ 〈formula in display〉 ]begindisplaymath 〈formula in display〉 enddisplaymathbeginequation 〈formula in display〉 endequation

I primi due ambienti non assegnano un numero alla 〈formula in display〉 mentreil terzo ambiente assegna un numero a detta formula Lrsquoambiente displaymathviene usato raramente visto che quello definito con [ ] egrave molto piugrave comododa usare Lrsquoambiente equation non ha sostituti

LATEX offrirebbe anche gli ambienti eqnarray e eqnarray ma per i motivi giagraveesposti nel capitolo 10 egrave preferibile non servirsene al contrario per comporreformule e sistemi di formule in display egrave molto meglio servirsi del pacchettoamsmath

Dentro agli ambienti equation e eqnarray (allrsquointerno di ciascuna riga) egravepossibile inserire il comando label cosigrave da definire una etichetta mnemonicaper richiamare il numero della formula con ref eo con pageref Dentroeqnarray si puograve usare nonumber per evitare che LATEX assegni un numero aduna espressione che non si vuole numerare Questo ambiente consentirebbe anchedi spezzare una singola lunga espressione matematica su piugrave righe ricorrendoanche al comando suddetto e a lefteqn ma per questo scopo egrave meglio servirsidegli opportuni ambienti predisposti apposta dal pacchetto amsmath

Le espressioni in display usano un certo numero di parametri per comporresecondo diversi stili

jot serve per aggiungere altro spazio fra una equazione e lrsquoaltra in un sistemadi equazioni

518 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

mathindent serve per fissare la rientranza sinistra delle equazioni quandoqueste sono composte allineate a sinistra se si usa lrsquoopzione fleqn per laclasse del documento

abovedisplayskip serve per definire il contrografismo che precede una equa-zione in display viene usato un contrografismo piugrave piccolo quando la rigaprima del display egrave molto corta e lrsquoespressione matematica potrebbe darelrsquoimpressione ottica di essere preceduta da uno spazio troppo grande

abovedisplayshortskip egrave appunto questo contrografismo superiore piugrave pic-colo

belowdisplayskip egrave il contrografismo da inserire dopo una formula per di-stanziarla dal testo seguente

belowdisplayshortskip serve per inserire un contrografismo piugrave piccolo selrsquoespressione matematica egrave seguita da una riga di testo molto cortaVa da seacute che i shortskip non vengono usati quando si compone conlrsquoopzione fleqn percheacute le espressioni sono tutte allineate a sinistra a menodel loro rientro non molto importante (una cinquantina di punti circa15mm)

Per comporre le espressioni matematiche si usano spesso piccoli comandi opiccole strutture di cui egrave facile dimenticarsi

Esponenti gli esponenti si inseriscono mediante il comando ^

^〈esponente〉

Con lrsquoopzione italian di babel egrave disponibile il comando ap〈apice〉 perinserire un apice in tondo quando si egrave in modo matematico un apice conil font corrente quando si egrave in modo testo Il nucleo di LATEX per il modotesto prevede anche il comando textsuperscript valido sempre anchesenza lrsquouso di babel

Apici Lrsquoapice prime o il doppio apice primeprime si inseriscono con uno o due apostrofi che inmodo matematico vengono composti come apici

Pedici e deponenti I pedici vengono inseriti con il comando _

_〈pedice〉

Con lrsquoopzione italian di babel egrave possibile usare il comando ped〈pedice〉per inserire un pedice in tondo in modo matematico e per inserire undeponente con il font corrente in modo testo

Frazioni Le frazioni vengono composte con il comando

frac〈numeratore〉〈denominatore〉

G6 FORMULE MATEMATICHE 519

Bisogna ricordare che questo comando compone le frazioni in display comeci si aspetterebbe ma le compone in modo testo sia nelle espressionimatematiche in linea sia nelle sottoespressioni come per esempio un altronumeratore o denominatore in questi casi egrave preferibile servirsi delle frazionia barra obliqua piuttosto che di quelle a barra orizzontale

Radici Le radici quadrate o con altro 〈indice〉 si compongono con

sqrt[〈indice〉]〈radicando〉

Se lrsquo〈indice〉 vale 2 non lo si indica

Ellissi Le parti omesse (ellissi) vengono sostituite con i soliti tre puntini inmatematica ce ne hanno di diversi tipi dots ( ) si puograve usare sia in modomatematico sia in modo testo e produce i soliti puntini a livello della lineadi base in modo testo o a livello della linea di base o dellrsquoasse matematicoin modo matematico a seconda del contesto cioegrave se egrave preceduto o seguitoda segni di interpunzione appoggiati alla linea di base oppure di operatoribinari centrati sullrsquoasse matematico ldots produce lo stesso effetto dicollocare i tre puntini sulla linea di base ma egrave da usare in modo matematicocdots (middot middot middot ) produce i tre puntini allineati con il segno minus cioegrave sullrsquoassematematico della formula vdots (

) produce tre puntini verticali cheservono per sostituire in verticale gli elementi omessi da colonne di matriciinfine ddots ( ) produce tre puntini in diagonale utili per riempire unaparte omessa dal cuore di una matriceSe si usa dots in modo testo i tre puntini sono sempre sulla linea dibase ma se si usa il pacchetto amsmath questo comando egrave ridefinito inmodo che in modo matematico esso si comporti in modo intelligente valea dire esso colloca i puntini sulla linea di base se almeno da un lato egravecontornato da un segno di interpunzione mentre esso produce i puntinisullrsquoasse matematico della formula se egrave contornato da almeno un operatorebinario Si confrontino i seguenti due casi composti entrambi con dots

i = 1 2 3 n i = 1 + 2 + 3 + middot middot middot+ n

G62 Simboli accenti delimitatori e grandi operatoriTutti i simboli di qualunque genere usabili in matematica sono raccolti nelletabelle 92ndash98 nelle tabelle 101ndash102 invece sono raccolti gli ulteriori simbolidisponibili con il pacchetto amsmath

G63 Impilare gli oggetti matematiciUna (breve) espressione puograve venire sopralineata con

overline〈espressione〉

Analogamente si puograve sottolineare una espressione con

underline〈espressione〉

520 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

Anche gli accenti matematici possono venire impilati ma si tratta semplice-mente di racchiudere fra le graffe che delimitano lrsquoargomento del primo accentouna espressione giagrave accentata

Invece stackrel permette di costruire degli operatori di relazione impilandouno sopra lrsquoaltro due segni distinti scelti fra i vari simboli disponibili

stackrel〈elemento superiore〉〈elemento inferiore〉

G64 Spaziatura matematicaNon si puograve raccomandare mai abbastanza lrsquoopportunitagrave di non spaziare leespressioni matematiche I comandi di spaziatura hanno senso se e solo se laspaziatura di default non egrave adeguata ai simboli che compaiono uno accantoallrsquoaltro in una espressione matematica Se quindi si inseriragrave una qualchespaziatura lo si faragrave solo dopo aver corretto le bozze controllando accuratamenteche questa spaziatura sia praticamente impercettibile

spazio sottile spazio medio spazio sottile negativo spazio grande

Il comando puograve essere usato anche in modo testo Naturalmente si potrebberoanche usare quad e qquad oltre ai comandi di spaziatura del modo testoTuttavia merita di segnalare i comandi primitivi mskip e mkern che accettanocome argomenti (non racchiusi fra nessun tipo di parentesi) degli spazi espressimediante le unitagrave di misura chiamate mu valide solo in matematica 18muequivalgono a 1 em ma in matematica lrsquounitagrave lsquoemrsquo cambia grandezza a secondadel font in uso in particolare per il corpo principale della formula per gli apicied i pedici di primo ordine e per gli apici ed i pedici di secondo ordine

G65 Font matematiciPer avere una intera formula composta con caratteri medi o con caratteri neribisogna specificarlo prima di entrare in modo matematico

boldmath〈ambiente matematico〉unboldmath

Altrimenti i vari simboli letterali eo gli operatori possono essere resi con fontdiversi se si usano i comandi seguenti

mathrm tondo mathsf senza graziemathit corsivo mathtt spaziatura fissamathbf nero mathcal CALLIGRAFICO

Si noti che il corsivo matematico il corsivo testuale usato in matematicamediante il comando mathit e il corsivo per il testo sono font con proprietagravecompletamente diverse per esempio il primo non contiene legature per cuila parola affine verrebbe composta affine Piugrave dettagliatamente gli esempiseguenti mostrano il diverso comportamento dei tre corsivi

G7 DEFINIZIONI NUMERI E PROGRAMMAZIONE 521

textitaffine affine affine affine affine affine( mathitaffine affine affine ) affine affineaffine( affine affine affine ) affine affineaffine

Si noti che i comandi testuali come textit possono essere usati anche inmatematica producendo semplice testo mentre i comandi che scelgono i font inmatematica lo fanno solo per le lettere e gli altri segni equivalenti alle lettereIl corsivo matematico trae i suoi segni da una polizza diversa da quella sia deltesto corsivo sia del testo corsivo matematico Si noti ancora che lo spazio dopola virgola quando si scrive usando il comando mathit appare esplicitamentepercheacute nel contesto di questo libro si egrave usata la lsquovirgola intelligentersquo vale adire si egrave usato il significato speciale di carattere attivo che la virgola assume inmatematica al fine di inserire uno spazio se seguita da uno spazio ma di noninserire nulla se egrave seguita da un altro segno si nota infatti che la virgola sia nellaseconda sia nella terza riga egrave seguita da uno spazio sottile (matematico) mentrenella prima riga essa egrave seguita da un normale spazio interparola

G66 Stili di composizioneI quattro stili di composizione della matematica sono

displaystyletextstylescriptstylescriptscriptstyle

Lo stile textstyle differisce dal displaystyle nel senso che egrave piugrave raccolto inverticale gli apici e i pedici sono piugrave vicini allrsquoasse matematico i limiti superiorie inferiori sono composti accanto allrsquooperatore come se fossero apici o pedicile frazioni sono composte in scriptstyle per mantenere limitato lrsquoingombroverticale in modo che non sia necessario spaziare le righe del testo Egrave per questoche bisogna stare attenti specialmente con le frazioni a non renderle troppopiccole piuttosto che una frazione troppo piccola egrave preferibile una barra obliquasenza rimpicciolire numeratori e denominatori nemmeno quando sono puramentenumerici come in 23 questa pratica egrave lsquodeprecatarsquo dalla norma UNI 2950

G7 Definizioni numeri e programmazioneG71 Comandi di definizioneNuove macro possono essere definite ridefinite o rese disponibili se non lo sonogiagrave mediante i comandi

newcommand〈comando〉[〈numero argomenti〉][〈default〉]〈definizione〉renewcommand〈comando〉[〈numero argomenti〉][〈default〉]〈definizione〉providecommand〈comando〉[〈numero argomenti〉][〈default〉]〈definizione〉

Sono tutti comandi fragili ma del resto non sembra opportuno usarli negliargomenti di altri comandi Sono giagrave stati descritti in dettaglio nel capitolo 17Tutti dispongono della versione asteriscata la differenza sembra minima ma egraveimportante per evitare perdite di tempo quando si commettono errori nellrsquouso

522 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

dei comandi definiti mediante queste istruzioni In termini di gergo TEX icomandi senza asterisco sono long mentre quelli con asterisco non lo sono Unlsquolong commandrsquo che accetta uno o piugrave argomenti egrave in grado di elaborare ancheargomenti composti di piugrave capoversi per esempio parbox egrave un lsquolong commandrsquoI comandi che non hanno questo attributo non consentono che i loro argomenticontengano una linea bianca eo un comando esplicito di fine capoverso par sequesto succedesse essi arresterebbero subito la compilazione con un messaggio dierrore Questo fatto succede abbastanza frequentemente quando ci si dimenticala parentesi graffa di chiusura di un argomento Ma con i comandi lsquocortirsquo lrsquoerroreviene trovato subito con la normale diagnostica di LATEX mentre con i comandilunghi lrsquoerrore potrebbe venire segnalato o alla fine del file oppure percheacute lamemoria di TEX egrave satura

G72 Comandi per la definizione di ambientiGli ambienti sono definiti o ridefiniti mediante i comandinewenvironment〈nome〉[〈numero argomenti〉][〈default〉]

〈comandi di apertura〉〈comandi di chiusura〉renewenvironment〈nome〉[〈numero argomenti〉][〈default〉]

〈comandi di apertura〉〈comandi di chiusura〉

Si veda il capitolo 17 per maggiori dettagli ed esempi

G73 TeoremiLATEX mette a disposizione dei comandi per definire degli pseudo ambienti al finedi comporre gli enunciati di teoremi o enunciati simili Il comando newtheoremconsente due forme di definizionenewtheorem〈nome〉〈titolino〉[〈contatore dominante〉]newtheorem〈nome〉[〈numerato come〉]〈titolino〉

dove〈nome〉 rappresenta il nome dello pseudoambiente potragrave essere per esempio

teorema lemma definizione eccetera Per cui se 〈nome〉 si riferisce a unteorema il suo enunciato verragrave racchiuso allrsquointerno di beginteorema〈enunciato〉 endteorema

〈titolino〉 la parola che identifica lrsquoenunciato potragrave essere Teorema LemmaDefinizione eccetera Non si confonda il nome dellrsquoambiente con il titolinodellrsquoenunciato

〈contatore dominante〉 egrave il contatore del capitolo se si vuole che la numerazionedel nuovo enunciato sia iniziata da 1 ad ogni nuovo capitolo saragrave il contatoredei paragrafi se si desidera che la numerazione ricominci da 1 ad ogninuovo paragrafo eccetera

〈numerato come〉 egrave invece il nome dello pseudo ambiente del quale si vuole con-dividere la numerazione Questo deve essere giagrave stato definito Si potrebbeper esempio numerare con una sola sequenza numerica sia i teoremi siai lemmi sia i corollari mentre probabilmente si preferirebbe numerareseparatamente le definizioni le congetture eccetera

G8 NUMERI LUNGHEZZE E SPAZI 523

Se non si specificano i contatori facoltativi questi comandi definiscono un nuovocontatore con lo stesso nome dello pseudo ambiente che puograve venire stampatousando il comando thenome Nella stessa maniera i comandi label e refusano il nuovo nome del contatore per rendere accessibile ai riferimenti incrociatianche questi enunciati Se invece si specifica il contatore 〈numerato come〉 nonviene introdotto nessun nuovo contatore ma si usa quello giagrave esistente Infine sesi specifica il nome del 〈contatore dominante〉 il comando thenome produrragravein stampa il numero del contatore relativo allo pseudo ambiente precedutodal numero stampato del 〈contatore dominante〉 se per esempio il 〈contatoredominante〉 fosse il paragrafo allora il tredicesimo enunciato del quarto paragrafodel decimo capitolo verragrave stampato nella forma 10413

G8 Numeri lunghezze e spaziIl sistema TEX per comporre svolge una quantitagrave di calcoli sia usando numeriveri e propri sia usando lunghezze e spazi

TEX fa calcoli solo con numeri interi gli unici numeri non interi che essogestisce sono i fattori moltiplicativi delle lunghezze o degli spazi Qui di seguitovedremo come esistano registri per conservare i numeri come agire sui numeri esui loro registri chiamati contatori

TEX usa le lunghezze e dispone di registri per la conservazione di informazionimetriche questi registri non hanno nomi particolari come i contatori per i numerima possono essere chiamati per nome come lo si puograve fare per i contatori

Gli spazi sono speciali lunghezze e i loro registri sono anchrsquoessi un porsquo specialiessi sono chiamati anche ldquolunghezze elasticherdquo percheacute hanno la proprietagrave dipotersi allungare o accorciare rispetto alla loro lunghezza naturale essi sonoformati dalla collezione di tre lunghezze la prima rappresenta la lunghezzanaturale la seconda lrsquoammontare assoluto di cui essa puograve allungarsi e la terzalrsquoammontare assoluto con cui puograve restringersi

Per operare con i numeri e le lunghezze rigide o elastiche TEX dispone di uncerto numero di comandi primitivi Lrsquoestensione etex incorporata nelle versionipiugrave recenti di pdftex consentono di eseguire certe operazioni in modo molto piugravecomodo Altrimenti non disponendo di una versione recente di pdftex bisognaricorrere al pacchetto calc alla cui documentazione si rimanda il lettore

G81 NumeriA parte il modo di scrivere i numeri giagrave visto nella pagina 509 LATEX consentedi fare semplici conti con numeri interi eo con le misure delle lunghezze

newcounter con la sintassi

newcounter〈nome〉[〈contatore dominante〉]

permette di definire un nuovo contatore per numeri interi chiamato 〈nome〉asservito e quindi azzerato quando il 〈contatore dominante〉 viene incre-mentato Il 〈nome〉 e il 〈contatore dominante〉 hanno lo stesso significatodescritto per i teoremi

setcounter con la sintassi

524 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

setcounter〈nome〉〈valore〉

inserisce la quantitagrave numerica 〈valore〉 nel contatore che ha quel 〈nome〉

addtocounter con la sintassi

addtocounter〈nome〉〈valore〉

aggiunge il 〈valore〉 specificato al contenuto del contatore 〈nome〉 Il〈valore〉 puograve anche essere negativo quindi di fatto LATEX esegue unasomma algebrica

value con la sintassi

value〈nome〉

recupera il contenuto del contatore 〈nome〉 per passarlo ad altri comandi oper rendere stampabile il numero contenuto dentro a quel contatore

stepcounter con la sintassi

stepcounter〈nome〉

incrementa il contatore 〈nome〉 di una unitagrave

refstepcounter con la sintassi

refstepcounter〈nome〉

oltre ad incrementare il contatore di una unitagrave lo rende accessibile alcomando label cosigrave che si possa fare riferimento ai valori del contatoremediante le chiavi usate da label e ref

Quando si definisce un nuovo contatore 〈nome〉 LATEX definisce anche il modo distamparlo attraverso il comando the〈nome〉 In altre parole se si definisce ilnuovo contatore pippo mediante il comando

newcounterpippo

viene contemporaneamente definito il comando thepippo in generale in modomolto semplice1

newcommandthepippoarabicpippo

Il compositore egrave libero di ridefinire il modo di scrivere il contatore specialmentese egrave asservito ad un altro contatore a titolo di esempio scriveragrave

newcounterpippo[pluto]renewcommandthepippoarabicplutoarabicpippo

1In realtagrave la definizione normalmente viene eseguita ricorrendo ai comandi primitivi chesono piugrave veloci da eseguire in quanto non hanno bisogno di essere interpretati

G8 NUMERI LUNGHEZZE E SPAZI 525

se vuole che il contatore pippo supponendo che valga 3 quando il contatorepluto vale 5 venga stampato nella forma 53

Vale la pena di segnalare che il comando primitivo the puograve precedere ilnome di qualunque registro interno dellrsquointerprete per trasformarne il contenutoin una stringa di caratteri che ne indica il contenuto Questo comando primitivonon egrave applicabile ai nomi dei contatori LATEX percheacute i loro nomi non individuanodirettamente il registro come invece succede con le lunghezze Quando si definisceun contatore LATEX viene associato un particolare registro numerico il primodisponibile ad una sequenza formata con il 〈nome〉 preceduto alla stringac Quindi il nome del contatore LATEX pippo serve per definire la sequenzacpippo che viene associata allrsquoindirizzo numerico del registro interno (di cui ilcompositore non deve preoccuparsi) Il comando the dovrebbe quindi precederela sequenza cpippo cosigrave

thecpippo

per produrne la stringa di cifre che ne indica il contenuto Data la presenza delsegno che normalmente non egrave una lettera anche se puograve essere usato comelettera allrsquointerno dei file di classe o di quelli delle estensioni questo modo diprocedere egrave fortemente sconsigliato tra lrsquoaltro egrave molto piugrave comodo e menoincline agli errori ricorrere ai comandi specifici come per esempio arabic perscrivere il contenuto dei contatori LATEX

G82 LunghezzeLe lunghezze esplicite quelle cioegrave che si esprimono con una misura e una unitagrave dimisura sono costituite da una sequenza di cifre decimali separate dal separatoredecimale che in teoria potrebbe anche essere la virgola siccome nella sintassiLATEX la virgola svolge anche altri ruoli egrave preferibile usare sempre e soltantoil punto decimale quando si esprimono le misure delle lunghezze Un numeroche contenga una parte intera nulla potrebbe cominciare con il punto decimaleomettendo lo zero che dovrebbe precederlo si sconsiglia questa abbreviazionedel tutto irrilevante ma che facilita gli errori Il numero puograve essere precedutodal segno positivo o negativo quello positivo egrave evidentemente facoltativo quellonegativo invece non lo egrave Se in seguito alla sostituzione di espressioni ed argomentinelle macro la misura risultasse preceduta da diversi segni il numero di segninegativi si comporta come ci si aspetterebbe nel senso che ognuno cambia segnoa quanto segue quindi un numero dispari di segni negativi porta ad un risultatocomplessivamente negativo mentre un numero pari porta ad un risultato positivo

Le lunghezze definite con i comandi LATEX sono sempre lunghezze elasticheanche se i loro allungamenti e accorciamenti sono nulli di fatto si comportanocome lunghezze rigide a meno che nella definizione non vengano specificati anchelrsquoallungamento eo lrsquoaccorciamento

Unitagrave di misura Le unitagrave di misura accettabili da LATEX sono le seguenti

cm centimetrimm millimetriin pollicipt punti tipografici (1 pt = (17227) in = 03515 mm)

526 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

pc pica (1 pc = 12 pt)bp punto PostScript o big point (1 bp = (172) in = 03528 mm)sp scaled point (la frazione 2minus16 di un punto tipografico)dd punto didot (1 dd=03760mm=1070 pt)cc cicero (1 cc=12 dd)ex x-height occhio del carattere corrente altezza della lettera lsquoxrsquoem em-width larghezza della lsquoMrsquo convenzionalmente circa uguale al corpo

del font corrente

fill egrave una lunghezza elastica (gomma) di lunghezza naturale nulla ma infini-tamente allungabile

stretch〈moltiplicatore〉 egrave una lunghezza elastica (gomma) di lunghezza na-turale nulla ma allungabile infinitamente quanto fill moltiplicata per〈moltiplicatore〉 questo egrave un numero decimale con segno facoltativo se ilsegno egrave negativo questa lunghezza diventa lsquoinfinitamentersquo accorciabile

newlength〈comando〉 definisce una nuova lunghezza identificata con〈comando〉 questo egrave il nome di un tipico comando LATEX formato dauna stringa letterale preceduta dal backslash oppure da un solo segno nonletterale preceduto dal backslash Si possono definire fino a 256 lunghez-ze in realtagrave il motore di composizione pdftex (sufficientemente recente)accetta la definizione di un numero molto maggiore di lunghezze ma percompatibilitagrave con il passato fino ad oggi (2010) non si egrave ancora visto nessunpacchetto di estensione di una certa importanza farne uso

setlength〈comando〉〈lunghezza〉 serve per assegnare la 〈lunghezza〉 espli-cita al registro-lunghezza identificato con 〈comando〉

addtolength〈comando〉〈lunghezza〉 serve per incrementare il valore di lunghez-za contenuto nel registro 〈comando〉 della quantitagrave 〈lunghezza〉 che puograveessere sia positiva sia negativa in questo caso si ha una sottrazione

settowidth settoheight e settodepth seguono la sintassi seguente

settowidth〈comando〉〈testo〉settoheight〈comando〉〈testo〉settodepth〈comando〉〈testo〉

Ognuna di queste istruzioni assegna al registro-lunghezza 〈comando〉 rispet-tivamente la larghezza lrsquoaltezza o la profonditagrave della stringa che costituisceil 〈testo〉

G83 Operazioni fra numeri e grandezzeLe recenti estensioni del programma pdftex includono tutte le estensioni del prece-dente etex una descrizione esaustiva egrave contenuta nel documento textmf-distrdocetexbaseetex_manpdf quello che ora ci interessa di piugrave egrave la sezione 35di quel documento intitolata ldquoExpressionsrdquo

G8 NUMERI LUNGHEZZE E SPAZI 527

Vediamo dunque che ora pdftex egrave in grado di calcolare alcune espressionimatematiche direttamente in memoria (nei registri della CPU del calcolatore chesi sta usando) Il risultato di queste espressioni egrave usabile in qualunque momentosia lecito usare un risultato numerico o dimensionale per esempio assegnandoload un registro o inserendolo in una espressione logica

Le espressioni dimensionali dimexpr e quelle numeriche numexpr possonovenire mescolate non egrave sempre obbligatorio terminare ogni espressione di ciascuntipo con relax ma egrave consigliabile Esistono espressioni anche per le lunghezzeelastiche e per le lunghezze matematiche glueexpr e muexpr si possono usarele parentesi tonde Lrsquoesempio che il testo propone egrave il seguente

ifdimdimexpr (2pt-5pt)numexpr 3-3135relax + 34pt2ltwd20

Vi compare una espressione mista dimensionale che contiene al suo internouna espressione numerica il comando relax serve per terminare lrsquoespressionenumerica quella dimensionale termina con il primo carattere non valido in unaespressione vale a dire che termina subito prima del segno di minore lt

Le operazioni valide allrsquointerno delle espressione sono i segni delle quattrooperazioni aritmetiche + - e

Le operazioni numeriche sono eseguite fra numeri interi (o con lrsquoindicazionedi contatori TEX oppure contatori LATEX passati come argomento di value)le divisioni quindi sono divisioni intere cioegrave forniscono solo la parte interadel quoziente che potremmo calcolare con una calcolatrice ordinaria (o anche amano)

Le operazioni dimensionali sono le stesse e sono del tutto equivalenti a quelleche potrebbero venire eseguite usando i comandi primitivi di pdftex vale a direadvance per la somma algebrica multiply per la moltiplicazione e divideper la divisione intera

Crsquoegrave perograve una novitagrave le operazioni di scalamento di una lunghezza sono intesecome il prodotto della lunghezza da scalare per il numeratore del fattore di scalacon il risultato diviso per il denominatore del fattore di scala numeratore edenominatore possono essere numeri interi (eventualmente contenuti in contatori)oppure altre due lunghezze non possono essere uno un numero e lrsquoaltro unalunghezza ma devono essere entrambi dello stesso tipo

Bene questa operazione di scalamento viene fatta mettendo il risultato dellaprima moltiplicazione in un registro della CPU a 64 bit il doppio di una normaleparola di 4 byte e il risultato della successiva divisione viene riportato ad unaparola di 32 bit cioegrave di 4 byte Nel fare questo si perdono dei bit nella partemeno significativa della misura della lunghezza e pdftex non esegue un semplicetroncamento ma esegue lrsquoarrotondamento al valore piugrave vicino

Vediamo un esempio se la giustezza textwidth dovesse venire divisa persei al fine di comporre a sei colonne bisogna togliere cinque volte lo spaziointercolonna e dividere il risultato per sei il tutto va poi assegnato alla lunghezzacolumnwidth scriveremo allora2

newlengthNumer newlengthDenomsetlengthNumer1pt setlengthDenom6ptcolumnwidth=dimexpr(textwidth -5columnsep)NumerDenomrelax

2Usando la sintassi di basso livello di pdftex

528 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

Si noti che moltiplicare per 1 pt e dividere per 6 pt non egrave la stessa cosa dimoltiplicare per 1 e dividere per 6 Nella codifica interna la lunghezza di 1 pt egravedata dal numero intero di scaled points corrispondenti appunto a 1 pt quindi daun numero binario formato da un 1 seguito da sedici zeri binari analogamenteil numero sei egrave rappresento da tre cifre binarie 110 seguite da sedici zeribinari la prima moltiplicazione pertanto sposta a sinistra di sedici posizioni ilnumero del risultato della prima sottoespressione poi viene diviso per sei e ilrisultato viene scalato a destra di sedici posizioni portando ad un suo eventualearrotondamento Moltiplicare semplicemente per uno e dividere semplicementeper sei non porta con seacute nessuno scalamento e nessun arrotondamento Infattieseguendo lrsquooperazione indicata sopra lrsquoespressione calcolata con dimexpr vale4916667 pt mentre quella calcolata con gli operatori primitivi vale 4916666 ptIn questo caso la differenza egrave trascurabile ma in altri casi potrebbe non esserlo

Si noti infine che le operazioni di scalamento vengono eseguite correttamentese si usano i registri lunghezza (o i registri numerici) piuttosto che le grandezzeesplicite

Vale la pena di indicare alcune particolaritagrave dei calcoli che pdftex esegue e deiregistri in cui salva certe quantitagrave egrave importante anche al fine di rendersi contodella delicatezza dei calcoli e dellrsquoeventualitagrave di eseguirne alcuni che portano oalla perdita di ogni informazione o allrsquooverflow

I registri interi cioegrave i contatori sono parole di 4 byte che contengono 32 bit ocifre binarie Un bit egrave riservato per il segno quindi restano 31 bit per rappresentarei numeri Ne segue che il massimo numero intero vale 231 minus 1 = 2 147 483 647chiaramente un numero sufficientemente grande da dubitare di poterlo superare

I registri per le lunghezze sono ugualmente dei registri interi dove vienememorizzato il numero di scaled points corrispondenti Si tratta di parole di4 byte che contengono 32 bit due di questi bit servono per il segno e peraltre informazioni specifiche relative alle lunghezze restano quindi 30 bit permemorizzare la grandezza espressa mediante un numero intero di scaled points ilcui valore assoluto massimo puograve quindi arrivare a 1 073 741 823 Siccome 216 spcorrispondono a 1 pt la massima lunghezza espressa in punti che puograve venirememorizzata vale 16 38399999 pt Questo valore tra lrsquoaltro viene memorizzatonel registro di lunghezza maxdimen nel caso il compositoreprogrammatorevolesse eseguire dei confronti o utilizzare questo numero speciale

Questa massima lunghezza corrisponde a poco piugrave di 5758mm quasi seimetri e sembra che anche questo valore in tipografia sia difficilmente raggiungi-bile Purtroppo non egrave vero Si pensi infatti ai calcoli che bisognerebbe fare perdeterminare una lunghezza che sia in proporzione con unrsquoaltra lunghezza con lostesso rapporto di altre due lunghezze

l1l2

= L1

L2cioegrave l1 = l2

L1

L2

Per fare un esempio pratico si supponga di avere a disposizione una cartadi formato non standard con base L2 e altezza L1 da specificare nel preamboloassegnandone i valori ai registri di lunghezza paperwidth e paperheight inbase al font usato si determina che la leggibilitagrave egrave ottimale se la base della grigliainterna textwidth vale l2 quanto deve valere textheight affincheacute il testo siainscritto in un rettangolo simile al rettangolo della carta

Con le espressioni di dimensione che abbiamo appena visto possiamo deter-minare

G8 NUMERI LUNGHEZZE E SPAZI 529

textheight=dimexpr textwidth paperheight paperwidth relax

e pdftex ci esegue i calcoli senza problemi grazie ai risultati interni conservati unun registro di due parole cioegrave di 64 bit

Cosa sarebbe successo se avessimo usato i comandi primitivi multiply edivide Per rendercene conto egrave meglio fare un esempio numerico Supponiamoche la carta abbia le dimensioni di 220mm per 280mm (il vecchio formatoitaliano quadrotto simile al formato letter americano ma che in Italia non egrave piugravefacilmente reperibile per non dire che egrave irreperibile) Il calcolo della giustezzasulla base dei font che andiamo ad usare ci dice che questa dovrebbe valere170mm Eseguendo i calcoli con una calcolatrice tascabile (a virgola mobile)avremmo3

x = l2 middot L1 = 170times 280 = 47600 5758l1 = xL2 = 47600220 = 216364

Come si vede il risultato finale egrave perfettamente accettabile ma la moltiplica-zione intermedia eccede le possibilitagrave dei registri interni di pdftex e quindi si haun overflow

Ah se egrave cosigrave allora eseguiamo prima la divisione e poi la moltiplicazione

y = l2L2 = 170220 = 0l1 = y middot L1 = 0times 280 = 0

ma in questo modo la divisione intera di un numero per un numero piugrave grandeci dagrave la parte intera del quoziente che vale evidentemente zero e perdiamo ogniinformazione

Ecco quindi dove nasce lrsquoenorme comoditagrave dellrsquooperazione di scalamentoeseguita da pdftex in un registro interno a 64 bit Questo genere di cose possonoperograve succedere anche con pdftex quando si esegue la divisione finale se il divisoreegrave troppo piccolo In questo caso pdftex non puograve fare a meno di emettere unmessaggio di errore ma si puograve proseguire con le dita incrociate i calcoli sarannosbagliati quindi andragrave corretto lrsquoerrore prima di ottenere risultati ragionevolima lo si potragrave fare senza perdere tutte le informazioni accessorie che pdftex egrave ingrado di raccogliere o di generare durante la sua esecuzione

Inconvenienti di questo genere possono succedere piugrave sovente di quanto siimmagini quindi egrave opportuno fare sempre una analisi preventiva dei calcoli daeseguire almeno come ordini di grandezza per non ritrovarsi senza la possibilitagravedi lasciare fare i conti a pdftex al fine di creare macro capaci di funzionare conqualunque insieme di valori degli argomenti

G84 Il pacchetto ifthenIl pacchetto ifthen permette di accedere ai comandi primitivi di controllo delflusso delle informazioni di cui TEX egrave capace I comandi messi a disposizione daquesto pacchetto sono i seguenti

3Non si badi al fatto che le indicazioni contengano solo le misure e non le unitagrave di misura Egravevoluto per due motivi (a) lrsquoelaboratore usa solamente numeri e (b) qui non si vuole annoiareil lettore con lunghe scritture di sequenze di bit o di cifre esadecimali od ottali il concettoegrave quello di mostrare come si svolgono i conti anche se qui usiamo le misure dei millimetrinon dimentichiamoci che i contatori numerici non possono contenere un numero equivalente dimillimetri superiore a poco piugrave di 5758

530 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

ifthenelse con la sintassi

ifthenelse〈test〉〈esegui quando egrave vero〉〈esegui quando egrave falso〉

esegue il 〈test〉 e se questo 〈test〉 restituisce il valore lsquoverorsquo allora vengonopassati al flusso di informazioni da elaborare i token che formano il conte-nuto del primo argomento dopo il test 〈esegui quando egrave vero〉 Altrimentivengono eseguiti i token che formano il testo di 〈esegui quando egrave falso〉I 〈test〉 che si possono eseguire sono i seguenti

confronto numerico con la sintassi

〈numero1〉 operatore 〈numero2〉

dove operatore egrave uguale a gt oppure = oppure lt i numeri 〈numeroi〉possono essere i contenuti di due contatori o di un contatore e di unaquantitagrave esplicita Per i contatori LATEX bisogna specificarne il valoreattraverso la macro value

equal con la sintassi

equal〈stringa1〉〈stringa2〉

confronta due stringhe e se sono assolutamente identiche il test egrave veroaltrimenti egrave falso

lengthtest con la sintassi

lengthtest〈lungh1 operatore lungh2〉

confronta due lunghezze (generalmente almeno una delle due egrave conte-nuta in un registro-lunghezza) e restituisce il valore lsquoverorsquo se le duelunghezza stanno nella relazione implicata dallrsquooperatore Questopuograve essere un solo segno matematico fra = gt oppure lt

isodd con la sintassi

isodd〈numero〉

controlla se un numero (generalmente contenuto in un contatore) siadispari

isundefined con la sintassi

isundefined〈comando 〉

restituisce il valore vero se 〈comando 〉 non egrave mai stato definitoboolean controlla lo stato di una variabile booleana la sintassi per gestire

queste variabili egrave la seguente

newboolean〈variabile booleana〉provideboolean〈variabile booleana〉setboolean〈variabile booleana〉〈stato〉boolean〈variabile booleana〉

G8 NUMERI LUNGHEZZE E SPAZI 531

dove 〈stato〉 egrave una delle due parole true (vero) oppure false (falso)In realtagrave boolean egrave in grado di verificare lo stato anche delle variabilibooleane interne a LATEX e anche di quelle definite con i comandielementari di TEX o di Plain TEX Con questrsquoultimo si definisce unnuovo comando logico con newif il quale accetta come argomentoil comando per disteso e contemporaneamente definisce due altricomandi per impostare le corrispondenti variabili booleane In praticase si volesse definire una nuova variabile booleana lsquotestrsquo con ilpacchetto ifthen si dovrebbero usare i comandinewbooleantestsetbooleantesttrueifthenelsebooleantesttextbfPippotextitPluto

Se invece si usassero i comandi di Plain TEX (accessibili anche quandosi usa LATEX) si dovrebbe scriverenewififtesttesttrueiftesttextbfPippoelsetextitPlutofi

Si egrave fatto questo esempio non tanto per invitare ad usare i coman-di elementari di Plain TEX quanto per permettere di capire comefunzionano i test elementari che si trovano scritti a piene mani neicomandi definiti nei file di formato di classe e di estensioneIl comando provideboolean esegue la stessa definizione che eseguenewboolean ma omettendo ogni definizione se la 〈variabile booleana〉esiste giagrave

and or e not permettono di mettere insieme diverse frasi logiche da col-legare fra di loro mediante questi operatori lrsquointera frase comprendentegli operatori deve essere racchiusa fra ( e )

whiledo consente di descrivere e realizzare un ciclo lsquowhilersquo la sintassi egrave

whiledo〈test〉〈ciclo〉

Questo comando ripete il 〈ciclo〉 fino a quando il 〈test〉 inizialmente verodiventa falso Va da seacute che prima di iniziare la ripetizione di 〈ciclo〉 glielementi da cui dipende 〈test〉 devono essere inizializzati in modo taleche 〈test〉 sia vero Il 〈ciclo〉 deve contenere delle istruzioni o dei comandiche prima o poi rendano il 〈test〉 falso altrimenti LATEX entra in un cicloinfinito e non ne esce piugrave

A titolo di esempio dellrsquouso di ifthenelse il comando cleardoublepageegrave definito nel nucleo di LATEX mediante la sintassi di basso livello TEX

defcleardoublepageclearpageiftwoside ifoddcpageelsehboxnewpageiftwocolumnhboxnewpagefififi

Usando il pacchetto ifthen questa definizione potrebbe essere tradotta in

532 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

newcommandcleardoublepageclearpage

ifthenelse(booleantwosideandnotisoddvaluepage)mboxnewpageifthenelsebooleantwocolumnmboxnewpage

La scrittura egrave un poco piugrave complessa ma si vedono meglio gli effetti e la naturadei test il primo controlla se stiamo componendo fronte e retro e se siamo su unapagina pari egrave chiaro che se non stiamo componendo fronte e retro saltare unapagina per ricominciare da una pagina dispari una pagina di destra non ha moltosenso inoltre egrave chiaro che se la pagina egrave dispari non bisogna fare nulla Infinecontrolla se si sta componendo su due colonne in questo caso esegue comunqueun newpage che a due colonne vuol dire di saltare una colonna e ricominciarea comporre nella colonna successiva4 Lrsquoincolonnamento dei contenuti delle varieclausole e delle relative parentesi graffe permette di seguire meglio i successivipassi

G9 SpaziatureGli spazi orizzontali e verticali possono venire inseriti a mano con i seguenticomandi

hspace〈lunghezza〉hspace〈lunghezza〉vspace〈lunghezza〉vspace〈lunghezza〉

I comandi con asterisco impediscono che gli spazi siano eliminati alla fine oallrsquoinizio di una riga o allrsquoinizio o alla fine di una pagina come invece avvienecon gli spazi lsquosemplicirsquo Questa possibilitagrave di essere eliminati egrave essenziale per labuona composizione di una pagina e delle sue righe ma puograve non essere quello chesi desidera quando si compone dentro ad una scatola oppure quando si eseguonocomposizioni speciali si pensi per esempio ad un frontespizio dove non si vuoleinserire il primo elemento scritto allrsquoinizio della gabbia ma lo si desidera spostarein basso per lrsquoequilibrio della pagina

Molto comodi risultano i comandi abbreviati

bigskipmedskipsmallskip

che equivalgono rispettivamente a

vspacebigskipamount vspacemedskipamountvspacesmallskipamount

4Il secondo ifthenelse puograve essere omesso se il comando precedente invece di newpagefosse nuovamente clearpage

G10 FIGURE TABELLE ED ALTRI OGGETTI FLOTTANTI 533

Le lunghezze indicate con i tre comandi skipamount sono definiti nei file diclasse ma generalmente essi hanno i valori di 12 pt 6 pt e 3 pt

Il comando

addvspace〈lunghezza〉

aggiunge spazio verticale tenendo conto di eventuale spazio verticale giagrave inseritoimplicitamente da comandi precedenti cosigrave che alla fine lo spazio complessivoaggiunto ammonti esattamente alla 〈lunghezza〉 specificata

I comandi hfill e vfill equivalgono rispettivamente a hspacefille vspacefill

G10 Figure tabelle ed altri oggetti flottantiI comandi per rendere flottanti le figure e le tabelle sono descritti nei prossimiparagrafi

G101 Figure e tabelle

beginfigure[〈posizione〉] 〈figura〉 endfigurebeginfigure[〈posizione〉] 〈figura〉 endfigurebegintable[〈posizione〉] 〈tabella〉 endtablebegintable[〈posizione〉] 〈tabella〉 endtable

I comandi senza asterisco vanno bene sia componendo ad una colonna siacomponendo a due colonne I comandi con lrsquoasterisco inseriscono lrsquooggetto alarghezza piena in testa ad una pagina composta a due colonne per altrocomponendo ad una colonna si puograve usare indifferentemente la versione con oquella senza asterisco

Le posizioni possibili sono

t in testa alla paginab al piede della paginah lsquoquirsquo se possibile p in una pagina di soli oggetti flottanti

Con tutte le classi standard se lrsquoargomento facoltativo 〈posizione〉 non egrave specifi-cato le posizioni di default sono tbp

La lista delle posizioni in realtagrave accetta anche che invita LATEX a lsquomettercelatuttarsquo per collocare lrsquooggetto nel posto piugrave vicino a dove egrave stato definito

LATEX puograve mettere un filetto sotto a una figura in testa alla pagina oppuresopra una figura in calce alla pagina puograve mettere anche un filetto sotto ad unafigura a piena pagina in testa ad una pagina composta a due colonne I comandiper mettere questi filetti sono topfigrule botfigrule e dblfigrule didefault questi tre comandi sono equivalenti a relax quindi non fanno nienteOgni classe oppure ogni compositore li puograve ridefinire in modo che mettanoqualcosa generalmente un filetto ma potrebbe essere una qualunque decorazionenella posizione a cui si riferiscono ma questo qualcosa deve avere altezza nullaallo stesso modo del filetto che separa le note in calce dal testo sovrastante Ladefinizione di questo filetto footnoterule egrave la seguente

534 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

deffootnoterulekern-3p hrule width 2in kern 26p

e basta definire i comandi di questi filetti cambiando il nome footnoterulecon topfigrule o botfigrule o dblfigrule per esempio

deftopfigrulekern26p hrule width 2in kern 3pdefbotfigrulekern-3p hrule width 2in kern 26pdefdblfigrulekern-26p hrule width 2in kern 3p

Si noti lrsquoespediente per fare sembrare il filetto di altezza nulla si arretra di 3ptsi mette un filetto spesso 04pt e si avanza di 26pt complessivamente non si egraveavanzato in verticale di nessuno spazio gli spostamenti in avanti o allrsquoindietro di26pt e di 3pt sono messi strategicamente in modo che lo spostamento positivosepari il filetto da ciograve che esso segue o precede

LATEX durante la costruzione della pagina di uscita segue dei criteri diottimalitagrave per collocare gli oggetti flottanti che eventualmente sono accodati peressere emessi appena possibile Questi criteri implicano il rispetto di certe frazioniminime o massime di spazio dedicato a questa o quella parte del documentononcheacute al numero massimo di oggetti che possono essere collocati in una paginaLe regole che LATEX segue sono descritte qui di seguito ma egrave chiaro che se sivuole che LATEX faccia diversamente da come egrave stato programmato bisognacomprendere appieno queste regole e bisogna capire come funzionano i parametrimassimi o minimi che vi presiedono

1 LATEX colloca un oggetto flottante nel primo posto che non viola le regoleseguenti salvo che se egrave specificato il codice h questo ha la precedenza sulcodice t

2 LATEX non collocheragrave mai un oggetto flottante in una pagina che viene primadi quella dove compare il testo del file sorgente che attornia lrsquoambiente diflottaggio

3 LATEX colloca le figure in ordine e lo stesso fa con le tabelle per cui nonpuograve succedere che la figura 22 appaia prima della figura 21Va notato perograve che quando si compone a due colonne (senza usare ilpacchetto multicol5 ma usando la specifica LATEX twocolumns) possonoformarsi pagine che hanno figure o tabelle a giustezza piena contempo-raneamente a una o piugrave figure o tabelle con la giustezza di una colonnaIn questi casi visto che gli oggetti a piena giustezza vengono collocatesolo in testa mentre gli oggetti con la giustezza di una colonna possonoessere collocati sia in testa alla colonna sia in calce sia in una posizionequalsiasi consentita dai parametri di posizione puograve succedere che lrsquooggettoin testa abbia un numero successivo a quello di un oggetto in colonnaPer ovviare a questo inconveniente egrave necessario usare un piccolo pacchettodi correzioni del nucleo di LATEX fixltx2e che esegue alcune modifichealla routine di emissione della pagina composta onde evitare questa epoche altre apparenti incongruenze presenti nel nucleo standard La do-cumentazione di questo pacchetto si trova in doclatexbase malrsquoutente generalmente deve usare questo pacchetto solo se compone a duecolonne e se ha numerose figure o tabelle di varie dimensioni orizzontali

5Questo pacchetto non consente di mettere figure allrsquointerno delle colonne

G10 FIGURE TABELLE ED ALTRI OGGETTI FLOTTANTI 535

altrimenti questi difettucci non si manifestano quando si compone ad unasola colonna

4 LATEX colloca gli oggetti flottanti solamente nelle posizioni specificatenellrsquoargomento facoltativo 〈posizione〉 o in mancanza di questo in unadelle tre posizioni di default tbp

5 LATEX non collocheragrave mai un oggetto flottante in una pagina che noncontiene abbastanza spazio quindi non produrragrave mai una lsquoOverfull vboxrsquoa causa degli oggetti flottanti Bersquo a meno che un oggetto flottante diper seacute non sia cosigrave grande da eccedere lo spazio disponibile a questoil compositore deve provvedere preventivamente mediante le opportuneoperazioni di scalamento e gli altri artifici descritti negli appositi capitolirelativi a figure e tabelle

6 I vincoli imposti dai parametri stilistici tipici di ogni classe non vengonomai violati quando viene specificato vengono rilassati i vincoli impo-sti dai parametri che contengono sia testo sia oggetti flottanti mentreLATEX continua a rispettare i vincoli imposti alle pagine che contengonosolamente oggetti flottanti Per queste pagine di soli oggetti flottanti leregole vengono ignorate quando si emettono i comandi clearpage oppurecleardoublepage e ovviamente quando si incontra enddocumentpercheacute questi comandi e la specifica che il documento egrave terminato ordinanoa LATEX di svuotare le code di tutto ciograve che si trova ancora in memoria

Quando si specifica la 〈posizione〉 bisogna dare abbastanza possibilitagrave a LATEXdi fare il suo mestiere altrimenti lrsquooggetto che non ha altre possibilitagrave che una solablocca le code fino alla fine del documento o alla prima esecuzione di clearpageo cleardoublepage questi comandi vengono emessi automaticamente quandosi inizia un nuovo capitolo ma a parte che egrave brutto vedere tutte o quasi lefigure di un capitolo accumulate alla sua fine bisogna ricordare che la memoriadi LATEX egrave programmata per memorizzare solamente 18 oggetti flottanti sedovessero accodarsene di piugrave quelli in eccesso verrebbero persi e verrebbe emessoun messaggio che avvisa del fatto ma egrave una magra consolazione Si esamini peraltro la possibilitagrave di usare il pacchetto morefloats

I comandi che si possono usare dentro agli ambienti di flottaggio tipicamentesonocaption con la sintassi

caption[〈didascalia breve〉]〈didascalia〉

dove se non si specifica la 〈didascalia breve〉 questa viene automaticamenteresa identica alla didascalia lsquolungarsquo potrebbe non essere una buona ideaquella di inviare alla lista delle figure o delle tabelle lrsquointera didascaliaspecialmente se questa contiene uno o piugrave periodi dopo il primo che svolgeil compito di titolo mentre i periodi successivi svolgono il compito difornire maggiori delucidazioni sullrsquooggetto specifico

label puograve essere usato anzi egrave conveniente che sia usato per ogni figura e perogni tabella il comando deve essere collocato dopo il comando captionpercheacute fincheacute questo non viene eseguito allrsquooggetto flottante non egrave ancorastato assegnato un numero

536 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

suppressfloats con la sintassi

suppressfloats[〈posizione〉]

puograve essere collocato fuori degli ambienti di flottaggio al fine di evitareche LATEX metta altri oggetti nella stessa 〈posizione〉 specificata comeargomento facoltativo se non si specifica nulla tutti gli oggetti flottantisono esclusi dalla pagina corrente Se perograve nella 〈posizione〉 del comando diapertura degli ambienti figure o table compare allora suppressfloatsviene ignorato

I parametri dimensionali e numerici che regolano il deflusso degli oggettiflottanti dalle rispettive code sono i seguenti

topnumber egrave il nome del contatore che contiene il numero massimo di oggettiflottanti che possono essere collocati in testa alla pagina

topfraction egrave la massima frazione di pagina destinata agli oggetti flottantiin testa ad una pagina se questa contiene anche del testo

bottomnumber egrave il contatore che contiene il numero massimo di oggetti flottantiin calce alla pagina

bottomfraction egrave la massima frazione di pagina destinata agli oggetti flottantiin calce ad una pagina se questa contiene anche del testo

totalnumber egrave il contatore che contiene il massimo numero di oggetti flottantiche possono comparire in una pagina di testo indipendentemente dal fattoche che siano in testa o in calce o in mezzo al testo

textfraction per una pagina che contenga anche del testo egrave la frazioneminima della pagina destinata al testo

floatpagefraction in una pagina di soli oggetti flottanti rappresenta la mi-nima frazione di pagina che deve essere occupata da questi oggetti se cioegravesi specifica il parametro di posizione p per un oggetto flottante e questoegrave troppo piccolo esso viene trattenuto in memoria fincheacute non si trovaun altro oggetto flottante dello stesso genere e con lo stesso attributo diposizione che assieme possano superare questo valore minimo specificato

dbltopnumber il nome del contatore che contiene il numero massimo di oggettiflottanti a piena pagina da mettere in testa ad una pagina con il testocomposto su due colonne

dbltopfraction la massima frazione di pagina a giustezza piena da destinareagli oggetti flottanti in testa alla pagina quando si compone a due colonne

dblfloatpagefraction egrave la minima frazione di pagina da occupare con oggettiflottanti a giustezza piena quando si compone una pagina di soli oggettiflottanti in un testo composto a due colonne Egrave insomma lrsquoanalogo difloatpagefraction che invece vale quando si compone il testo ad unasola colonna

G10 FIGURE TABELLE ED ALTRI OGGETTI FLOTTANTI 537

Numeri Frazionitopnumber 2 topfraction 07bottomnumber 1 bottomfraction 03totalnumber 3 textfraction 02dbltopnumber 2 floatpagefraction 05

dbltopfraction 07dblfloatpagefraction 05

Separatorifloatsep 12pt plus 2pt minus 2pttextfloatsep 20pt plus 2pt minus 4ptintextsep 12pt plus 2pt minus 2ptdblfloatsep 12pt plus 2pt minus 2ptdbltextfloatsep 20pt plus 2pt minus 4pt

Tabella G3 Parametri nella classe book composta in corpo 10 per gestire glioggetti flottanti

floatsep egrave la distanza minima da riempire con un contrografismo incolore fradue oggetti flottanti consecutivi

textfloatsep egrave la distanza minima da interporre fra gli oggetti flottanti intesta o in calce e il testo adiacente

intextsep egrave la distanza minima fra un oggetto flottante a centro pagina e iltesto che lo precede e il testo che lo segue

dblfloatsep egrave la distanza minima fra due oggetti flottanti consecutivi in testaad una pagina composta a due colonne

dbltextfloatsep egrave la distanza minima posta fra gli oggetti flottanti in testaad una pagina composta a due colonne e il testo sottostante

I contatori si impostano con i comandi specifici in particolare setcounter lefrazioni fraction sono valori decimali in generale fratti e minori dellrsquounitagraveche vengono conservati dentro le macro con i rispettivi nomi e quindi tuttisi reimpostano per modificare i valori di default mediante renewcommand Iseparatori sep sono lunghezze e si impostano con il comando setlengthOgni classe definisce i suoi particolari valori per questi parametri per la classebook composta in corpo 10 (come questo testo) i parametri sono riportati nellatabella G3

Va detto che i lsquoNumerirsquo e le lsquoFrazionirsquo indicati nelle tabelle G3 non devo-no necessariamente essere coerenti sembra strano ma egrave comprensibile Per ilsquoNumerirsquo per esempio totalnumber sembra essere la somma di topnumber ebottomnumber se perograve totalnumber fosse posto al valore 2 questo vorrebbedire che al massimo ci possono essere 2 oggetti flottanti in testa e uno in calcema in ogni caso non possono essere tutti e tre presenti percheacute nella pagina ce nepossono essere al massimo due Lo stesso vale per le frazioni esse rappresentanodei limiti per delle disuguaglianze questi limiti non debbono necessariamenteavere per somma lrsquounitagrave lrsquoimportante egrave che queste disuguaglianze siano tutte

538 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

rispettate nellrsquoordine di preferenza che LATEX assegna alla collocazione deglioggetti flottanti

Il compositore si ricordi specialmente per quel che riguarda le frazioni chenel computo dellrsquoingombro dellrsquooggetto flottante bisogna tenere conto anchedello spazio destinato alla didascalia e del suo spazio di separazione Spesso ilcompositore egrave deluso dalla rigidezza con cui LATEX gestisce gli oggetti flottantiin realtagrave LATEX come tutti i programmi si comporta come gli egrave stato prescrittoin particolare in questo caso come richiesto dai lsquoNumerirsquo dalle lsquoFrazionirsquo e dailsquoSeparatorirsquo che compaiono nella tabella G3 Se non piacciono quei valori li sipuograve cambiare ma il compositore stia attento che la cura non sia peggio del malePiuttosto egli dedichi la sua attenzione al dimensionamento degli oggetti flottantiallrsquoeliminazione di spazi inutili al loro contorno allrsquoeliminazione delle parti inutilidelle fotografie che si trovano spessissimo ai margini laterali o verticali insommausi appropriatamente le possibilitagrave offerte dalle opzioni di includegraphicspercheacute egrave con quelle che si curano davvero sia il deflusso degli oggetti flottantidalle rispettive code sia la qualitagrave del documento prodotto

G102 Note marginaliI comandi che portano alla composizione e alla collocazione delle note marginalisono i seguenti

marginpar[〈nota di sinistra del testo〉]〈nota di destra del testo〉reversemarginparnormalmarginpar

La posizione normale delle note quando si compone ad una colonna egrave il margineesterno quando si compone a due colonne egrave il margine adiacente alla colonna allaquale la nota si riferisce quindi il margine di sinistra per la colonna di sinistra eil margine di destra per la colonna di destra e questo avviene indipendentementedal fatto che ci si trovi in una pagina di sinistra o di destra reversemarginparscambia i margini per le note composte ai margini di testi composti ad una solacolonna e normalmarginpar ripristina la collocazione di default Questi duecomandi sono inattivi quando si compone a due colonne

Per il testo delle note che dovrebbero apparire a sinistra del testo a cui siriferiscono potrebbe essere applicata la dichiarazione raggedleft per avere unacomposizione in bandiera giustificata a destra Tuttavia questo egrave consigliabilesolo quando le annotazioni marginali sono sempre molto brevi in modo da nonsuperare una riga Cambiare giustificazione da nota a nota sarebbe una cadutadi uniformitagrave e di stile Drsquoaltra parte le note di piugrave righe giustificate solo a destrasono leggermente piugrave laboriose da leggere rispetto alle note giustificate solo asinistra il compositore ci pensi bene prima di decidere come comporre le noteeventualmente si crei una macro che componga sempre entrambi i testi di sinistrae di destra uniformemente con lo stesso stile in modo da non dover operare amano cosigrave da evitare i possibili errori di disomogeneitagrave

I parametri che governano la collocazione delle note a parte il marginelsquonormalersquo o lsquoscambiatorsquo sono

marginparwidth egrave la giustezza delle note marginali e deve essere evidentementeminore della larghezza del margine fisico a lato del testo

G11 INCOLONNAMENTI 539

marginparsep egrave lo spazio di separazione fra il testo e il blocchetto della notamarginale

marginparpush egrave lo spazio con cui una nota marginale viene spostata in bassorispetto alla fine della nota marginale precedente talvolta questo obbliga aportare la nota nella pagina successiva ma viene emesso un avvertimentosullo schermo e nel file log Per riparare queste situazioni non tantodesiderabili bisogna necessariamente riformulare il testo principale a cuila nota in questione si riferisce oppure bisogna accorciare il testo dellanota precedente

Un avvertimentoLATEX tratta le note marginali alla stessa stregua degli oggettiflottanti questo vuol dire che usa le stesse scatole per conservare in memoria glioggetti flottanti siccome le scatole a disposizione sono solo 18 lrsquouso di frequentinote marginali e di molte figure eo tabelle aumenta il rischio di esaurire lamemoria a disposizione e di perdere degli oggetti flottanti

Si puograve fare uso del pacchetto morefloats che raddoppia il numero di oggettiflottanti in coda permette di arrivare fino a 36 Il motivo per il quale esso arrivasolo fino a una coda di 36 oggetti flottanti egrave per evitare di esaurire la mainmemory del programma di composizione Tuttavia va osservato che il pacchettofu scritto nel 1990 quindi quando la memoria a disposizione dei vari main framee dei PC personali era veramente piccola Il sistema TEX che sto usando disponedi una memoria di 3 000 000 parole di 4 byte per svolgere il suo lavoro ma neusa solamente la settima parte come si puograve leggere alla fine del file log

G11 IncolonnamentiG111 Lrsquoambiente tabbingNel testo non se ne egrave nemmeno parlato percheacute si ritiene che questo ambiente siauna reminiscenza degli incolonnamenti eseguiti in dattilografia quando TEX78nacque le macchine da scrivere meccaniche ed elettriche erano ancora diffusissimee le tabulazioni eseguite con il tasto di tabulazione noncheacute con gli arresti ditabulazione erano familiari a tutti Tuttavia lrsquoambiente tabbing nato forseproprio per affidarsi a qualcosa di noto a qualunque dattilografo presenta deinotevoli inconvenienti primo fra i quali quello di essere un ambiente fragile eche non puograve essere annidato dentro altri ambienti

La sintassi egrave quella comune a qualunque ambiente

begintabbing 〈testo da tabulare〉 endtabbing

I comandi per gestire gli arresti di tabulazione sono i seguenti

= serve per impostare un arresto di tabulazione spesso conviene scrivere unariga modello da non comporre se si ricorre al comando seguente

kill non compone la riga che precede questa parola chiave ma conservale informazioni di impostazione degli arresti di tabulazione che la rigaconteneva

gt serve per spostare la composizione al successivo arresto di tabulazione

540 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

comincia una nuova riga riportando il contatore degli arresti di tabulazioneal valore iniziale generalmente zero

+ incrementa di una unitagrave il valore iniziale del contatore di tabulazione cosigrave cheda questo momento in poi e fino ad ordine contrario tutte le righe risultanorientrate e incolonnate sotto un arresto presente nella riga precedente

- decrementa di una unitagrave il valore iniziale del contatore di tabulazionecontrasta lrsquoeffetto di +

lt torna indietro di un arresto di tabulazione e puograve essere usato solamenteallrsquoinizio di una riga

rsquo serve per spostare tutto il contenuto di una lsquocolonnarsquo a filo del margine destrodel suo campo di tabulazione

lsquo serve per comporre il contenuto della sua colonna a filo del margine sinistrodel suo arresto di tabulazione

pushtabs manda in memoria le posizioni degli attuali arresti di tabulazioneconsentendo di impostarne di diversi

poptabs serve per richiamare dalla memoria un insieme di arresti di tabulazioneprecedentemente memorizzati

a= arsquo e alsquo agiscono come = rsquo e lsquo per comporre gli accenti macron (lungo)acuto e grave rispettivamente percheacute questi comandi come si vede soprasono stati ridefiniti allrsquointerno dellrsquoambiente per svolgere funzioni diverseIl compositore che usa il pacchetto inputenc non se ne preoccupi e continuiad usare tranquillamente le lettere accentate della sua tastiera percheacutequel pacchetto provvede alla compatibilitagrave senza che il compositore debbapreoccuparsene piugrave di tanto Il compositore deve purtroppo occuparsene see solo se la sua tastiera egrave priva di segni accentati e se il suo shell editor nonconsente di usare combinazioni di tasti per inserire direttamente nel filetex i segni accentati oppure infine se ha impostato il suo shell editor inmodo che salvi i file in modo tale che contengano solo caratteri ASCII a7 bit cosigrave da assicurare la massima portabilitagrave lsquocross-platformrsquo

G112 Gli ambienti array e tabularLe sintassi sono

beginarray[〈posizione〉]〈colonne〉 〈righe〉 endarraybegintabular[〈posizione〉]〈colonne〉 〈righe〉 endtabularbegintabular〈larghezza〉[〈posizione〉]〈colonne〉 〈righe〉 endtabular

La 〈posizione〉 serve per stabilire lrsquoallineamento della tabella o della matrice conil lsquotestorsquo circostante la 〈larghezza〉 serve per imporre una larghezza specificataalla tabella I descrittori delle 〈colonne〉 sono certi codici che ora si rivedranno le〈righe〉 sono i contenuti delle celle orizzontali contenenti il testo o la matematicada comporre array si usa solo in ambiente matematico gli ambienti tabular etabular solo in modo testo sia gli uni sia gli altri ambienti possono conteneresingole celle contenenti lsquotestorsquo dellrsquoaltra specie ma bisogna specificarlo per

G11 INCOLONNAMENTI 541

ciascuna di queste celle in ambiente tabular basta usare gli appositi comandi perpassare alla matematica in ambiente array si possono usare i segni di dollaroche agiscono da interruttorideviatori se si egrave giagrave in modo matematico (comeavviene per ogni cella di un array) il primo segno di dollaro passa in modo testoe il secondo riporta al modo matematico

I codici di posizione sono

t serve per allineare la riga di testa con il testo circostante

b serve per allineare la riga di base con quella del testo circostante

c non necessita di essere espresso percheacute lrsquoallineamento centrato egrave quello didefault

I descrittori delle 〈colonne〉 e i loro separatori sono i seguenti

l colonna con i contenuti allineati a sinistra

c colonna con i contenuti centrati

r colona con i contenuti allineati a destra

| filetto verticale di separazione fra colonne adiacenti

vline lo stesso filetto quando deve essere inserito in una -espressione

〈testo〉 -espressione si tratta di un particolare costrutto con il quale sispecifica che 〈testo〉 sostituisce completamente il separatore ordinario fradue colonne adiacenti Questo significa che se i contenuti delle due celleadiacenti devono essere in qualche modo distanziati allora gli spaziatoridevono essere inseriti dentro la -espressione Un elemento importante delle-espressioni sono le dichiarazioni di spaziatura con elasticitagrave lsquoinfinitarsquo dausare con lrsquoambiente tabular per consentire che queste particolari tabellesi possano estendere fino a raggiungere la larghezza specificata

extracolsep〈larghezza〉 specificato dentro una -espressione serve a dichia-rare che lo spaziatore con la 〈larghezza〉 esplicitata venga inserito a sinistradel contenuto di tutte le celle che seguiranno sulla stessa riga quindi nondi questa e di tutte le celle che seguiranno ma solo di quelle che seguirannoTipicamente questo comando viene inserito nella prima -espressione checompare a sinistra della prima cella di una riga quindi questa cella nonverragrave mai allargata per raggiungere la giustezza desiderata

fill egrave una larghezza naturalmente nulla ma dotata di allungamento infinitotipicamente usata come argomento di extracolsep

p〈larghezza〉 serve per descrivere una colonna composta come un (breve)capoverso la cui prima riga egrave allineata con quella delle celle adiacenti eavente una giustezza pari a 〈larghezza〉 Il testo delle colonne composte conquesto descrittore non puograve contenere direttamente il comando percheacuteLATEX non potrebbe sapere se esso si riferisce alla cella o allrsquointera riga dicelle Perciograve egrave necessario racchiudere questo comando dentro un ambientecome minipage o un altro tabular oppure dentro una scatola parboxesplicita oppure dentro il raggio di azione di comandi come centering

542 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

raggedright oppure raggedleft purcheacute a loro volta siano contenutidentro un gruppo delimitato da parentesi graffe oppure siano contenutiallrsquointerno di altri ambienti

〈numero〉〈descrittori〉 egrave una forma abbreviata per ripetere 〈numero〉 voltele stessa sequenza di 〈descrittori〉 delle colonne Una -espressione nepuograve contenere unrsquoaltra si consiglia di non eccedere con queste formestenografiche innestate lrsquouna nellrsquoaltra altrimenti dopo un porsquo non si capiscepiugrave che cosa si sia specificato Piuttosto egrave meglio rifarsi alle possibilitagraveofferte dal pacchetto array e dal comando newcolumntype

I comandi che si possono usare dentro gli ambienti di incolonnamento sono iseguenti

multicolumn con la sintassi

multicolumn〈numero〉〈descrittore〉〈cella〉

serve per comporre unrsquounica 〈cella〉 con il 〈descrittore〉 specificato cheoccupi 〈numero〉 celle adiacenti Il 〈descrittore〉 oltre alla collocazione conuna delle varie lettere chiave (compresa la p) puograve contenere filetti verti-cali e persino -espressioni Normalmente il contenuto di multicolumnrimpiazza completamente tutte le 〈numero〉 celle adiacenti compresi i loroseparatori destri quindi il separatore sinistro non dovrebbe mai essereindicato come contenuto del 〈descrittore〉 a meno che il gruppo di celle noncomprenda anche la prima cella di una riga

hline serve per tirare un filetto orizzontale attraverso tutta la tabella o tutta lamatrice Esso puograve essere eseguito solo come primo elemento di una tabellaoppure dopo il comando di fine riga oppure dopo un altro coman-do hline in questrsquoultimo caso vengono tracciati due filetti ravvicinatiattraverso tutta la tabella

cline〈col1-col2〉 serve per tracciare un filetto orizzontale solo sotto le colonne〈col1-col2〉 per esempio in una tabella a 7 colonne il comando cline2-6traccia un filetto orizzontale sotto le 5 colonne centrali non si possonoinserire due identici comandi cline uno di seguito allrsquoaltro per raddoppiareil filetto ma si possono usare per lsquosottolinearersquo colonne distinte per esempionella tabella a 7 colonne dellrsquoesempio precedente cline2-3cline5-6lsquosottolinearsquo solo le colonne 2 e 3 con un filetto e allineato con il primo unsecondo filetto lsquosottolinearsquo le colonne 5 e 6

I parametri compositivi di tabelle e matrici sono i seguenti

arraycolsep egrave metagrave dello spazio di separazione fra due celle consecutive diuna matrice

tabcolsep e metagrave dello spazio di separazione fra due celle consecutive di unatabella

arrayrulewidth egrave lo spessore dei filetti orizzontali o verticali che si possonoinserire in tabelle e matrici

G12 I FILE AUSILIARI E I LORO COMANDI 543

doublerulesep egrave la spaziatura verticale o orizzontale fra due filetti consecutiviorizzontali o verticali

arraystretch egrave una macro che puograve venire ridefinita con renewcommand eche rappresenta il fattore di scala con cui viene ingrandito o rimpicciolitolo strut che si trova sempre nella prima cella di ogni riga delle tabelle odelle matrici Il suo valore di default egrave lrsquounitagrave

G12 I file ausiliari e i loro comandi

G121 I file del sistema TEXLATEX come per altro anche Plain TEX fa riferimento ad un gran numerodi file dei quali spesso il compositore non si accorge nemmeno A parte i filesorgente con estensione tex o ltx ci sono anche i file con le estensioniseguenti il nome proprio dei file corrispondenti ad un medesimo documento egravecostantemente il nome proprio del file principale e questo nome egrave conservatodentro la variabile jobname che puograve essere usata anche dal compositore omeglio dal programmatore che scrive le macro

aux serve per conservare tutte le informazioni che riguardano i riferimentiincrociati quando si usano i comandi include questi file conservanoanche tutte le informazioni relative al file incluso in modo da poternesimulare la compilazione quando questo file non sia incluso nella lista difile da compilare contenuta nellrsquoargomento di includeonly Il comandonofiles sopprime la scrittura di tutti i file di questo tipo

bbl questo file viene scritto da BIBTEX ma viene poi letto da LATEX percomporre la bibliografia quando si usi il comando bibliography

dvi egrave il formato di default dellrsquouscita compilata di tutti i programmi elabo-rati con il sistema TEX esso fa riferimento ai font a matrici di pixel egeneralmente il programma per rendere leggibile agli umani questo file egraveincluso nella distribuzione del sistema TEX pdflatex che viene usato perprodurre direttamente lrsquouscita in formato PDF egrave in grado di produrrelrsquouscita in formato DVI se si pone allrsquoinizio del file tex la specificazionepdfoutput=0

glo egrave il file prodotto da LATEX quando sia attivo il comando makeglossaryesso contiene tutte le voci glossaryentry prodotte dai vari comandiglossary inseriti nei file sorgente

idx egrave il file prodotto da LATEX quando sia attivo il comando makeindexesso contiene tutte le voci indexentry prodotte dai vari comandi indexinseriti nel file sorgente

ind questo file viene scritto dal programma makeindex ma viene riletto daLATEX quando deve comporre lrsquoindice analitico

lof contiene le informazioni per comporre lrsquoindice delle figure

544 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

log contiene tutta le registrazione di quanto egrave successo durante lrsquoesecuzione diLATEX in particolare le informazioni relativamente dettagliate concernentigli errori e gli avvertimenti i font usati quelli che sono stati creati al voloquelli mancanti quelli sostituiti eccetera

lot contiene le informazioni per comporre la lista delle tabelle

toc contiene le informazioni per comporre lrsquoindice generale

G122 I riferimenti incrociatiI comandi per assegnare una parola chiave agli oggetti da citare eo perrichiamarne il valore o la pagina sono

label〈chiave〉ref〈chiave〉pageref〈chiave〉

Il comando label egrave fragile sarebbe meglio anche se egrave possibile non inserirlomai allrsquointerno di altri comandi nemmeno i comandi di sezionamento o i comandiper le didascalie I contatori che possono essere citati con la chiave sono quelli chesono stati incrementati con refstepcounter in ogni caso label associa allachiave il valore dellrsquoultimo contatore in ordine di tempo che egrave stato incrementatocon quel comando

G123 Bibliografia e citazioniSalvo disporre di file bibliografici esterni e di fare uso del programma BIBTEXLATEX dispone dellrsquoambiente thebibliography per comporre gli elenchi bibliograficie assegnare loro una chiave di riferimento

beginthebibliography〈cifre〉bibitem[〈etichetta〉]〈chiave〉 〈voce bibliografica〉 endthebibliography

Le voci bibliografiche vengono richiamate con il comando

cite[〈testo〉]〈chiave〉oppurecite〈lista di chiavi〉

La 〈chiave〉 egrave una informazione interna di LATEX che serve a LATEX stesso e alcompositore per riferirsi ad una particolare voce bibliografica Quando questaviene citata viene citata o con lrsquo〈etichetta〉 se egrave stata specificata oppure conil numero progressivo dellrsquoelenco bibliografico in ogni caso numero o etichettavengono racchiusi entro parentesi quadre

Con cite si possono fare citazioni multiple semplicemente specificando una〈lista di chiavi〉 formata dalle chiavi specifiche dei riferimenti da citare separate davirgole per questo motivo le chiavi possono essere formate con qualunque carat-tere esclusa la virgola Se si cita unrsquoopera sola la citazione contiene lrsquo〈etichetta〉o il numero seguiti da 〈testo〉 per esempio avendo attribuito ad un riferimento

G12 I FILE AUSILIARI E I LORO COMANDI 545

lrsquoetichetta TUG2007 il comando di citazione cite[cap~2]TUG2007 produrragravequalcosa come [12 cap 2]

Per la bibliografia specialmente se contiene numerose voci egrave consigliabileservirsi del programma BIBTEX che garantisce la composizione uniforme dellevarie citazioni e tramite file di estensione consente anche di usare stili di citazionediversi come per esempio lo stile lsquoautore-annorsquo

G124 Suddivisione del file sorgenteNon egrave conveniente scrivere un unico file sorgente specialmente se il documentoda comporre contiene molte pagine molti capitoli eccetera Conviene predisporreun lsquomasterfilersquo che contenga solo il preambolo e la lista dei file componenti

documentclass[〈opzioni〉]〈classe〉usepackage[〈opzioni〉]〈pacchetto〉[〈data〉] includeonly〈lista di file〉begindocumentinclude〈primo file〉include〈secondo file〉 enddocumentLa 〈lista di file〉 egrave un elenco di nomi di file separati da virgole ma senza spazispuri prima o dopo le virgole La sequenza di comandi include ognuno con ilsuo nome di file esegue la compilazione dei file tranne di quelli che non sonoelencati nella 〈lista di file〉 Al limite si puograve compilare un file alla volta i file giagravecompilati anche se non vengono piugrave elaborati hanno lasciato le loro tracce neirispettivi file aux quindi a meno che non siano intervenute modifiche LATEXriesce a risolvere tutti i riferimenti incrociati e a mantenere la coerenza deinumeri delle pagine e di tutti i contatori specificati con i comandi specifici diLATEX

Egrave chiaro che prima di terminare la lavorazione di un documento egrave importanteeseguire la compilazione di tutto il documento cosiccheacute si egrave completamente sicuriche tutti i riferimenti e tutti i valori dei contatori e delle pagine siano correttiquesto lavoro va fatto comunque per predisporre alla fine della lavorazione lacompilazione dellrsquoindice analitico

Ci si ricordi che ogni comando include per prima cosa esegue un comandoclearpage che svuota le code di oggetti flottanti e comincia la compilazionedel nuovo file su una pagina nuova Se non egrave questo quello che si vuole otteneresi faccia uso del comandoinput〈file〉

che non consente la compilazione selettiva ma consente di proseguire la compila-zione del testo dal punto preciso nel quale si trovava LATEX nel momento in cuiha cominciato ad eseguire il comando input

Per risolvere le dipendenze di un dato documento da certi file di macro egravedisponibile lrsquounico ambiente che puograve precedere il comando documentclass

beginfilecontents〈nome file〉〈corpo del file〉endfilecontents

546 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

Egrave disponibile anche lrsquoambiente asteriscato la differenza consiste in questo quandofilecontents viene eseguito controlla che un file con il 〈nome file〉 specificatoesista se esiste lrsquoambiente non fa nulla salvo scrivere sullo schermo e nel filelog che il file esiste giagrave se invece il file non esiste questo ambiente lo creascrivendovi dentro il 〈corpo del file〉 e salvandolo con il nome 〈nome file〉 Nelfare questo al fine di identificare il tipo di file e la sua origine esso scrive anchedei commenti in stile LATEX cioegrave con un segno allrsquoinizio della riga Se non sivogliono questi commenti si usi lrsquoambiente asteriscato

Il comando listfiles serve per elencare a schermo e nel file log tuttii nomi dei file che vengono via via aperti (tranne quelli di servizio) in modoche si possa seguire e controllare che lrsquoesecuzione della compilazione procedaregolarmente

G13 Indice analitico e glossarioCome descritto nel capitolo 16 per comporre uno o piugrave indici analitici egrave opportunoservirsi del programma makeindex nello stesso capitolo viene anche descrittocome servirsi di quel programma per compilare un glossario Tuttavia qui sirichiamano i comandi necessari

G131 Indice analiticoLa composizione dellrsquoindice analitico avviene mediante lrsquoambiente theindex

begintheindexinput〈indexfileind〉endtheindex

Piugrave comodamente si usa il pacchetto makeidx e si ordina la composizionedellrsquoindice analitico mediante il comando printindex Ancora piugrave comodamentesi usa il pacchettoimakeidx che consente di sfruttare la proprietagrave dei sistemi TEXmoderni di eseguire dei comandi di sistema cosigrave da poter generare uno o piugraveindici analitici con una sola esecuzione di pdflatex

Perograve per raccogliere le voci da indicizzare bisogna usare i seguenti comandi

makeindex inserito nel preambolo ordina di eseguire effettivamente la rac-colta delle voci attraverso il comando index che altrimenti sarebbecompletamente inerte

index serve per raccogliere le voci da indicizzare con la sintassi

index〈voce〉

Il comando index deve essere scritto senza spazi interposti alla fine dellaparola di testo che si vuole indicizzare La 〈voce〉 non contiene solo laparola da indicizzare ma anche le ulteriori informazioni di cui necessitail programma makeindex per formattare convenientemente la voce comevoce principale oppure secondaria oppure di terzo livello per scegliereil font con cui scrivere la voce per scegliere la chiave di indicizzazioneper segnalare nel caso di voci secondarie o di terzo livello sotto quale

G14 COMPILAZIONE INTERATTIVA 547

voce primarie esse debbano essere elencate per dare uno stile al numerodi pagina eccetera si veda a questo proposito la documentazione delprogramma makeindexChiaramente se si usa il pacchetto imakeidx per produrre diversi indicianalitici bisogna specificare con un parametro facoltativo in quale indice sideve porre la voce particolare marcata con index per questo egrave meglioconsultare la documentazione di imakeidx

G132 GlossarioPer comporre un glossario bisogna procedere in modo simile a quello che si usaper lrsquoindice analitico i comandi che permettono di raccogliere le voci sonomakeglossary inserito nel preambolo consente lrsquoeffettiva raccolta delle voci

mediante lrsquoattivazione del comando glossary che altrimenti sarebbetotalmente inattivo

glossary serve per raccogliere le voci da inserire nel glossario con la sintassi

glossary〈voce〉

G14 Compilazione interattivaLATEX consente un certo livello di interattivitagrave durante la compilazione a partegli errori che chiedono al compositore di intervenire LATEX consente anche diemettere dei messaggi sul terminale e di leggere le risposte del compositoretypeout con la sintassi

typeout〈messaggio〉

consente di scrivere un messaggio sullo schermo del terminale questo mes-saggio puograve avere gli scopi piugrave diversi ma non consente nessuna interattivitagravepiuttosto puograve preparare un dialogo interattivo

typein con la sintassi

typein[〈comando〉]〈messaggio〉

emette il 〈messaggio〉 sullo schermo se egrave specificato anche il 〈comando〉 ilprogramma si arresta e attende che lrsquooperatore scriva qualche cosa sullatastiera (presumibilmente quanto il 〈messaggio〉 suggerisce di scrivere frauna rosa di possibili scelte) non appena il compositore preme il tasto difine riga il testo introdotto viene assegnato al 〈comando〉 esattamentecome se il tutto eseguisse le seguenti operazioni

typeout〈messaggio〉newcommand〈comando〉〈testo introdotto〉

Il 〈comando〉 deve essere una valida sequenza di controllo cioegrave una stringaesclusivamente letterale preceduta dal backslash oppure un solo segno nonletterale preceduto dal backslash oppure un carattere attivo

548 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

G15 Interruzione di riga e di paginaG151 Interruzione di rigaI comandi

linebreak[〈numero〉]nolinebreak[〈numero〉]

consentono o vietano rispettivamente di interrompere una riga Se si specifica il〈numero〉 la loro azione egrave rinforzata o indebolita a seconda del valore del numerostesso Il numero 0 rappresenta un debole incoraggiamento ad operare mentreil numero 4 rappresenta lrsquoindicazione di eseguire incondizionatamente lrsquoazionespecificata lrsquoassenza del numero equivale a specificare il numero 4 Attenzionelinebreak interrompe la linea ma lascia che LATEX cerchi di giustificarla per cuise la gomma interparola deve essere allargata troppo viene emesso un messaggiodi Underfull hbox

Una riga puograve venire interrotta anche con i comandi

[〈spazio〉][〈spazio〉]newline

Essi permettono di interrompere una riga per andare decisamente a capo Nonviene eseguito nessun tentativo di giustificare la riga nemmeno se manca pocoal margine destro La forma asteriscata impedisce un fine pagina subito dopo

Per tutti questi comandi la possibilitagrave di eseguire la cesura delle parole in findi riga egrave essenziale Per altro in certe circostanze non basta consentire la cesurama bisogna diminuire le tolleranze di composizione cioegrave bisogna accontentarsidi una maggiore bruttezza di una o piugrave righe Ciograve si ottiene con i comandi

sloppyfussy

Il primo aumenta le tolleranze di composizione a valori enormi che per LATEXequivalgono ad infinito Il secondo ripristina i valori normali

G152 Interruzione di paginaI comandi

pagebreak[〈numero〉]nopagebreak[〈numero〉]

Agiscono come linebreak ma riferendosi alla pagina non alla riga Il 〈numero〉ha lo stesso significato con 0 che indica in blando incoraggiamento ad eseguiree 4 che ordina di eseguire incondizionatamente il comando

Per lrsquointerruzione di pagina non si puograve agire sulla cesura ma si puograve tempora-neamente allungare la pagina rispetto al normale

enlargethispage〈lunghezza〉enlargethispage〈lunghezza〉

G15 INTERRUZIONE DI RIGA E DI PAGINA 549

Il comando senza asterisco allunga semplicemente la pagina per ovvi motivi〈lunghezza〉 dovrebbe essere un multiplo intero di baselineskip dellrsquoavanza-mento di riga normale con il font di default Tuttavia il comando asteriscatocerca di allungare la pagina di quanto specificato ma cerca anche di stringere ilpiugrave possibile gli spazi bianchi verticali al fine di non allungare la pagina ovverodi allungarla il meno possibile Specialmente componendo sul verso e sul rectoegrave importante che le pagine siano della stessa altezza se i margini laterali sonoconsistenti una riga in piugrave in una delle due pagine si nota appena tuttaviasarebbe meglio evitarlo Il comando asteriscato potrebbe essere la soluzione se lapagina nella quale esso compare ha abbastanza spazi bianchi

I comandi

newpageclearpagecleardoublepage

chiudono la pagina corrente gli ultimi due scaricano anche le eventuali codedi oggetti flottanti ancora non svuotate il comando cleardoublepage even-tualmente emette anche una pagina bianca al fine di consentire di iniziare lapagina successiva sul recto cleardoublepage egrave tipicamente il primo comandoche viene eseguito implicitamente quando si esegue il comando di inizio di unnuovo capitolo e anche quando si immette un file con include

Sono disponibili anche dei comandi presi a prestito da Plain TEX ma ancoradefiniti con LATEX

smallbreak esegue un salto pagina solo se prima era stato introdotto nel testouno spazio verticale pari a smallskipamount

medbreak esegue un salto pagina solo se prima era stato introdotto nel testouno spazio verticale pari a medskipamount

bigbreak esegue un salto pagina solo se prima era stato introdotto nel testouno spazio verticale pari a bigskipamount

goodbreak indica a LATEX che questo egrave un buon punto per spezzare la paginaLATEX effettivamente esegue il salto se manca poco alla fine naturale dellapagina se cioegrave non resta una pagina pesantemente mozza ma egrave solo cortadi pochissime righe

filbreak sempre se manca poco alla fine della pagina questo comando indicaa LATEX che puograve eseguire un salto pagina inserendo anche un porsquo di gommaverticale in modo che non vengano emessi messaggi di Underfull vboxnello stesso tempo se il punto non egrave buono per interrompere la paginafilbreak non fa nulla

Si consiglia di usare questi comandi solo alla fine della lavorazione di un docu-mento per correggere a mano alcune piccole cose che LATEX da solo non egrave capacedi gestire I casi in cui il compositore egrave costretto a ricorrere a questi comandie a quelli di LATEX sono rarissimi in testi lsquonormalirsquo possono essere frequentiin testi che contengono molta matematica Tuttavia enlargethispage con osenza asterisco consente di rimediare ad un capitolo la cui ultima riga o ultimedue righe cadono nellrsquoultima pagina peggio ancora se questa pagina egrave dispariSe la pagina egrave pari questa eventualitagrave non egrave tanto bella ma puograve essere accettata

550 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

se esse cadono su una pagina dispari questa resta quasi bianca e il capitolosuccessivo inizia in generale di nuovo su una pagina dispari con il risultato cheappaiono due pagine bianche o quasi bianche di seguito decisamente da evitare

Piuttosto se i capoversi finali del capitolo problematico sono sufficientemen-te lunghi si puograve convincere pdftex a comporli su una o due dighe di piugrave odi meno senza forzare allargamenti o accorciamenti improponibili degli spa-zi interparola specificando il comando primitivo looseness seguito da un(piccolo) numero positivo o negativo per esempio scrivendo looseness=1dentro o in assoluta adiacenza ad un capoverso pdftex cercheragrave di allun-gare quel solo capoverso di una riga purcheacute il farlo non aumenti la lsquobrut-tezzarsquo del capoverso oltre alla tolleranza valida in quel momento Il valoredi looseness viene rimesso a zero automaticamente alla fine del capover-so quindi vale solo per quel capoverso per il quale egrave stato specificato Peresempio questo capoverso egrave stato composto con un valore unitario di questoparametro

G16 ScatoleUna scatola egrave un oggetto che puograve contenere diversi segni anche un testo formatoda diverse righe ma questo testo una volta inscatolato viene trattato da LATEXcome se fosse un oggetto unico e non lo spezzeragrave mai alla fine di una riga o diuna pagina I comandi per mettere del 〈testo〉 dentro una scatola sono

mbox〈testo〉makebox[〈larghezza〉][〈posizione〉]〈testo〉fbox〈testo〉framebox[〈larghezza〉][〈posizione〉]〈testo〉

I comandi che cominciano con la lettera lsquofrsquo inseriscono una cornice attorno altesto quelli che cominciano con la lettera lsquomrsquo non inseriscono nessuna corniceSe la 〈larghezza〉 che egrave facoltativa viene specificata il testo viene inserito dentrouna scatola della larghezza specificata altrimenti i comandi che accettano questoargomento facoltativo si comportano come quelli che non lo richiedono Se vienespecificata la 〈larghezza〉 allora si puograve specificare anche la posizione medianteuna sola delle lettere seguenti l per collocare il testo a sinistra r per collocareil testo a destra s per distribuire il testo allargando o restringendo lo spaziointerparola lungo tutta la 〈larghezza〉 se non viene specificata nessuna posizioneil testo risulta centrato dentro la 〈larghezza〉 Si confrontino i casi seguenti

framebox[50mm][l]testo a sinistra testo a sinistraframebox[50mm][r]testo a destra testo a destraframebox[50mm]testo centrato testo centratoframebox[50mm][s]testo spaziato testo spaziato

Lo spessore della linea che forma la cornice delle scatole egrave conservata nelparametro dimensionale fboxrule e la distanza della cornice dal testo egrave con-servata dentro il parametro dimensionale fboxsep Attenzione lo spessore di1 pt per la cornice dagrave luogo a una cornice molto scura testo Quindi non egrave ilcaso di specificare spessori maggiori se non a ragion veduta

G16 SCATOLE 551

Si puograve sostituire lrsquoindicazione esplicita della〈larghezza〉 nelle scatole chelrsquoaccettano mediante quattro nuovi comandi che si riferiscono tutti alla larghezzadella scatola composta con mbox che contiene lo stesso 〈testo〉 esse sono

height ovvero lrsquoaltezza della scatola composta con mbox〈testo〉depth ovvero la profonditagrave di quella scatolatotalheight ovvero la somma di height e di depthwidth ovvero la larghezza di quella scatola

Per inserire del testo dentro scatole che contengono materiale lsquoverticalersquo (inpratica una successione verticale di righe uno o piugrave capoversi) si puograve usare ilcomando parbox o lrsquoambiente minipage

parbox[〈pos〉][〈altezza〉][〈posinterna〉]〈giustezza〉〈testo〉oppurebeginminipage[〈pos〉][〈altezza〉][〈posinterna〉]〈giustezza〉〈testo〉endminipage

dove il parametro 〈pos〉 indica lrsquoallineamento della scatola con il testo circostantet indica che la riga di base della prima riga della scatola egrave allineata con lariga di base del testo circostante b indica che la linea di base dellrsquoultima rigadella scatola egrave allineata con la riga di base del testo circostante per defaultcioegrave senza specificare nulla lrsquoasse matematico della scatola egrave allineato con lrsquoassematematico del testo circostante Facoltativamente si puograve specificare lrsquo〈altezza〉della scatola se questa altezza viene specificata allora si puograve usare il terzoparametro facoltativo 〈posinterna〉 le lettere di posizionamento sono le stessema si riferiscono a dove il testo contenuto nella scatola viene collocato rispetto aibordi ideali della scatola stessa Va infine specificata la 〈giustezza〉 della scatolain pratica la sua larghezza e il 〈testo〉 che essa deve contenere

La differenza sostanziale fra il comando e lrsquoambiente egrave la seguente il comandoparbox non comincia a comporre il 〈testo〉 al suo interno fincheacute non lrsquohaletto tutto Tutto ciograve non avviene con lrsquoambiente minipage il quale gestisce il〈testo〉 in modo differente In compenso minipage in quanto ambiente richiedeuna lsquoamministrazionersquo un poco piugrave complessa che richiede un maggior tempo dielaborazione Parlando di microsecondi non egrave il caso di formalizzarsi troppo vistii numerosissimi vantaggi che offre lrsquoambiente rispetto al comando Lrsquoambienteminipage puograve anche contenere delle note interne alla lsquopaginettarsquo che esso componequeste note vengono composte con i soliti comandi solo che la numerazione dellenote avviene con lettere corsive in posizione di apice in modo da distinguerlebene dalle note di piegrave di pagina generalmente composte con esponenti numericio con simboli non letterali

Si noti che se il contenuto di una minipage comincia con una equazione indisplay essa conserva il suo spazio che la precede se non si vuole questo spaziosi cominci la minipage con vspace-abovedisplayskip

Il comando rule compone una scatola particolare essa infatti egrave completa-mente nera La sintassi egrave

rule[〈rialzo〉]〈base〉〈altezza〉

552 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

La 〈base〉 e lrsquo〈altezza〉 sono la base e lrsquoaltezza del rettangolo nero se una delledue egrave nulla il rettangolo egrave invisibile ma lrsquooggetto continua a mantenere lrsquoaltradimensione se la base egrave nulla si ottiene uno strut che in gergo tipografico italianosi chiama pilastrino In questo testo si egrave mantenuto il nome inglese per ricordarepiugrave facilmente i nomi dei comandi che inseriscono strut vari sia nelle tabellesia in matematica Il rettangolo nero (o invisibile) risulta rialzato di 〈rialzo〉 sequesta lunghezza egrave positiva o ribassato se essa egrave negativa

Infine un comando serve per collocare del 〈testo〉 in una scatola che vienealzata o abbassata a piacere e le si possono assegnare dimensioni a piacereindipendentemente dal testo che la scatola contiene

raisebox〈rialzo〉[〈altezza〉][〈profonditagrave〉]〈testo〉

La 〈profonditagrave〉 puograve venire specificata solo se si specifica anche lrsquo〈altezza〉

G17 Disegni e colori

G171 DisegniCome giagrave specificato lrsquoambiente picture nativo di LATEX non egrave in grado di farealtro che semplici disegni con lrsquoinclinazione dei segmenti e dei vettori moltolimitata dagli speciali font che servono per disegnarli anche i cerchi sia pieni siavuoti sono un problema se non nelle situazioni piugrave semplici i rettangoli ad angoliarrotondati soffrono delle stesse limitazioni dei cerchi le linee arbitrarie possonoessere eseguite solo con le curve di Beacutezier quadratiche quindi con certe limitazionisulle quali qui non egrave il caso di insistere Dal 2003 egrave disponibile il pacchetto pict2eche toglie tutte queste limitazioni esso ha assunto una conformazione stabile dal2004 quindi si raccomanda caldamente di usare quel pacchetto se si desideranoeseguire semplici disegni Nel 2009 il pacchetto pict2e egrave stato ulteriormentearricchito di altri comandi che permettono ora di comporre disegni piuttostoelaborati

Se si vuole disegnare qualcosa di piugrave elaborato ancora si ricorra al pacchettopgf e al suo ambiente tikzpicture questo pacchetto consente di disegnare prati-camente qualsiasi cosa Se non dovesse bastare crsquoegrave sempre il pacchetto PSTricksche egrave limitato solo dal fatto che il linguaggio PostScript su cui si basa non egraveonnipotente ma quasi

Qui pertanto non si daragrave nessuna informazione sullrsquoambiente picture gliesempi svolti nel testo dovrebbero essere autoesplicativi Si invita invece il lettorea documentarsi sui pacchetti pict2e pgf e sul suo ambiente tikzpicture noncheacutesul pacchetto PSTricks

G172 Colori e graficaLATEX egrave dotato di una serie di pacchetti che consentono di eseguire diverse coseoltre allrsquoimportazione di file grafici esterni essi mettono a disposizione la gestionedel colore e la manipolazione di scatole varie che normalmente non possono essereeseguite da LATEX (se non passando attraverso il formato PostScript) ma possonoinvece venire eseguite direttamente da pdfLATEX Lrsquointera serie di pacchetti sitrova nella cartella texlatexgraphics mentre la documentazione si

G17 DISEGNI E COLORI 553

trova in doclatexgraphics Il lettore egrave invitato a documentarsi sul filegrfguidepdf qui si riportano solo i comandi piugrave importanti

Si noti che fra questi pacchetti crsquoegrave color per la gestione del colore i coloripossono essere chiamati per nome o possono essere descritti a livello piugrave bassomediante la specificazione del modello del colore e le componenti dalle qualiin questo modello un dato colore egrave caratterizzato Il pacchetto xcolor estendemoltissimo queste funzionalitagrave La gestione delle scatole e lrsquoimportazione di figureesterne egrave gestita da altri pacchetti di questi si egrave citato qui sempre e soltantographicx che egrave il piugrave comodo da usare in quanto esso dispone di una interfacciaa parole chiave rispetto al file che contiene le macro vere e proprie di gestionedella grafica graphics Questrsquoultimo puograve essere usato da solo ma la sintassiper fargli eseguire le cose che sono cosigrave semplici con graphicx diventa spessoabbastanza complessa

scalebox〈scala-orizz〉[〈scala-vert〉]〈testo〉 serve per inserire 〈testo〉 den-tro una scatola per poi scalarla del fattore di scala orizzontale se il fattoredi scala verticale non viene specificato lrsquoingrandimento verticale avviene conlo stesso fattore di scala orizzontale altrimenti la scatola viene deformatain maniera diversa cosigrave da ottenere effetti particolari

resizebox〈larghezza〉〈altezza〉〈testo〉 esegue in pratica la stessa opera-zione di scalebox solo che invece di specificare dei fattori di scala vengonospecificate le dimensioni finali effettive Il comando asteriscato agisce inmodo da scalare lrsquoaltezza totale (altezza piugrave profonditagrave) al valore specifica-to Una delle due dimensioni puograve essere sostituita da un punto esclamativoin questo caso lrsquoaltra dimensione fissa il fattore di scala complessivo inmodo che il rapporto di forma non sia modificato

rotatebox[〈lista di chiavi〉]〈angolo〉〈testo〉 serve per ruotare la scatolache contiene il 〈testo〉 di un 〈angolo〉 specificato (in gradi) in senso antiorarioil 〈testo〉 puograve essere qualunque cosa del testo vero e proprio una figurauna tabella Nella 〈lista di chiavi〉 si puograve anche specificare mediante origin il puntoattorno al quale eseguire la rotazione si possono definire delle coordi-nate ma ci sono alcuni punti speciali che possono essere rappresentatimediante codici letterali t b r l e B rappresentano le solite inizia-li di lsquotoprsquo lsquobottomrsquo lsquorightrsquo lsquoleftrsquo ma B egrave un codice nuovo rispetto aquelli giagrave incontrati altre volte esso specifica la linea di lsquoBasersquo la lsquoBa-selinersquo la linea cioegrave che attraversa orizzontalmente la scatola in corri-spondenza del punto di riferimento queste lettere sono da usare a duea due per esempio tl per indicare lrsquoangolo in alto a sinistra Br perindicare lrsquointersezione della linea di base con il lato destro della scato-la eccetera Si osservino le tre diverse posizioni che assume la letteralsquoQrsquo quando la si ruoti di 90deg attorno ai tre possibili punti di rotazio-ne di sinistra lsquoblrsquo Q lsquoBlrsquo Q e lsquotlrsquo Q Generalmente per ruotare unascritta in verticale per esempio per metterla a fianco di un asse verti-cale in un disegno egrave conveniente eseguire la rotazione attorno al puntoBl

reflectbox〈text〉 gira la scatola che contiene il 〈testo〉 attorno al suo asseverticale in modo che appaia come riflessa allo specchio

554 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

includegraphics[〈lista di chiavi〉]〈file grafico〉 serve per inserire una sca-tola che contiene lrsquoimmagine descritta nel 〈file grafico〉 elaborata secondole numerose chiavi che si possono specificare ognuna con il suo valore se sispecifica il bounding box il rettangolo lsquocircoscrittorsquo la versione asteriscatadi questo comando permette di tagliare tutto quanto sporge fuori da dettorettangolo Per questo scopo talvolta egrave meglio specificare le coordinate delviewport o le dimensioni delle strisce da ritagliare con trim e poi speci-ficare la chiave clip in questo modo si puograve avere un controllo miglioredi quanto si sta eseguendo

definecolor〈nome〉〈modello〉〈valore〉 serve per dare un 〈nome〉 ad uncolore specificato mediante il suo 〈modello〉 e il 〈valore〉 dei parametri chein quel modello identificano il colore scelto LATEX considera come modellidi colore i seguenti

gray egrave il modello di colore grigio identificato da un solo valore un nu-mero decimale nellrsquointervallo 0 1 0 vuol dire nero e 1 significabianco ogni valore intermedio specifica una certa gradazione digrigio

rgb egrave il modello di colore degli schermi rosso verde blu I colori so-no additivi e il valore che specifica un dato colore in questo mo-dello egrave dato da tre numeri decimali separati da virgole tutti etre nellrsquointervallo 0 1 0 vuol dire lsquoassenzarsquo di quella particola-re componente di colore 1 significa che quella componente di co-lore egrave totalmente satura Per esempio 1 0 0 indica il rosso satu-ro

cmyk egrave il modello della quadricromia a stampa con i colori sottrattivi ognicolore egrave identificato da quattro componenti corrispondenti ciascunaalle componenti ciano (celeste) magenta (lilla) giallo nero Ognicomponente egrave pesata con un numero decimale nellrsquointervallo 0 1 ela quaterna di valori decimali costituisce una lista di valori separatida virgole

Con ogni modello di colore sono predefiniti i seguenti colori whiteblack red green blue yellow cyan magenta Il driver specifico aseconda se si passi attraverso il programma dvips oppure se si procedacon pdfLATEX puograve definire altri colori I nomi dei colori predefiniti conil driver dvips sono contenuti nel file dvipsnamdef in texlatexgraphics

color〈nome〉 dichiara che da questo momento in poi si useragrave il colore conil 〈nome〉 specificato La sua azione viene delimitata dai gruppi o dagliambienti

textcolor〈nome〉〈testo〉 serve per colorare il 〈testo〉 con il colore denomi-nato 〈nome〉

colorbox〈sfondo〉〈testo〉 agisce come fbox ma il 〈testo〉 viene compostosu uno sfondo colorato con il colore di nome 〈sfondo〉

fcolorbox〈bordo〉〈sfondo〉〈testo〉 agisce come colorbox salvo che lacornice della scatola non egrave nera ma colorata con il colore di nome 〈bordo〉 I

G18 SELEZIONE DEI CARATTERI 555

parametri fboxsep e fboxrule che definiscono lo spazio di separazionefra bordo e 〈testo〉 e lo spessore del bordo sono gli stessi che regolano lecaratteristiche della scatola incorniciata con fbox

pagecolor〈nome〉 questo comando globale assegna alle pagine intere unosfondo con il colore denominato 〈nome〉 e questo colore permane fincheacutenon si dichiara un colore differente (eventualmente white)

G18 Selezione dei caratteriI comandi standard di LATEX che hanno a che vedere con la scelta dei fontverranno descritti qui di seguito Per gestire i font in modo piugrave professionaleanzi per caricare altre collezioni di font e per gestirle al meglio egrave necessariodocumentarsi nella guida fntguidedvi

G181 Scegliere famiglia forma e serie

I comandi per scegliere la forma eo la serie da cui trarre i font per la composi-zione sono raccolti nella tabella G4 nella tabella G5 sono invece appaiate ledichiarazioni e i corrispondenti comandi

Le dichiarazioni non possono essere usate in matematica i comandi possonoessere usati in matematica e sono anche soggetti alla variazione automaticadi corpo che compete agli indici e ai pedici di primo e di secondo livello se esolo se vine caricato anche il pacchetto amsmath ma i risultati possono esserepessimi se i font matematici e quelli testuali non si accordano per cui se nesconsiglia lrsquouso e si raccomanda invece di usare il corretto comando matematicomathrm per i pedici e gli apici che normalmente contengono solo una parolao una abbreviazione sempre scritti senza accenti Si puograve ricorrere anche alcomando text fornito dal pacchetto amsmath e al corrispondente comandointertext per intercalare del testo ad espressioni matematiche incolonnateNellrsquoargomento di questi due comandi se fosse necessario si puograve ricorrere tantoai comandi quanto alle dichiarazioni Vale la pena di ricordare che tanto textquanto intertext usano il font testuale non il tondo matematico o simili altrifont matematici Ci si ricordi quindi della necessitagrave di scegliere i font testualie quelli matematici in modo che si accordino gli uni con gli altri di default ifont CM EC LM cm-super ed altre simili collezioni di font si accordano sia inmodo testo sia in modo matematico

G182 Scegliere il corpo

La dimensione dei caratteri egrave legata a nomi che fanno riferimento al corpolsquonormalersquo quello cioegrave usato di default per i corpi inferiori a 10 pt la successionedei corpi procede di 1 pt in 1 pt per i corpi superiori si procede con una successionegeometrica di ragione 12 lrsquoopzione di classe 11pt corrisponde ad un corpo di1095 pt ma il numero magico 1095 altro non egrave che 10times

radic12 I comandi per la

scelta dei corpi relativi a quello normale sono raccolti nella tabella G6 Questicomandi non possono venire usati in matematica

556 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

mdseries Serie media upshape Forma dirittabfseries Serie nera itshape Forma corsivarmfamily Tondo con grazie slshape Forma inclinatasffamily Lineare senza grazie scshape Maiuscolettottfamily Monospaziato normalfont Font di default

Tabella G4 Dichiarazioni per la scelta di famiglia serie e forma

textmd〈testo〉 mdseries textup〈testo〉 upshapetextbf〈testo〉 bfseries textit〈testo〉 itshapetextrm〈testo〉 rmfamily textsl〈testo〉 slshapetextsf〈testo〉 sffamily textsc〈testo〉 scshapetexttt〈testo〉 ttfamily textnormal〈testo〉 normalfont

Tabella G5 Corrispondenza fra comandi e dichiarazioni

tiny scriptsize footnotesize small normalsizelarge Large LARGE huge Huge

Tabella G6 Dichiarazioni di corpo

G183 Corpi testuali e matematiciSi ricorda che fra i comandi disponibili (ma raramente usati) egrave disponibile ilcomando per associare i quattro corpi che servono per il testo e gli indici superiorie inferiori di primo e di secondo ordine per la matematica

DeclareMathSizes〈testo〉〈textsize〉〈subscriptsize〉〈subsubscriptsize〉

dove al corpo testuale 〈testo〉 vengono associati i tre corpi per la matematica〈textsize〉 per i simboli delle espressioni 〈subscriptsize〉 per gli indici e i pedici diprimo livello e 〈subsubscriptsize〉 per gli indici e i pedici di secondo livello

Queste dichiarazioni sono piugrave utili di quanto si pensi percheacute talvolta nelleclassi standard egrave desiderabile apportare qualche correzione specialmente per icorpi piugrave piccoli e piugrave grandi

G184 Simboli specialiQualunque segno di qualunque font puograve venire stampato prescindendo dalle suecaratteristiche particolari il comando

symbol〈indirizzo〉

permette di accedere a qualunque simbolo di qualunque polizza di caratterimediante il suo 〈indirizzo〉 il carattere viene stampato prescindendo dalle suecaratteristiche speciali o dallrsquoesistenza di un comando specifico per usarlo lrsquounicaquestione egrave conoscerne lrsquoindirizzo decimale oppure ottale oppure esadecimaleAttenzione gli indirizzi si riferiscono alla polizza di font usati per la composizionenon ai caratteri introdotti o introducibili con la tastiera per esempio le dueparentesi graffe nellrsquoencoding di entrata hanno indirizzi 123 e 125 rispettivamentese perograve si usano questi indirizzi con un font con codifica OT1 si ottiene ndash e ˝ il

G18 SELEZIONE DEI CARATTERI 557

che corrisponde perfettamente con quanto si puograve leggere nella tabella 112 dellapagina 208

Questo fatto egrave collegato al modo diverso di interpretare i caratteri immessicon la tastiera nel file sorgente tex e soggetti alla codifica di entrata specificatacon lrsquoopzione fornita al pacchetto inputenc rispetto alla codifica usata epr i fontdi uscita specificata con lrsquoopzione passata al pacchetto fontenc Si veda piugravedettagliatamente questa questione nellrsquoappendice D

Bibliografia

[1] Artech HouseldquoStyle ManualrdquoArtech House Boston ndash London

[2] AVThe Chicago Manual of StyleThe University of Chicago Press 14 ed 1994

[3] Gian Luigi BeccariaIl mare in un imbutoGiulio Einaudi editore Torino 2010

[4] Robert BringhurstThe elements of typographic styleHartley amp Marks Vancouver BC 2004

[5] Christophe CaignaertldquoA story of kpfontsrdquoIn TuGboat vol 31 no 3 (2010) pp 161ndash174

[6] CEI 24-1Unitagrave di misura e simboli letterali da usare in elettrotecnicaComitato Elettrotecnico Italiano Milano 1986

[7] CEI-S-646Dizionario della strumentazione nucleare Primo complemento al fascicolo

S-447Comitato Elettrotecnico Italiano Milano 1983

[8] Gustavo CevolanildquoLibretti in LATEXrdquoIn ArsTEXnica vol 1 no 2

[9] Gustavo CevolanildquoNorme tipograficherdquoIn ArsTEXnica vol 1 no 1

[10] CNR-UNI 10002Segni e simboli matematici per le scienze fisiche e tecnicheUnificazione Italiana Milano 1963

[11] CNR-UNI 10003Sistema internazionale di unitagrave (SI)Ente Italiano di Unificazione Milano 1984

[12] Massimiliano Dominici

558

BIBLIOGRAFIA 559

ldquoUtilizzo di caratteri TrueType con LATEX ndash Un esempio pratico i FellTypesrdquoIn ArsTEXnica no 4 (2007) pp 88ndash102

[13] Michael DownesShort math guideAmerican Mathematical Society Providence Rhode Island 109 ed 2002In ftpftpamsorgpubtexdocamsmathshort-math-guidepdf

[14] Olaf Druumlmmer Alexandra Oettler Dietrich von SeggernPDFA in a Nutshell Long Term Archiving with PDFCallas Software gmbh 2008In httpwwwpdfaorgdokuphpid=pdfaenpdfa_in_a_

nutshell[15] Elsevier Science Publishers SV

Preparing articles with LATEX mdash Instructions to authors for preparingcompuscripts

In instrautpdf[16] Giorgio Fioravanti

Il manuale del grafico mdash Guida alla progettazione grafica e allrsquoimpaginazionedel prodotto editoriale

Zanichelli Bologna 1987[17] Peter Flynn

Formatting information mdash A beginnerrsquos introduction to typesetting withLATEX

In ctantex-archiveinfobeginlatexbeginlatex-36pdf[18] Michel Goossens

The X ETEX Companion ndash TEX meets OpenType and UnicodeLATEX Team gennaio 2011In httpxmlwebcernchXMLlgc2xetexmainpdf

[19] Enrico GregorioldquoInstallare TEX Live 2010 su UbunturdquoIn ArsTeXnica vol ottobre no 10 (2010) pp 7ndash13

[20] Enrico GregorioldquoLrsquoarte esoterica di scrivere in cirillico con LATEXrdquoIn ArsTeXnica vol aprile no 9 (2010) pp 57ndash73

[21] Enrico GregorioIntroduzione a X ELATEX gennaio 2011In httpprofssciunivrit gregoriointroxelatexpdf

[22] ISO 690Documentation ndash Bibliographical references ndash Essential and supplementary

elementsInternational Organization for Standardization Ginevra 1982

[23] ISO Handbook 2Units of measurementInternational Organization for Standardization Ginevra 1982

[24] Kluwer Academic Publishers PrePress DepartmentUser manual for kluwerclsIn $TEXMFdoclatexkluwerusrmandvi

560 BIBLIOGRAFIA

[25] Donald E KnuthThe TEXbookAddison Wesley Reading Mass 16 ed 1996

[26] Donald E KnuthComputers amp typesettingAddison Wesley Reading Mass 2001Millenium edition

[27] Helmut Kopka Patrick W DalyGuide to LATEXAddison Wesley Reading Mass 4 ed 2004

[28] Steven G KrantzA primer in mathematical writingAmerican Mathematical Society Providence Rhode Island 2 ed 1998

[29] Leslie LamportA document preparation system mdash LATEX mdash Userrsquos guide and reference

manualAddison Wesley Reading Mass 2 ed 1994

[30] Roberto LesinaIl nuovo manuale di stileZanichelli Bologna 2 ed 1994

[31] Michael Mitchel Susan WightmanBook typography mdash A designerrsquos manualLibanus Press Marlborough Wiltshire UK 2005

[32] Frank Mittelbach Michel Goosens et alThe LATEX companionAddison Wesley Reading Mass 2 ed 2004

[33] Frank Mittelbach Michel Goosens et alThe LATEX graphics companionAddison Wesley Reading Mass 2 ed 2007

[34] Bice Mortara GaravelliProntuario di punteggiaturaEditori Laterza Bari 11 ed 2008

[35] Bice Mortara Garavelli (cur)Storia della punteggiatura in EuropaEditori Laterza Bari 2008

[36] Imprimerie Nationale (cur)Lexique des regravegles typographiques en usage agrave lrsquoImprimerie NationaleImprimerie Nationale Parigi 2006ISBN 2-7433-0482-0

[37] Scott PakinThe comprehensive LATEX symbol listIn $TEXMFdoclatexcomprehensivesymbols-a4pdf

[38] Lorenzo PantieriLATEX per lrsquoimpaziente ndash Unrsquointroduzione allrsquoArte di scrivere con LATEXGruppo Utilizzatori Italiani di TEX e LATEX settembre 2008

BIBLIOGRAFIA 561

[39] Lorenzo Pantieri Tommaso GordiniLrsquoarte di scrivere con LATEX 2010

[40] Will RobertsonThe X ETEX reference guide gennaio 2011In $TEXMFdocxetexxetexrefXeTeX-referencepdf

[41] Fabrizio SerraRegole editoriali tipografiche amp redazionaliIstituti Editoriali e Poligrafici Internazionali Pisa ndash Roma 2004Prefazione di Martino Mardersteig postfazione di Alessandro Olschki

appendice di Jan Tschichold[42] N Setzer

ldquoThe cool packagerdquoIn $TEXMFdoclatexcoolcoolpdf

[43] Societa Italiana di Fisica e Il Nuovo Cimento BolognaGuida per gli autori 1988

[44] Ellen Swanson Arlene OrsquoSean Antoinette SchleyerMathematics into typeAmerican Mathematical Society Providence Rhode Island 2 ed 1999

[45] Till TantauTikZ and pgf mdash Manual for version 110

[46] A Thompson B N TaylorldquoThe NIST Guide for the use of the International System of Unitsrdquo 2008

[47] Edward R TufteThe visual display of quantitative informationGrapphics Press Cheshire Connecticut 2 ed 2007

[48] UNI 2949Diagrammi e cartogrammi Regole generali per lrsquoelaborazioneEnte Italiano di Unificazione Milano 1982

[49] UNI 6015Segnaccento obbligatorio nellrsquoortografia della lingua italianaEnte Italiano di Unificazione Milano 1967

[50] UNI 6017Descrizioni e riferimenti bibliograficiEnte Italiano di Unificazione Milano 1967

[51] UNI 6461Divisione delle parole in fin di lineaEnte Italiano di Unificazione Milano 1969

[52] UNI 7090Metodo di scrittura numerica delle dateEnte Italiano di Unificazione Milano 1973

[53] UNI-ISO 5966Presentazione dei rapporti scientifici e tecniciEnte Italiano di Unificazione Milano 1989

[54] Herbert VossldquoMath moderdquoMathmodepdf in doclatexmathmode 2010

562 BIBLIOGRAFIA

[55] RC Weast MJ Astle WH Beyer (cur)CRC handbook of chemistry and physics CRC Press Boca Raton Florida

cap ldquoSymbols units and nomenclature in physicsrdquo pp F259ndashF29365 ed 1984

[56] Peter WilsonThe memoir class for configurable typesetting mdash User guideThe Herries Press Normandy Park WA 2004In $TEXMFdoclatexmemoirmemmanpdf

[57] Peter WilsonA few notes on book designThe Herries Press Normandy Park WA 2009

[58] Tobias OumltlicherUna (mica tanto) breve introduzione a LATEX2ε Ovvero LATEX2ε in 93

minutiTEX Users GroupIn $TEXMFdoclatexlshort-italianitlshortpdf Traduzione a cura

di G Agostini G Bilotta F Casadei Della Chiesa O de Bari G DelreL Ferrante T Pecorella M Rigido R Zanasi

Indice analitico

Simboli

480 533 535 189 520 504 193 306lt 499gt 499 67$ 66 66amp 67rsquo 504 540rsquo 499rsquorsquo 499( 169 188 516 517 521 531) 169 188 516 517 521 531+ 540 195 500 520- 334 382 457 461 540- 500-- 500--- 500 504 193 520 520lt 540lt 105laquo 499= 504 539 540gt 539gt 105raquo 499 293 306 310 315 500-espressione 94 541Roman 311dottedtocline 314

evenhead 367glossaryfile 301ifdefinable 287ifundefined 287indexfile 301oddhead 367roman 310sptoken 312tfor 312[ 161 170 185 193 517~ 504 85 95 96 185 186 307 476

497ndash499 510 540ndash542 548 185 186 498 548^ 504] 161 170 193 517ˆ 66| 165 166_ 67lsquo 504 540lsquo 499lsquolsquo 499 66 66~ 306 476 500 510 500

A

arsquo 540a= 540alsquo 540AA 504aa 504abovedisplayshortskip 518abovedisplayskip 518accent 456 466acute 165

563

564 INDICE ANALITICO

addcontentsline 320 505addto 310addtocounter 497 524addtolength 526addvspace 533advance 527AE 504ae 504AfterEndPreamble 488afterpage 103 112 324 325 480aleph 166allowdisplaybreak 185allowdisplaybreaks 185alpha 161 162amalg 163and 510 531angle 166ap 171 518appendix 73 279approx 163arabic 525arc 117arc 117arccos 164arcsin 164arctan 164arg 164arraybackslash 104 105arraycolsep 542arrayrulewidth 542arraystretch 97 543Arrowvert 165arrowvert 165ast 163asymp 163AtBeginDocument 312 313Author 402author 252 370 499 510autore 370

B

b 504backmatter 73 274 279 368backslash 165 166bar 165baselineskip 321 357 501 549beamertemplatetransparentco-

vereddynamic 252

begin 70 76ndash81 84 92 93 111114 170 316 372 462486 499 511 512515ndash517 522 533 539540 544ndash546 551

begingroup 84belowdisplayshortskip 518belowdisplayskip 518beta 161 162Beta Code 259bfseries 204 211 556bgroup 84 317bibindent 507bibitem 81ndash83 498 544bibliography 290 295 543bibliographystyle 290BibTeX 306bigbreak 549bigcap 164bigcirc 163bigcup 164Biggl 168biggl 168Biggr 168biggr 168Bigl 168bigl 168 182bigodot 164bigoplus 164bigotimes 164Bigr 168bigr 168 182bigskip 532bigskipamount 549bigsqcup 164bigtriangledown 163bigtriangleup 163biguplus 164bigvee 164bigwedge 164binom 186bm 190 216boldmath 190 215 520boldsymbol 190 216boldymbol 190boolean 530 531bot 166botfigrule 112 533botmark 366 368 369bottomfraction 536 537

INDICE ANALITICO 565

bottomrule 98bowtie 163Box 166box 317boxed 191bracevert 165break 334breve 165bullet 163

C

c 504cap 163capolettera 308capoverso 308caption 88 92 104 107 504

505 535cbezier 116 117cdot 163cdots 519centering 84ndash86 105 499 541cfrac 187chapter 273 274 320 366 368

504 505chapter 63 64chaptermark 368chaptername 504 505char 307 466check 165chi 162chiaveangle 155bb 153clip 154height 154keepaspectratio 154trim 154viewport 154width 153

circ 163circle 115circle 115 116cite 82ndash84 266 291 410 544cleaders 322ndash324cleardoublepage 531 535 549clearpage 112 475 478 480

535 545 549clerapage 480cline 96 97 542

closeout 302clubpenalty 482clubsuit 166colophon 370color 554colorbox 554columnsep 501columnseprule 501columnwidth 153 501 527cong 163contatorebottomnumber 536 537dbltopnumber 536 537footnote 502MaxMatrixCols 191secnumdepth 504table 108tocdepth 504topnumber 536 537totalnumber 537

coprod 164copyright 504cos 164cosh 164cot 164coth 164cs 306 307csc 164csname 330 515cspreto 272cup 163

D

D 98d 504dag 504dagger 163dashbox 115 116dashv 163date 252 370 499 510dbinom 186dblfigrule 112 533dblfloatpagefraction 536 537dblfloatsep 537dbltextfloatsep 537dbltopfraction 536 537ddag 504ddagger 163ddot 165

566 INDICE ANALITICO

ddots 519decimalcomma 312 313DeclareGraphicsRule 145 150DeclareMathOperator 166 186

189DeclareMathOperator 166DeclareMathSizes 556DeclareMathSymbol 312 488DeclareRobustCommand 315 316def 98 287definecolor 554deg 164Delta 161 162delta 162depth 551det 164dfrac 186 188Diamond 166diamond 163diamondsuit 166diff 189dim 164dimexpr 527 528displaybreak 185displaystyle 108 160 399 521div 163divide 527 529do 313documentclass 61 64 70 103

207 284 290 499 506545

dot 165doteq 163dotfill 321 323dots 519doublerulesep 543Downarrow 163 165downarrow 163 165

E

edef 287egroup 84 317ell 166else 312 488em 211emph 47 107 211 501emptyset 166end 63 71 76ndash81 84 92 93 111

114 170 287 316 372

462 486 499 511 512516 517 522 533 535539 540 544ndash546 551

endcsname 330 515endfirsthead 107endfoot 107endgroup 84endhead 107endinput 286 375endlastfoot 107endlist 515endmulticols 321enlargethispage 359 481 502

548 549enlargethispage 502 548enspace 193ensuremath 517epsilon 162eqref 170equal 530equiv 163errorstopmode 491eta 162etichettadescrizione 515evensidemargin 510exists 166 178exp 164expandafter 313 492 515extracolsep 99 108 541

F

fbaselineskip 311fbox 327 550 554 555fboxrule 317 550 555fboxsep 317 550 555fcolorbox 554fi 312 488figurename 504 505filbreak 482 549file

di formato 52di inizializzazione 54

fill 99 526 541finalhyphendemerits 334 475firstmark 366 368 369flat 166floatpagefraction 536 537floatsep 537fontencoding 205

INDICE ANALITICO 567

fontsize 311footnote 87 410 411 456 498

502footnotemark 87 88 502footnoterule 503 533footnotesep 503footnotesize 101 102 207 349

556footnotetext 87 88 498 502footskip 361forall 166frac 186 518frakfamily 263framebox 115 116 317 327 550frenchspacing 422 500frontmatter 73 273 278 368frown 163fussy 548

G

Gamma 161 162gamma 161 162gcd 164gdef 287 312ge 163geq 163gets 163gg 163glossary 300 505 543 547glossaryentry 543glueexpr 527goodbreak 482 549gothfamily 263graphicspath 152grave 165greekfont 269GuIT 62

H

H 504halign 109hangafter 309 373 374hangindent 309 373 374hat 66 165hbadness 460hbar 166hbox 311 327header 361

headsep 361heartsuit 166height 551hfill 323 369 533hline 96 542hom 164hookleftarrow 163hookrightarrow 163hrule 107 323 330hrulefill 321 323hsize 317hskip 322 457hspace 532hspace 532hss 323 515Huge 207 556huge 207 308 556hyphenation 382 458 459 461

497

I

i 413 464 504idotsint 189iff 163ifFamily 267iflanguage 313ifnum 487ifodd 325ifthenelse 530 531ifx 312iiiint 189iiint 189iint 189Im 166imath 166 169immediate 302in 163 178include 67ndash69 71 486 543 545

549includegraphics 67 125 150

151 155 253 328 329417 538 554

includegraphics 153 155includeonly 67ndash69 71 73 543

545indent 85 501index 297 298 300 307 505

508 543 546 547indexentry 297 543

568 INDICE ANALITICO

indexname 320indexspace 319indici 279inf 164infty 166input 67ndash69 71 103 299 302

545 546insertpenalties 479institution 252int 164 189interprete TEX 56intertext 187 501 555intextsep 537iota 162isodd 530isundefined 530it 210item 79ndash81 253 321 457 497

511 512itemindent 512itemsep 512 514itshape 204 211 556

J

j 504jmath 166 169jobname 301ndash303 543Join 163jot 517justify 84

K

kappa 162ker 164Keywords 402kill 539

L

L 504l 504lfigure 314ltable 314label 81 83 87 92 93 170 178

185 502 513 517 523524 535 544

labelsep 512labelwidth 512

Lambda 162lambda 162langle 165LARGE 207 556Large 207 556large 207 556larghezza del font 336LaTeX 500LaTeXe 500lceil 165ldots 519le 163leader 321leaders 322ndash324leadsto 163leavevmode 323left 167 168 182 215Leftarrow 163leftarrow 163lefteqn 517leftharpoondown 163leftharpoonup 163lefthypenmin 462lefthyphenmin 461leftmargin 512 515leftmargini 512 515leftmarginii 512leftmarginiii 512leftmarginiv 512leftmark 366ndash368Leftrightarrow 163leftrightarrow 163legature e segni diacritici 336lemma 369lengthtest 530leq 163let 515lettoken 312lfloor 165lg 164lgroup 165lhd 163lim 164liminf 164limsup 164Line 117line 115linea guida 321linebreak 334 497 548linepenalty 477

INDICE ANALITICO 569

lineskip 479 501 502lineskiplimit 502linespread 209 501linethickness 116linewidth 102 153 317 501list 515listfigurename 310listfiles 546listoffigures 113 309 504listoftables 113 504listparindent 512ll 163llap 309 515lmoustache 165ln 164log 164logo 253long 522Longleftarrow 163longleftarrow 163Longleftrightarrow 163longleftrightarrow 163longmapsto 163Longrightarrow 163longrightarrow 163looseness 359 481 550LTleft 108LTright 108

M

mcomma 312mainmatter 73 273 279 368makeatletter 310makeatother 302makebox 102 115 116 120 327

550makeglossary 300 505 543 547makeindex 297 505 543 546makelabel 513MakeLowercase 264maketaletter 302maketitle 370 510 511MakeUppercase 264 320 367mapsto 163 178 398 399marginpar 88 89 502 538marginparpush 503 539marginparsep 503 539marginparwidth 503 538markboth 320 366ndash369 508 509

markright 320 366ndash368 508 509mathbb 177mathbf 190 520mathcal 193 213 520mathchoice 399 400mathindent 507 518mathit 162 217 520 521mathnormal 399mathop 185 189mathord 312mathpunct 312mathrel 399mathring 165mathrm 520 555mathsf 217 520mathtt 217 520max 164maxdimen 491 528mbox 327 501 550 551mdseries 204 211 556medbreak 549medskip 107 532medskipamount 549mho 166mid 163middle 215midrule 98min 164mkern 520models 163mp 163mskip 520mu 162muexpr 527multicolumn 95 542multiply 527 529multiput 115 116

N

nabla 166natural 166ne 163nearrow 163NeedsTeXFormat 285neg 166neq 163 399newboolean 530 531newcolumntype 105 106 542

570 INDICE ANALITICO

newcommand 185 189 287306ndash309 315 316 322521 547

newcommand 306 369newcounter 497 523newenvironment 316 318 319

522newif 531newlength 497 526newline 95 498 499 548newpage 359 482 532 549newsavebox 327 497newtheorem 278 497 522nexists 178ni 163noalign 107nobreak 334nocite 291 295 296nofiles 543noindent 85 86 317 501nolinebreak 497 548nonfrenchspacing 500nonumber 517nopagebreak 497 548normalbaselineskip 357normalfont 210 556normalmarginpar 503 538normalsize 207 556not 163 177 178 398 399 531notag 179notin 178npar 374nu 162null 127 369numberline 505numerazioneAlph 509alph 509arabic 509fnsymbol 509Roman 509roman 509

numexpr 527nwarrow 163

O

O 504o 504occhiello 370

ocrfamily 238oddsidemargin 509odot 163OE 504oe 504ohm 171 315oint 164oldstylenums 216Omega 162 171omega 162ominus 163onecolumn 509oplus 163opzione

10pt 232 349 358 506 51411pt 207 209 349 506 55512pt 207 349 506a-1b 401a4paper 506a5paper 506ansinew 40 62 66applemac 62b5paper 506charter 217draft 506dvipdfm 416EU1 272executivepaper 506final 506fleqn 507 518garamond 217greek 259 260ibycus 259italian 76 172 193 251 284

311 412 518landscape 246 506latin 263latin1 62 66 252 416 417 467

468 471 473latin9 62 417legalpaper 506leqno 507letterpaper 506LGR 267LMR 267ltxarrows 114notitlepage 507oldstyle 261onecolumn 507oneside 506

INDICE ANALITICO 571

openany 507openbib 290 507openright 507origin 553original 114OT1 63 238 261 466OT2 219pdfa 400polutoniko 260pstarrows 114T1 62 219 236 252 261 267

270 272 463 465ndash467T2A 219 221T2B 219T2C 219titlepage 507 510twocolumn 507twoside 506 508utf8 34 36 62 220 234 411

467 468 471ndash474utf8x 234 264 265utopia 217veryoldstyle 261x-1a 401X2 xxvi 219ndash221

or 531Org 402oslash 163otimes 163oval 115 116overline 519

P

P 504pagebreak 185 475 497 548pagecolor 497 555pagenumbering 497 509pageref 81 83 93 170 517 544pagestyle 508paperheight 528paperwidth 528par 85 86 307 317 321 501 522paragraph 195 504 505parallel 163parbox 127 327 330 522 541

551parindent 501parsep 512 514parshape 373

parskip 479 502part 274 504 505partial 166partname 504 505partopsep 512pdfoutput 56 337ped 171 518perp 163pgfdeclareimage 252 253pgfuseimage 253Phi 162phi 162Pi 162pi 162piedino 17pm 163pmb 190polygon 117polygon 117polyline 117poptabs 540posizione degli oggetti flottanti 92 111 533b 92 111 533H 112h 92 111 533p 92 111 533t 92 111 533

pounds 504Pr 164prec 163preceq 163pretolerance 322 335 477prime 166printglossary 300 303printindex 299 300 546prod 164programma

BIBTEX 83 544propto 163protect 316 498 505protrusione dei segni grafici 336protrusione della punteggiatura 336provideboolean 530 531providecommand 315 318 521providecommand 315ProvidesClass 286ProvidesPackage 285ProvideTextCommandDefault 464Psi 162

572 INDICE ANALITICO

psi 162pushtabs 540put 115ndash117 126

Q

qbezier 116qquad 181 195 202 520quad 181 195 202 520

R

r 504raggedleft 84 89 95 105 499

538 542raggedright 84 89 95 105 499

542raisebox 309 552rangle 165rBrace 127rceil 165Re 166ref 81 83 93 170 502 513 517

523 524 544reflectbox 553refstepcounter 524 544refuso 377relax 287 311 488 527 533renewcommand 97 287 309 310

503 521 537 543renewcommand 309renewenvironment 318 319 522RequirePackage 325resizebox 102 553reversemarginpar 89 503 538rfloor 165rgroup 165rhd 163rho 162right 167 168 182 215Rightarrow 163rightarrow 163rightharpoondown 163rightharpoonup 163righthyphenmin 461 462rightleftharpoons 163rightmargin 512rightmark 366ndash368risposta allrsquoerroree 74

h 73i 74x 73

rlap 399rm 210rmfamily 204 210 211 556rmoustache 165roman 310rotatebox 553rule 97 330 400 551

S

S 504savebox 327sbox 327scalebox 553scriptscriptstyle 160 399

521scriptsize 207 556scriptstyle 160 399 521scshape 204 211 556searrow 163sec 164section 47 274 320 366 368

504 505selectfont 205 311 501selectlanguge 310setbeamercolor 252setboolean 530setbox 317setcounter 191 497 523 524

537setlength 114 526 537setminus 163settodepth 526settoheight 526settowidth 526sfsize 311sfdefault 272sffamily 204 211 556sharp 166shell editor 37shorthandoff 193shorthandon 193shortstack 499showboxbreadth 490 491showboxdepth 490 491showhyphens 456 460SI 173

INDICE ANALITICO 573

Sigma 162sigma 162sim 163simeq 163simulatedSC 311sin 164sinh 164sloppy 548slshape 204 211 556small 101 207 349 556smallbreak 549smallskip 107 532smallskipamount 549smile 163spadesuit 166spazieggiatura 335special 52sqcap 163sqcup 163sqrt 164 519sqsubset 163sqsubseteq 163sqsupset 163sqsupseteq 163ss 504stackrel 520star 163stepcounter 524stile della paginaempty 320 508headings 320 367 368 508myheadings 320 367 368 509plain 320 508

stretch 526stretchandshrink 108strut 96 97 499 503subparagraph 273 504 505subsection 366 504 505subset 163subseteq 163substack 188subsubsection 504 505subtitle 252succ 163succeq 163sum 164sup 164supaginadispari 325supaginapari 325suppressfloats 497 536

supset 163supseteq 163surd 166swabfamily 263swarrow 163symbol 556

T

t 504tabcolsep 100 101 542tablename 504 505tableofcontents 504tabularimage 329 330tag 170 179tan 164tanh 164tau 162testatina 17TeX 306 500text 184 187 188 501 555textasciicircum 67textasciitilde 67textbackslash 67 307textbf 190 204 211 556textcelsius 412textcent 464textcolor 554textcurrency 464textcyrillic 220textdegree 412 464textdollar 67texteuro 235textfloatsep 537textfraction 536 537textfrak 263textgoth 263textheight 154 357 509 528textit 204 521 556textmd 204 556textmho 218textnormal 556textnumero 389textocr 238textohm 171textormath 315 517textrm 204 210 211 501 556textsc 204 306 310 556textsf 204 211 556textsl 204 211 556

574 INDICE ANALITICO

textstyle 124 159 399 521textsuperscript 518textswab 263texttt 203 307 556textunderscore 67textup 204 556textvisiblespace 472textwidth 153 349 501 509

527 528tfrac 186thanks 498 510the 523ndash525Theta 162theta 162thetable 107 108thicklines 116thinlines 116thinspace 193thispagestyle 320 497 508thumbnail 51tilde 165times 163tiny 207 556Title 402title 252 370 499 510titlepage 253titolo 370to 163today 501tolerance 322 335 462 477top 166topcaption 104topfigrule 112 533topfraction 536 537topmargin 510topmark 366 368 369toprule 98topsep 512 514topskip 357 358totalheight 551totalnumber 536traceoff 491 495 496traceon 491 495 496tracingassigns 490tracingcommands 490tracinglostchars 490tracingmacros 489 490tracingonline 489tracingoutput 490tracingpages 490 493

tracingparagraphs 489 493tracingrestores 490tracingstats 489triangle 166ttfamily 203 211 556twocolumn 319 497 509twocolumns 534typein 498 547typeout 498 547

U

U 98 165u 165 504uimm 166 185uishape 210 211unboldmath 190 215 520underline 519unit 171ndash173unitagrave di misura 11big point 11 526bp 526cc 526cicero 12cm 525dd 526em 526ex 526in 525mm 525pc 526pica 12pt 525punto didot 11punto PostScript 11punto tipografico anglosassone

11sp 526

unita 172unitlength 114 127unlhd 163unrhd 163unvbox 317Uparrow 163 165uparrow 163 165uplus 163upshape 204 211 556Upsilon 162upsilon 162usapackage 325

INDICE ANALITICO 575

usebox 327usecounter 513useoutertheme 252usepackage 42 62 83 113 281

286 310 507 545usetheme 252 254

V

V 98 165v 504value 325 524 527 530varDelta 163varepsilon 162varGamma 163varphi 162varpi 162varrho 162varsigma 162varTheta 163vartheta 162vbadness 461vbox 317 327vcenter 327vdash 163vdots 519vec 165vector 115vee 163verb 516verb 516

vert 165vfill 533virgola 312 313 489vline 94 541vspace 85 307 321 532vspace 85 532vtop 327

W

wedge 163whiledo 371 531widehat 165widetilde 165widowpenalty 482width 551wp 166wr 163write18 146ndash148 302

X

xdef 287Xi 162xi 162xleaders 322ndash324xleftarrow 188xrightarrow 188

Z

zeta 162

Indice degli ambienti

A

abstract 274 511align 182 183 185 196alignat 183aligned 179ndash181 185alignedat 185alltt 507 516amsmath 181array 498 499 540 541

B

Bmatrix 191bmatrix 191

C

cases 168 187CD 192 193center 84 86

D

description 81 511 515descrizione 515displaymath 160 161 170 180 517document 64 103 409

E

enumerate 79 513 515eqnarray 178 179 499 517eqnarray 178 179 517equation 170 179 182 517equation 170 180

F

figure 86 111 113 114 151 375536

figwindow 372 373filecontents 499 546flalign 183flushleft 84 415flushright 84frame 247 253

G

gather 182gathered 185glossary 505

I

index 505inserto 374itemize 80

L

letter 498list 512ndash515longtable 107 108

M

math 517matrix 191medaglione 317minipage 88 327 330 502 541 551multicols 319 321 338multline 181 185

576

INDICE DEGLI AMBIENTI 577

P

picture 113 114 116 118 120 121123 125 127 246 254305 347 372 508 552

pmatrix 191

Q

quotation 77quote 76 77

S

sidewaystable 103sintassi 316 317sloppypar 462split 179ndash181 185subequations 179 184 185

T

tabbing 499 539table 86 92 97 98 111 113 127

375 536tabular 88 93 94 101 113 125

498 499 540 541

tabular 93 94 101 540 541tabwindow 373thebibiography 294thebibliography 81 82 289 294

544theglossary 300theindex 299ndash301 318 321 546tikzpicture 121 123 552titlepage 370 510 511

V

verbatim 78 516verse 77Vmatrix 191vmatrix 191

W

window 372ndash374wrapfigure 375wraptable 375

X

xy 193

Indice delle classi

A

arstexnica 55article 61 274 366 504 506

B

beamer 247 274book 18 61 73 79 82 104 257

258 260 273ndash275278ndash280 286 287 302318 349 362 367369ndash371 390 424 506513ndash515 537

L

layaureo 258letter 274 498 504 506ltnews 274ltxdoc 274 506ltxguide 274

M

memoir 258 277 301 303 342 352362 363 368ndash370 421

minimal 274 460 506

N

ncc 278

O

octavo 257 275 354 356 390ottavo 258

P

proc 274 506

R

report 61 273 278 506

S

scrartcl 276scrbook 276scrlettr 276scrlttr2 276scrreprt 276slides 245 246 274 506

T

toptesi 278 279

578

Indice dei file

Estensioni

afm 224 237ndash239

aux 69 543 545

bat 403

bbl 291 543

bmp 148

bst 290

def 465

doc 51 408ndash410 413ndash417 419472 473

docx 418 419

dtx 229 314 331

dvi 240 301 506 543

enc 236 239

eps 142 146ndash149 153

fd 228 238 239

fdd 229

fmt 52

gif 484

glo 301 543

gls 301

gst 303

icc 397

icm 397

idx 297 298 301 302 543

ind 299 301 302 543

ini 54

ist 302

jpg 149

lof 505 543

log 48 53 69 155 166 486 489492 493 539 544 546

lot 505 544

ltx 53 68 543

lyx 50 416

map 230 239

mf 228 235 237 241

mp 145

mps 144

odt 418

pdf 142 143 146 148 149 153240 301 408 472 473506

pfb 224 229ndash231 234 235 237398

pk 229

png 149 484

prj 43

ps 142 148 153 240 403 506

rtf 408 414 419

sty 254 285 310

svg 142

sxw 418

tex 24 25 32 50 51 53 68 152232 401 404 414ndash418463ndash465 467 468 472473 484 498 540 543557

tfm 224 228ndash230 235 237 239241

toc 505 544

ttf 224 238

txt 408

vf 239

xml 418

xmpdata 401

zip 48 228 235

A

athnumdtx 229auctex 23

579

580 INDICE DEI FILE

B

beamerexample2articlepdf 247beamerexample2beamerpdf 247beamerexample5pdf 247beameruserguidepdf 248bk10clo 349 358 514bookcls 286 314

C

cbgreek-fullmap 229 231classicist 302clsguide 275

D

dvipdfmmap 225dvipsnamdef 554

E

ECI-RGBV10icc 397 401encguidepdf 463endnotetex 87endnotessty 87esempio1dvi 65esempio1tex 64eulerpdf 217

F

fntguidedvi 555fntguidepdf 217fontmathltx 217fourier-doc-enpdf 217

G

ggloist 303greekdtx 229greekfdd 229greekins 229greekldf 228GreekFontstxt 229grfguidepdf 553GuidaGuITtex 401GuidaGuITxmpdata 401

H

hyph-ittex 460

I

inddvi 298it_ITaff 41it_ITdic 41italianldf 488 489ithyphtex 460

L

latexfmt 52 56 301 337latexltx 52 54 305 515latin1def 463 464librettopdf 345lmmap 235localmap 243

M

MacroGuidasty 121 308 324374 390

makebsttex 290 294makeindexdvi 298MaroGuidasty 316mathdesign-docpdf 217Mathmodepdf 197memmangst 303merlinmbs 291mymacrossty 287 318 321

N

nuovateoriatex 70

O

ot1encdef 466

P

pagfd 270pagk8rpfb 270PDA_defps 403pdf2pdfa 403pdf2pdfabat 403pdffontsmap 231pdflatexfmt 301

INDICE DEI FILE 581

pdftexmap 225 270pdfxsty 401pict2ecfg 114plainbst 290plaintex 52 54 55 305plain_itabst 290ps2pdfa 403ps2pdfabat 403psfontsmap 225 228 229

R

README 229

S

scrguienpdf 363segnaturepdf 346srcguidegst 303

T

t1encdef 463 465tdspdf 25 29tex256enc 236TeXworksapp 48tigereps 146tttomiacls 286

U

unsrtbst 290updmap-localcfg 230 231 238updmapcfg 231 235 237 398

W

wrapfigsty 375

Indice dei pacchetti

A

afterpage 103 112 324 325alltt 507 516amscd 192amsfonts 161 175 177 216 508amsmath 108 109 159 161 162

166 168 170 175 177179 182 185 186189ndash192 197 216 217221 278 427 428 501507 517 519 555

amssymb 175amsymb 216array 94 104 105 109 327 329

542auctex 39 44 47auto-pst-pdf 120avant 270

B

babel 62 66 68 76 171ndash173 193220 227ndash229 232 251259 260 263 269 278284 306 310 311 313315 320 334 382 412456 458 488 504 507517 518

beamer 246ndash248 252 254 255 274bgreek 260biblatex 296bm 190 216bohairic 222booklet 346booktabs 98

C

calc 523caption 93 275 366ccaption 275circuitikz 121ClassicThesis 276 390 424color 246 366 397 507 553combelow 465cool 427coptic 222 267crop 347curve2e 252 254

D

dcolumn 104

E

ecclesiastic 222edmac 266edstanza 266endnotes 87 266epspdfconversion 146ndash148epstopdf 146 147etoolbox 272 488 489euler 217

F

fancyhdr 275 349 350 361 363508

fixltx2e 369 534float 112 113 371floatrow 113fontenc 252 455 463 557fontspec 58 272

582

INDICE DEI PACCHETTI 583

fourier 217 360frontespizio 279

G

geometry 276 362 363 510ghostscript 31glossary 300graphics 507 508 553graphicx 102 141 145 151 253

308 328 397 508 553guit 62 252

H

hyperref 400 401 416

I

IEEEtrantools 108ifthen 371 508 529 531ImageMagik 150imakeidx 508 547indentfirst 360inputenc 252 412 455 463 467

468 503 540 557

K

koma-script 276kpfonts 261kuvio 192

L

latexsym 161 508layaureo 279 280 355 424layout 284ledmac 266lettrine 308 309 360longtable 103 104ltxsymb 175

M

makeidx 299 508 546mathdesign 217 218 226mathenv 109mdwtab 109metre 267mfnfss 263

microtype 333 337 338 461 462476

morefloats 535 539multicol 319 509 534multirow 95

N

natbib 290

O

opcit 266

P

pdfcomment 146pdfpages 345 346pdfscreen 246pdfslide 246pdfx 398 400ndash402pgf 120 121 123 141 247 248

252 552picinpar 372ndash375pict2e 113 114 117 118 120 249

252 254 284 508 552Pifonts 226poemscol 266polyglossia 269 382powerdot 246 255ppower4 246prosper 246 255psfrag 123pst-pdf 120PSTricks 120 145 146 255 552pxfonts 212 213 217 226

R

rotating 103rotfloat 113

S

sectsty 363seminar 246showidx 508SIstyle 173SIunits 172 173siunitx 173supertabular 103 104

584 INDICE DEI PACCHETTI

T

tabmac 266tabularx 99 104technica 259ndash261teubner 221 232 264ndash267texpower 246textcomp 218 417 464tikz 121titlesec 363 366tocloft 363topcapt 104toptesi 278trace 490 491 494 495txfonts 212 213 217 226type1ec 229 232 506typearea 276 356 362 363

U

unicode-math 58units 172utopia 217

V

varioref 83 284

W

widetable 100wrapfig 372 375

X

xcolor 247 248 397 553xypic 192 193

Indice dei programmie delle distribuzioni

A

AbiWord 414 415 417 418Acrobat Professional 396 400 405Adobe Acrobat 31 151Adobe Reader 31 40 43 151 397

408afm2tfm 239Aleph 59Anteprima 31 151 417apt-get 234Aquamacs 47 48 468 473auctex 44 48

B

bash 243BibDesk 24 291BIBTEX 289 292ndash296

C

Character map 32charco 471context 419 475context-mk-iv 467convert 150CygTeXmacs 49CygWin 43 44 49 236 237 414

471 472

D

dbcontext 419dblatex 419Draw 418

dvipdfm 51 145 146 225 255 395398

dvipdfmx 51 146dvips 31 51 114 120 124 145

146 225 240 255 398419 554

E

ebb 145elatex 55emacs 23 39 42 44 47ndash49 419eps2jpg 149eps2pdf 148eps2png 149epspdf 148epstopdf 146 148etex 52 53 55 59 215 301 327

358 523 526EurKey 34Excel 133excel 417

F

Fink 49fmtutil 56FontForge 59 236 237

G

gedit 45 46gedit-LaTeX-plugin 45 46ghostscript 22 23 31 50 148 395

396 400 402 403ghostview 22 31 148

585

586 INDICE DEI PROGRAMMI E DELLE DISTRIBUZIONI

gimp 31 149 150gnome 45gnuplot 129 131 133GraphicConverter 150gs 145 146gv 31gview 31 50 148 150 153 155

I

iconv 468 471 473ImageMagik 150imakeidx 547Indesign 4inkscape 398

J

java 243jpegtops 31 149

K

Kile 23 43ndash46 48Kpackage 22kpathsea 59kpsewhich 25Kword 414 415 417 418

L

latex 24 40 50ndash54 145 146 238310 405 416 417 419

LaTeXiT 24 25LED 42 43 56lua 59lualatex 411luatex 58 59 411 467 475LYX 50 51 405 416 418

M

MacPorts 49MacTEX 23 291makeindex 298ndash303 307 543 546

547Mappa dei caratteri 32METAPOST 59 123 124 142

144ndash146 149mftrace 236 237 241

MiKTEX xxix 22 25 26 2829 41 42 65 228 231240 284 302 484

MiKTeX Settings 29mktexlsr 231mktextfm 236 237mptopdf 149

N

NeoOffice 455Notepad 43 242

O

Omega 59Open XML converter 418OpenOffice 455OpenOfficeorg 418

P

Paint 149pdfcrop 151pdfelatex 55pdfetex 52 53 55pdfimport 418pdfLaTeX 252pdflatex 24 40 45 48 50ndash54 58

122 146ndash148 221 238261 265 267 270 272310 334 345 396 397400ndash402 405 407 412413 415ndash417 419 461463ndash467 473 484 508543 546

pdftex 52 53 55ndash59 124 146 215225 231 288 301 302305 317 327 334 337346 357 358 371 395398 462 475ndash481 523526ndash529 550

pdftexexe 302pdftops 149perl 243potrace 236 237Preview 31 151 417 418ProTEXt 21 42ps2pdf 31 51 146 148 255 402Python 46

INDICE DEI PROGRAMMI E DELLE DISTRIBUZIONI 587

python 243

Q

QuarkXPress 4

R

rtf2latex2e 414

S

Saxon 419Scribus 4Skim 31 47ndash49 418StarOffice 418SumatraPDF 40 41

T

Task Manager 485teTeX 22tex 52 53 55 56 59 146 301 305

317 357 358 475TeX Live Manager 29TeX Live Utility 24TeX4ht 407texconfig 22texdoc 26texhash 228TEX Live xxix xxx 21ndash25

27ndash30 41 42 49146ndash148 197 219 229243 262 267 302 303421

TeXmacs 49 50TeXmaker 40ndash42 45 46 49TeXmakerX 41 42 45 46 48 49

468TeXnicCenter 42 43TEXShop 23 39 46ndash49 51 56 65

149 268 269 485ndash487

TextEdit 419TextPad 43TextWrangler 48TeXworks 23 41 42 46ndash49 269

467 472 485tlmgr 22 30ttf2pt1 239

U

Ubuntu 23updmap 237 239 398updmap-sys 231

V

vim 44 242

W

Win-iconv 472WinEdt 42 43 149 411Word2LyXMacro 416word2tex 414Writer 415 416 418Writer2LaTeX 415 416 418Writer4LaTeX 416

X

xdvi 47 65 225 240xelatex 58 265 268ndash270 272 382

411Xemacs 44xetex 58 411 467 475xfig 131xpdf 59

Y

YAP 65 225 240

  • Presentazione
  • Composizione sincrona e asincrona
    • Introduzione
    • Il mark-up di LaTeX
    • Scribus un impaginatore Open Source
    • Conclusione
      • Nozioni elementari di tipografia
        • Tipografia e dattilografia
        • Unitagrave di misura tipografiche
        • Misure tipografiche
        • Le particolaritagrave dei caratteri
        • I contrografismi
        • Le parti di alcuni documenti a stampa
        • Osservazioni finali
          • Installare il sistema TeX
            • Installazione su macchine Windows a 32 bit
            • Installazione su Linux
            • Installazione su Macintosh con Mac OS X
            • Gli alberi di cartelle del sistema TeX
              • Gli alberi di cartelle di TeX Live
              • Gli alberi di cartelle di MiKTeX
              • Laggiornamento dei database dei nomi dei file
                • I programmi accessori
                • Le tastiere
                  • Le tastiere delle macchine Windows
                  • Tastiere Linux
                  • Le tastiere sulle macchine Macintosh
                  • Le tastiere virtuali
                    • Gli shell editor
                      • Shell editor multipiattaforma
                      • Shell editor per le macchine Windows
                      • Shell editor per le macchine Linux
                      • Shell editor per le macchine Macintosh
                        • Il sistema TeXmacs
                        • Il sistema LyX
                        • LaTeX e pdfLaTeX
                        • Altri programmi di composizione del sistema TeX
                          • Plain TeX
                          • I programmi estesi
                          • Il mark-up ConTeXt
                          • I programmi Omega e Lambda Aleph e Lamed
                          • Il programma XeTeX
                          • Il programma LuaTeX
                              • LaTeX prime nozioni
                                • Introduzione
                                • Linizio del file sorgente
                                • Il documento
                                • La fine del documento
                                • Un semplice esercizio
                                • I caratteri speciali
                                • Organizzazione dei file sorgente
                                • Gestione degli errori
                                  • LaTeX testi speciali
                                    • Che cosa sono i testi in display
                                    • Le citazioni
                                      • Le citazioni brevi
                                      • Le citazioni lunghe
                                        • Gli elenchi
                                          • Le elencazioni in linea
                                          • Le enumerazioni
                                          • Le elencazioni semplici
                                          • Alcune osservazioni relative alle elencazioni
                                            • Le descrizioni
                                            • Le liste bibliografiche
                                            • I riferimenti incrociati
                                            • Altri testi in display
                                            • Le note
                                              • Le note in calce
                                              • Le note marginali
                                                  • LaTeX tabelle
                                                    • Introduzione
                                                    • Come far flottare una tabella
                                                    • Le didascalie
                                                    • Come comporre la tabella vera e propria
                                                      • I descrittori delle colonne
                                                      • Il raggruppamento delle celle
                                                      • I separatori verticali
                                                      • Come rendere le tabelle un poco piugrave aperte
                                                        • Le tabelle di larghezza specificata
                                                        • Problemi compositivi delle tabelle
                                                          • Tabelle troppo larghe
                                                            • Tabelle troppo lunghe
                                                            • Pacchetti di estensione per le tabelle
                                                              • LaTeX figure
                                                                • Le figure e le immagini
                                                                • Lambiente figure
                                                                  • Controllo dei grandi oggetti flottanti
                                                                  • Modifica degli ambienti flottanti
                                                                    • Lambiente picture
                                                                    • Il pacchetto pgf
                                                                    • Vantaggi dei programmi nativi del sistema TeX
                                                                    • Metapost
                                                                    • Usi insoliti dellambiente picture
                                                                    • Linee guida per la grafica
                                                                      • Preliminari
                                                                      • Programmazione del tempo necessario per la creazione della grafica
                                                                      • Piano di lavoro per creare un grafico
                                                                      • Collegamento fra testo e grafico
                                                                      • Coerenza fra testo e grafica
                                                                      • Legende nei grafici
                                                                      • Diagrammi di vario genere
                                                                      • Attenzione e distrazione
                                                                      • Commenti
                                                                          • LaTeX limportazione di figure esterne
                                                                            • Introduzione
                                                                            • I formati grafici
                                                                              • I formati vettoriali
                                                                              • I formati diversi da quelli vettoriali
                                                                                • I formati accettabili
                                                                                  • I formati accettabili da latex
                                                                                  • I formati accettabili da pdflatex
                                                                                    • Conversione dei formati
                                                                                    • Scontornare le immagini
                                                                                    • Limportazione delle immagini
                                                                                      • LaTeX la matematica semplice
                                                                                        • Introduzione
                                                                                        • I modi matematici
                                                                                        • Alcune annotazioni sulle lettere greche
                                                                                        • Alcune osservazioni sugli operatori funzionali
                                                                                        • Alcune osservazioni sui grandi operatori
                                                                                        • I grandi delimitatori
                                                                                        • Gli accenti matematici
                                                                                        • Gli ambienti matematici
                                                                                        • Le unitagrave di misura
                                                                                          • LaTeX la matematica avanzata
                                                                                            • I simboli di amsmath
                                                                                            • Le estensioni dei font matematici
                                                                                            • I sistemi di equazioni
                                                                                            • Gli ambienti di composizione di amsmath
                                                                                              • Lambiente equation
                                                                                              • Lambiente aligned
                                                                                              • Lambiente split
                                                                                              • Lambiente multline
                                                                                              • Lambiente gather
                                                                                              • Lambiente align
                                                                                              • Lambiente falign
                                                                                              • Lambiente alignat
                                                                                              • Lambiente subequations
                                                                                              • Gli ambienti spezzati
                                                                                                • Altri comandi e ambienti
                                                                                                  • Definizione di operatori funzionali
                                                                                                  • Le frazioni in generale e le frazioni continue
                                                                                                    • Le frazioni e gli altri costrutti simili
                                                                                                    • Le frazioni continue
                                                                                                      • Il testo intercalato alle equazioni
                                                                                                      • Le frecce estensibili
                                                                                                      • Gli indici incolonnati
                                                                                                      • Gli integrali multipli
                                                                                                      • Loperatore differenziale
                                                                                                      • I simboli corsivi matematici in nero
                                                                                                      • Le espressioni matematiche riquadrate
                                                                                                        • Le matrici e i determinanti
                                                                                                        • I diagrammi commutativi
                                                                                                        • La punteggiatura in matematica
                                                                                                        • Conclusioni
                                                                                                          • LaTeX i caratteri da stampa
                                                                                                            • Introduzione
                                                                                                            • Terminologia relativa ai caratteri
                                                                                                            • I comandi per la scelta dei font
                                                                                                              • La scelta del corpo e dellavanzamento di riga
                                                                                                              • La scelta delle altre caratteristiche
                                                                                                                • Altri font diversi da quelli di default
                                                                                                                • I font per la matematica
                                                                                                                • Il Text Companion Font
                                                                                                                • Gli alfabeti diversi da quello latino
                                                                                                                  • Caratteri cirillici
                                                                                                                  • Caratteri greci
                                                                                                                  • Scrivere con altri alfabeti
                                                                                                                    • La gestione dei font
                                                                                                                      • Altri font giagrave disponibili
                                                                                                                      • Installazione di una collezione di font
                                                                                                                        • Installare i font greci
                                                                                                                        • Scrivere in greco
                                                                                                                        • Altri font outline
                                                                                                                        • Installare un set di font da zero
                                                                                                                        • Creare i font vettoriali con mftrace
                                                                                                                        • I file di descrizione dei font
                                                                                                                          • Installare font commerciali
                                                                                                                          • Font e sistema TeX
                                                                                                                            • Conclusioni
                                                                                                                              • LaTeX le presentazioni
                                                                                                                                • Introduzione
                                                                                                                                • Le classi per le presentazioni
                                                                                                                                • Altre classi per le presentazioni
                                                                                                                                • La classe beamer
                                                                                                                                • La documentazione
                                                                                                                                • Una breve presentazione
                                                                                                                                • Creare un nuovo stile
                                                                                                                                • Osservazioni
                                                                                                                                  • LaTeX composizione di testi letterari e filologici
                                                                                                                                    • La composizione di testi letterari
                                                                                                                                    • Font adatti ai testi classici
                                                                                                                                    • La composizione del tedesco classico
                                                                                                                                    • La composizione di testi in lingue classiche
                                                                                                                                      • Scrivere in latino
                                                                                                                                      • Scrivere in greco
                                                                                                                                        • La composizione di testi filologici
                                                                                                                                        • Un esempio di composizione con XeLaTeX
                                                                                                                                          • Esempio di composizione in greco
                                                                                                                                          • XeLaTeX i font Opentype e i font Type 1
                                                                                                                                            • Conclusione
                                                                                                                                              • LaTeX i vari tipi di documenti e stili di composizione
                                                                                                                                                • Introduzione
                                                                                                                                                • Classi standard
                                                                                                                                                • La creazione di nuove classi
                                                                                                                                                • Alcune classi non standard
                                                                                                                                                  • Le classi Komascript
                                                                                                                                                  • La classe memoir
                                                                                                                                                  • La classe ncc
                                                                                                                                                  • Le tesi di laurea e la classe toptesi
                                                                                                                                                  • Lestensione layaureo
                                                                                                                                                    • I pacchetti di estensione
                                                                                                                                                      • Come invocare i file di estensione
                                                                                                                                                      • I vari pacchetti e gli archivi internazionali
                                                                                                                                                        • Come scrivere nuovi pacchetti
                                                                                                                                                        • Non modificare i pacchetti esistenti
                                                                                                                                                          • BibTeX la bibliografia
                                                                                                                                                            • Introduzione
                                                                                                                                                            • Il programma BibTeX
                                                                                                                                                              • Come specificare lo stile bibliografico
                                                                                                                                                              • Come comporre la bibliografia
                                                                                                                                                              • Chiavi e citazioni
                                                                                                                                                                • I database bibliografici
                                                                                                                                                                • Quanti database bibliografici
                                                                                                                                                                  • LaTeX indici e glossari
                                                                                                                                                                    • Introduzione
                                                                                                                                                                    • Lindice analitico
                                                                                                                                                                      • Il programma makeindex
                                                                                                                                                                      • La composizione effettiva dellindice analitico
                                                                                                                                                                        • Il glossario
                                                                                                                                                                        • Modifica dellindice analitico
                                                                                                                                                                        • Indicizzazione sincrona
                                                                                                                                                                          • Indicizzazione sincrona dellindice analitico
                                                                                                                                                                          • Indicizzazione sincrona del glossario
                                                                                                                                                                              • LaTeX nuovi comandi
                                                                                                                                                                                • Introduzione
                                                                                                                                                                                • Le definizioni di comandi nuovi
                                                                                                                                                                                • Ridefinizione di comandi giagrave esistenti
                                                                                                                                                                                • Ridefinizioni di comandi di sistema
                                                                                                                                                                                • Esiste giagrave o non esiste ancora il comando
                                                                                                                                                                                • Definizione di comandi robusti
                                                                                                                                                                                • Definizione di un nuovo ambiente
                                                                                                                                                                                • La ridefinizione di ambienti esistenti
                                                                                                                                                                                • Situazioni particolari
                                                                                                                                                                                  • Le linee guida
                                                                                                                                                                                  • Controllo della posizione di grandi oggetti
                                                                                                                                                                                  • Immagini celle e scatole
                                                                                                                                                                                      • LaTeX la microgiustificazione
                                                                                                                                                                                        • Introduzione
                                                                                                                                                                                        • La composizione dei capoversi
                                                                                                                                                                                        • Metodi per migliorare la giustificazione
                                                                                                                                                                                        • La microgiustificazione
                                                                                                                                                                                          • LaTeX la geometria delle pagine
                                                                                                                                                                                            • Introduzione
                                                                                                                                                                                            • La geometria della pagina
                                                                                                                                                                                              • Il formato delle pagine
                                                                                                                                                                                              • Le segnature e le imposizioni
                                                                                                                                                                                              • I crocini
                                                                                                                                                                                              • Dimensioni della gabbia del testo
                                                                                                                                                                                                • Testatine e piedini il pacchetto fancyhdr
                                                                                                                                                                                                • Le proporzioni della gabbia di testo
                                                                                                                                                                                                • I margini
                                                                                                                                                                                                    • Lavanzamento di riga
                                                                                                                                                                                                    • I capoversi
                                                                                                                                                                                                    • Testatine e piedini
                                                                                                                                                                                                    • I pacchetti di personalizzazione
                                                                                                                                                                                                      • Il pacchetto geometry
                                                                                                                                                                                                      • I titoli e i titolini i pacchetti titlesec fancyhdr sectsty e tocloft
                                                                                                                                                                                                      • Testatine
                                                                                                                                                                                                        • La pagina del titolo
                                                                                                                                                                                                        • Le inserzioni flottanti e non flottanti
                                                                                                                                                                                                          • Gli oggetti flottanti
                                                                                                                                                                                                          • Gli oggetti non flottanti
                                                                                                                                                                                                            • Conclusioni
                                                                                                                                                                                                              • Ortografia tipografica
                                                                                                                                                                                                                • Ortografia testuale
                                                                                                                                                                                                                  • Ortografie alternative
                                                                                                                                                                                                                  • `d eufonica e `i prostetica apostrofi
                                                                                                                                                                                                                    • Accenti
                                                                                                                                                                                                                    • Sillabazione
                                                                                                                                                                                                                    • Punteggiatura
                                                                                                                                                                                                                    • Abbreviazioni
                                                                                                                                                                                                                    • Appellativi e maiuscole
                                                                                                                                                                                                                    • Uso dei font
                                                                                                                                                                                                                    • Le note
                                                                                                                                                                                                                    • Conclusioni
                                                                                                                                                                                                                      • Il formato PDF archiviabile
                                                                                                                                                                                                                        • Le immagini
                                                                                                                                                                                                                        • I font
                                                                                                                                                                                                                        • Gli hyperlink
                                                                                                                                                                                                                        • Generazione di un file PDF archiviabile
                                                                                                                                                                                                                          • La strada maestra
                                                                                                                                                                                                                          • Trasformazione di un file PDF o di un file PS
                                                                                                                                                                                                                            • Conclusioni
                                                                                                                                                                                                                              • Comporre da documenti esterni
                                                                                                                                                                                                                                • Conversione manuale
                                                                                                                                                                                                                                  • Copia e incolla
                                                                                                                                                                                                                                    • Conversione automatica
                                                                                                                                                                                                                                      • Documenti in formato doc
                                                                                                                                                                                                                                      • Documenti in formato PDF
                                                                                                                                                                                                                                      • Documenti in formato XML
                                                                                                                                                                                                                                        • Conclusioni
                                                                                                                                                                                                                                          • Dove documentarsi
                                                                                                                                                                                                                                            • Documentazione sulla tipografia
                                                                                                                                                                                                                                            • Documentazione su LaTeX
                                                                                                                                                                                                                                            • Documentazione sulla grafica
                                                                                                                                                                                                                                            • Documentazione sui singoli pacchetti
                                                                                                                                                                                                                                            • Documentazione su TeX
                                                                                                                                                                                                                                            • Documentazione sui simboli di LaTeX
                                                                                                                                                                                                                                            • Composizione della matematica
                                                                                                                                                                                                                                            • Larchiviazione dei documenti
                                                                                                                                                                                                                                              • Simbologia matematica e fisica
                                                                                                                                                                                                                                                • Unitagrave di misura del Sistema Internazionale
                                                                                                                                                                                                                                                • Simboli matematici nelle scienze
                                                                                                                                                                                                                                                • Nomenclatura
                                                                                                                                                                                                                                                  • Divisione in sillabe
                                                                                                                                                                                                                                                  • Codifica in entrata e codifica in uscita
                                                                                                                                                                                                                                                  • Come fa TeX a comporre le pagine
                                                                                                                                                                                                                                                    • Divisione dei capoversi
                                                                                                                                                                                                                                                    • Divisione della pagine
                                                                                                                                                                                                                                                    • Cosa fare sehellip
                                                                                                                                                                                                                                                      • Collocazione degli oggetti flottanti
                                                                                                                                                                                                                                                      • Le equazioni ingombranti
                                                                                                                                                                                                                                                      • I sezionamenti
                                                                                                                                                                                                                                                        • Conclusioni
                                                                                                                                                                                                                                                          • Trattamento degli errori
                                                                                                                                                                                                                                                            • Errori ortografici nel nomi dei comandi
                                                                                                                                                                                                                                                            • Errore nella ricerca dei file
                                                                                                                                                                                                                                                            • Ciclo infinito
                                                                                                                                                                                                                                                            • Gruppi aperti
                                                                                                                                                                                                                                                            • Mancata apertura di un gruppo
                                                                                                                                                                                                                                                            • Interferenza con le definizioni
                                                                                                                                                                                                                                                            • File personali che provocano conflitti
                                                                                                                                                                                                                                                            • Tracciare loperato del programma
                                                                                                                                                                                                                                                              • I comandi primitivi di tracciamento
                                                                                                                                                                                                                                                              • Il pacchetto trace
                                                                                                                                                                                                                                                                • Costruzione dei capoversi e delle pagine
                                                                                                                                                                                                                                                                • Conclusioni
                                                                                                                                                                                                                                                                  • Riepilogo della sintassi di LaTeX
                                                                                                                                                                                                                                                                    • La struttura del documento
                                                                                                                                                                                                                                                                    • Periodi e capoversi
                                                                                                                                                                                                                                                                      • Periodi
                                                                                                                                                                                                                                                                      • Capoversi
                                                                                                                                                                                                                                                                      • Note in calce
                                                                                                                                                                                                                                                                      • Note marginali
                                                                                                                                                                                                                                                                      • Accenti e simboli speciali
                                                                                                                                                                                                                                                                        • Suddivisione del testo e indici
                                                                                                                                                                                                                                                                          • Comandi di sezionamento
                                                                                                                                                                                                                                                                            • Classi pacchetti e stili delle pagine
                                                                                                                                                                                                                                                                              • Classe del documento
                                                                                                                                                                                                                                                                              • Pacchetti
                                                                                                                                                                                                                                                                              • Stili delle pagine
                                                                                                                                                                                                                                                                              • Il frontespizio
                                                                                                                                                                                                                                                                                • Testi in display
                                                                                                                                                                                                                                                                                  • Citazioni e poemi
                                                                                                                                                                                                                                                                                  • Liste
                                                                                                                                                                                                                                                                                  • Testo composto verbatim
                                                                                                                                                                                                                                                                                    • Formule matematiche
                                                                                                                                                                                                                                                                                      • Formule
                                                                                                                                                                                                                                                                                      • Simboli accenti delimitatori e grandi operatori
                                                                                                                                                                                                                                                                                      • Impilare gli oggetti matematici
                                                                                                                                                                                                                                                                                      • Spaziatura matematica
                                                                                                                                                                                                                                                                                      • Font matematici
                                                                                                                                                                                                                                                                                      • Stili di composizione
                                                                                                                                                                                                                                                                                        • Definizioni numeri e programmazione
                                                                                                                                                                                                                                                                                          • Comandi di definizione
                                                                                                                                                                                                                                                                                          • Comandi per la definizione di ambienti
                                                                                                                                                                                                                                                                                          • Teoremi
                                                                                                                                                                                                                                                                                            • Numeri lunghezze e spazi
                                                                                                                                                                                                                                                                                              • Numeri
                                                                                                                                                                                                                                                                                              • Lunghezze
                                                                                                                                                                                                                                                                                              • Operazioni fra numeri e grandezze
                                                                                                                                                                                                                                                                                              • Il pacchetto ifthen
                                                                                                                                                                                                                                                                                                • Spaziature
                                                                                                                                                                                                                                                                                                • Figure tabelle ed altri oggetti flottanti
                                                                                                                                                                                                                                                                                                  • Figure e tabelle
                                                                                                                                                                                                                                                                                                  • Note marginali
                                                                                                                                                                                                                                                                                                    • Incolonnamenti
                                                                                                                                                                                                                                                                                                      • Lambiente tabbing
                                                                                                                                                                                                                                                                                                      • Gli ambienti array e tabular
                                                                                                                                                                                                                                                                                                        • I file ausiliari e i loro comandi
                                                                                                                                                                                                                                                                                                          • I file del sistema TeX
                                                                                                                                                                                                                                                                                                          • I riferimenti incrociati
                                                                                                                                                                                                                                                                                                          • Bibliografia e citazioni
                                                                                                                                                                                                                                                                                                          • Suddivisione del file sorgente
                                                                                                                                                                                                                                                                                                            • Indice analitico e glossario
                                                                                                                                                                                                                                                                                                              • Indice analitico
                                                                                                                                                                                                                                                                                                              • Glossario
                                                                                                                                                                                                                                                                                                                • Compilazione interattiva
                                                                                                                                                                                                                                                                                                                • Interruzione di riga e di pagina
                                                                                                                                                                                                                                                                                                                  • Interruzione di riga
                                                                                                                                                                                                                                                                                                                  • Interruzione di pagina
                                                                                                                                                                                                                                                                                                                    • Scatole
                                                                                                                                                                                                                                                                                                                    • Disegni e colori
                                                                                                                                                                                                                                                                                                                      • Disegni
                                                                                                                                                                                                                                                                                                                      • Colori e grafica
                                                                                                                                                                                                                                                                                                                        • Selezione dei caratteri
                                                                                                                                                                                                                                                                                                                          • Scegliere famiglia forma e serie
                                                                                                                                                                                                                                                                                                                          • Scegliere il corpo
                                                                                                                                                                                                                                                                                                                          • Corpi testuali e matematici
                                                                                                                                                                                                                                                                                                                          • Simboli speciali
                                                                                                                                                                                                                                                                                                                              • Bibliografia
                                                                                                                                                                                                                                                                                                                              • Indice analitico
                                                                                                                                                                                                                                                                                                                              • Indice degli ambienti
                                                                                                                                                                                                                                                                                                                              • Indice delle classi
                                                                                                                                                                                                                                                                                                                              • Indice dei file
                                                                                                                                                                                                                                                                                                                              • Indice dei pacchetti
                                                                                                                                                                                                                                                                                                                              • Indice dei programmi e delle distribuzioni
Page 2: Introduzione all'arte della composizione tipografica con LaTeX - GuIT

Introduzione allrsquoartedella composizione tipografica

con LATEX

Testatina

Corpo

Piedino

NoteMarginali

8

7

1

3

10

9

11

24

5

6

1 un pollice + hoffset 2 un pollice + voffset3 evensidemargin = 79pt 4 topmargin = 23pt5 headheight = 12pt 6 headsep = 18pt7 textheight = 598pt 8 textwidth = 345pt9 marginparsep = 7pt 10 marginparwidth = 115pt

11 footskip = 25pt marginparpush = 5pt (non mostrato)hoffset = 0pt voffset = 0ptpaperwidth = 597pt paperheight = 845pt

Testatina

Corpo

Piedino

NoteMarginali

8

7

1

3

10

9

11

24

5

6

1 un pollice + hoffset 2 un pollice + voffset3 oddsidemargin = 28pt 4 topmargin = 23pt5 headheight = 12pt 6 headsep = 18pt7 textheight = 598pt 8 textwidth = 345pt9 marginparsep = 7pt 10 marginparwidth = 115pt

11 footskip = 25pt marginparpush = 5pt (non mostrato)hoffset = 0pt voffset = 0ptpaperwidth = 597pt paperheight = 845pt

Introduzione allrsquoartedella composizione tipografica

con LATEX

guIt

Versione A4-097c mdash 20110307

Questrsquoopera egrave soggetta alla Creative Commons Public License versione 25o posteriore Lrsquoenunciato integrale della Licenza in versione 25 egrave reperibileallrsquoindirizzo internet httpcreativecommonsorglicensesby-nc-nd25deedit

bull Si egrave liberi di riprodurre distribuire comunicare al pubblico esporrein pubblico rappresentare eseguire e recitare questrsquoopera alle seguenticondizioni

Attribuzione Bisogna attribuire la paternitagrave dellrsquoopera nei modi indicatidallrsquoautore o da colui al quale egrave stata data questrsquoopera in licenza inquesto caso si tratta del Gruppo degli Utilizzatori Italiani di TEXguIt

Non commerciale Non si puograve usare questrsquoopera per fini commercialiNon opere derivate Non si puograve alterare o trasformare questrsquoopera neacute

usarla per crearne unrsquoaltra

bull Ogni volta che si usa o si distribuisce questrsquoopera lo si deve fare secondo itermini di questa licenza che va comunicata con chiarezza

bull In ogni caso si possono concordare con il titolare dei diritti drsquoautore (ilguIt in questo caso) usi di questrsquoopera in deroga da questa licenza

I nomi commerciali i loghi i trademark appartengono ai rispettivi proprietari

La foto 22 della pagina 10 e le foto delle pagine 13 156 e 328 mdash 330 sono diClaudio BeccariLrsquoimmagine 21 della pagina 10 egrave stata ricavata da un indirizzo Internet non piugravereperibile lrsquoautore sembra essere Hermann Zapf

Coordinatore Claudio BeccariHanno collaborato a questo testo in modo diretto o indiretto Alessandro Andret-ta Luciano Battaia Francesco Biccari Paolo Biffis Riccardo Campana AntonioCervone Gustavo Cevolani Agostino De Marco Roberto Giacomelli TommasoGordini Enrico Gregorio Orlando Iovino Maurizio Himmelmann JeroacutenimoLeal Giuseppe Molteni Lorenzo Pantieri Gianluca Pignalberi Ottavio RizzoSalvatore Schirone Luigi Scarso Andrea Tonelli Emanuele ZannariniUn grazie particolare a Enrico Gregorio

Presentazione

Questo testo egrave rivolto a coloro che amano la bella composizione tipografica etrovano che i testi composti con LATEX siano molto professionali Questo implicache il lettore tipo abbia giagrave un certa dimestichezza con LATEX e abbia lettoalmeno in parte o il testo introduttivo [38] o meglio ancora lrsquoottimo manualedi Lorenzo Pantieri e Tommaso Gordini Lrsquoarte di scrivere con LATEX [39]

Alcune parti di questo testo possono risultare un porsquo ostiche a chi egrave com-pletamente digiuno di programmazione ma si egrave fatto ogni sforzo per renderecomprensibile queste parti anche a chi ha poca dimestichezza con il calcolatoreCerto crsquoegrave un compromesso fra chiarezza e concisione ma si spera che il lettorevorragrave ugualmente comprendere lrsquoimpegno del gruppo di persone che ha dato vitaa questo testo

Questo testo sulla composizione tipografica mediante LATEX egrave stata infattipredisposta da un gruppo di membri del Gruppo degli Utilizzatori Italiani di TEXguIt il cui obiettivo egrave proprio quello di far conoscere il sistema di composizionesviluppato dal matematico Donald E Knuth piugrave di trenta anni fa Non si trattadi un programma di interesse archeologico percheacute esso egrave vivo e vegeto hadato origine a un buon numero di discendenti e alcune sue parti sono usateallrsquointerno di altri programmi di elaborazione di testi senza che gli utenti diquesti programmi lo sappiano

Il sistema TEX egrave stato uno dei primi esempi di software libero questa suaqualitagrave ne ha permesso il contributo creativo eo critico di una moltitudinedi utenti come succede sempre con il software libero per cui si egrave arricchitonel tempo di una moltitudine di estensioni che gli permettono di comporrepraticamente qualsiasi cosa tranne forse certi tipi di pieghevoli pubblicitari

Si tratta di un programma di composizione tipografica non di un impaginato-re questrsquoultimo tipo di programmi consente di agire sul materiale da impaginarecome se fosse una figura da modificare o da adattare anche se svolge in parte lefunzioni di compositore

LATEX un elemento del sistema TEX consente di comporre tipograficamentedei testi contenenti testo corrente sia in prosa sia in poesia scritti in qualunquealfabeto per esempio latino greco cirillico dallrsquoandamento diretto (da sinistraa destra) oppure ebraico arabo dallrsquoandamento inverso (da destra a sinistra)oppure cinese giapponese coreano dallrsquoandamento anche verticale

Puograve gestire font di ogni genere sia quelli a matrici di punti sia i fontPostScript sia i font TrueType OpenType eccetera Tali font possono esserecodificati in varie maniere ma alcuni lsquofiglirsquo di TEX gestiscono anche i fontcodificati secondo la norma UNICODE

La caratteristica che piugrave differenzia il sistema TEX dagli altri elaboratoridi composizione egrave il fatto che per comporre un documento con questo sistema

ix

x PRESENTAZIONE

bisogna agire in tempi diversi per introdurre il testo e per comporlo in questonon egrave molto diverso da certi procedimenti professionali di impaginazione dove iltesto da comporre viene introdotto in un file di solo testo che poi viene in unsecondo tempo fatto fluire dentro il programma di impaginazione assemblandoloinsieme alle figure e allrsquoaltro materiale non testuale per generare il documentolsquofinitorsquo pronto da inviare alla fotoincisione e alla stampa

Invece questo modo di comporre egrave molto diverso da quello dei word processordove il compositore vede direttamente sullo schermo del suo elaboratore il testogiagrave composto cosigrave da poter esaminare immediatamente il frutto del suo lavorolrsquoanalisi di questa differenza nel modo di procedere verragrave svolta nel primo capitolo

Il secondo capitolo daragrave al lettore alcune nozioni di tipografia se non altroper abituarlo alle alcune parole che ricorrono spesso nella descrizione delle varieoperazioni compositive Chi avesse giagrave queste nozioni puograve saltare la letturadi questo capitolo ma se nonostante tutto decidesse di leggerlo potrebbeconstatare che alcune nozioni eo alcuni vocaboli in questa guida sono usati perindicare cose leggermente diverse da quelle che conosceva

Il terzo capitolo esamineragrave le procedure da seguire per procurarsi il softwaredel sistema TEX e per installare i programmi e i file accessori

I capitoli quattro cinque e sei mostrano i primi rudimenti della composizioneasincrona mediante LATEX (parte del sistema TEX) Si parleragrave essenzialmente dicomposizione testuale anche in forma di tabelle

I capitoli sette e otto si dedicano alla creazione manipolazione e inclusionedi figure

I capitoli nove e dieci si dedicano invece alla composizione della matematicase il lettore ha familiaritagrave con manuali di tipografia avragrave notato che lrsquoargomentodella composizione della matematica egrave praticamente assente da quei manualipercheacute si tratta di un tipo di composizione abbastanza specializzato e cheinterviene abbastanza raramente nei libri pubblicati Per altro un documento nonegrave necessariamente un libro puograve essere un rapporto tecnico una tesi di laurea o didottorato un manuale o un prontuario tecnico un articolo scientifico insommauno scritto dove la matematica compare spesso in forma avanzata

Il capitolo undici si riferisce ai caratteri da stampa e ne descrive le particolaritagravei comandi per gestirli i modi per caricare altri caratteri fornisce qualche nozionedi tipografia ma dedica ampio spazio ai font del sistema TEX il quale egrave beneribadirlo non egrave limitato ai font disponibili in prima installazione ma puograve usarevirtualmente qualsiasi font disponibile sia gratuito sia commerciale

Il capitolo dodici si riferisce alla preparazione delle presentazioni ciograve di queidocumenti che verranno verosimilmente usati per essere proiettati mentre se nepresente il contenuto a voce durante una conferenza una lezione o simili

Alla composizione di testi di filologia egrave dedicato il capitolo tredici questi testiverosimilmente non contengono una sola formula matematica ma richiedono untipo di composizione spesso bidimensionale come la matematica che richiededi comprendere a fondo i meccanismi compositivi bidimensionali che richiedonostrumenti particolari che con il sistema TEX prendono il nome di file (o dipacchetti) di estensione

LATEX si distingue da alcuni suoi fratelli figli del sistema TEX per consentire alcompositore oltre che allo scrittore di concentrarsi sul messaggio da trasmettereal lettore invece che sulla forma da dargli cioegrave sulla sua estetica A seconda deldocumento da comporre lo stile di composizione puograve essere molto diverso anchela semplice impaginazione puograve assumere aspetti grafici diversi LATEX consente di

PRESENTAZIONE xi

scegliere in modo globale il tipo di documento e di apportare piccole modifichestilistiche durante la composizione senza che il compositore debba preoccuparsidella nerezza dei caratteri oppure della distanza del numero indicativo di unparagrafo dallrsquoinizio del suo titolino A tutte queste cose pensa la scelta inizialedel tipo di documento e con le opzioni specificate Il capitoli quattordici si occupaappunto di queste cose

Passando ad argomenti piugrave specializzati i capitoli quindici sedici e diciassettesi occupano della preparazione della bibliografia della composizione di indicianalitici e glossari per finire con lrsquoarte di definire nuovi comandi compositivi perrendere piugrave agevole il compito del compositore

Il capitolo diciotto tratta dellrsquoarte della composizione tipografica con LATEXquesto egrave proprio il capitolo che giustifica il titolo di questo manuale vi si parleragravedelle tecniche di cui LATEX o piugrave ancora pdfLATEX dispongono per eseguire lacomposizione tipografica come e meglio della totalitagrave dei word processor e megliodi molti programmi di impaginazione si tratta della microgiustificazione unatecnica a cui ricorrevano fin dallrsquoinizio i prototipografi a cominciare da Gutenbergma di cui si egrave un porsquo persa lrsquoabitudine nel corso dei secoli successivi sia per icosti sia per i vincoli imposti dai caratteri metallici per fortuna la composizioneelettronica egrave svincolata da queste limitazioni ma ovviamente bisogna che ilprogramma di composizione sia stato programmato per la microgiustificazione

Il capitolo diciannove tratta invece del progetto grafico delle pagine e dellestrutture che compongono il documento normalmente queste sono decisioni escelte operate dal grafico editoriale con LATEX spesso siamo noi stessi i graficieditoriali i compositori talvolta anche gli editori dei nostri documenti egrave beneavere anche una buona formazione in questo senso almeno fino al livello diconoscere i problemi senza avere la presunzione di saperli risolvere come unprofessionista Conoscendo i problemi perograve puograve nascere il desiderio di conoscerepiugrave a fondo lrsquoarte tipografica che ci porteragrave non solo ad apprezzare maggiormentei prodotti tipografici ben riusciti ma anche ad arricchire la nostra cultura in unsettore spesso trascurato o considerato erroneamente troppo tecnico per meritareil nome di lsquoartersquo

Ricordiamo per altro che il nome del sistema TEX egrave ottenuto dalle primetre lettere maiuscole della parola greca τ εχνη1 che come ricorda Knuth stessovuol dire arte

Il capitolo venti egrave dedicato allrsquoortografia tipografica oltre alla definizione cheovviamente non contrasta con lrsquoortografia della lingua vengono impostate anchele buone regole per lrsquouso della sillabazione delle forme dei caratteri dellrsquouso dellapunteggiatura dellrsquoelisione e del troncamento sottolineando che la grammaticaconsente numerose varianti ma la buona tipografia predilige lrsquoomogeneitagrave

Il capitolo ventuno egrave dedicato ad un aspetto piuttosto moderno e fortementelegato alla tipografia elettronica vale a dire si occupa del problema dellrsquoarchi-viabilitagrave dei documenti elettronici questa caratteristica richiede strumenti edaccorgimenti particolari che si possono raggiungere con lrsquouso del sistema TEXma che richiedono comunque una speciale attenzione

Il capitolo ventidue riguarda invece un aspetto produttivo che coinvolge latipografia elettronica si tratta del lavoro di assemblaggio dei file da comporrecon il sistema TEX segnatamente con LATEX e pdfLATEX quando i file sorgente

1τ εχνη in Italia viene pronunciata lsquotegravecnersquo in Grecia lsquoteacutechnirsquo in ogni caso quella che sembrauna X nel nome di TEX e di LATEX va pronunciata come una lsquokrsquo o come una forte espirazionenon come una lsquoxrsquo

xii PRESENTAZIONE

non hanno il mark-up di LATEX Si puograve eseguire lrsquoelaborazione manuale ma egravemeglio disporre di adeguati strumenti per la conversione automatica almenoper ottenere un primo approccio al mark-up di LATEX ma con la trasformazionedelle codifiche dei vari caratteri in modo da non alterare il messaggio del testoda comporre e specialmente per non introdurre errori durante il processo diconversione Lrsquoeditoria moderna deve poter usare questi strumenti con cognizionedi causa sia per il lavoro commerciale sia per quello che gradatamente si vaestendendo cioegrave la documentazione libera la produzione di testi liberamentescaricabili dalla rete ma composti con ogni cura al massimo livello qualitativo

Questo testo non egrave un manuale per LATEX ce ne sono di liberi e di commercialiassai validi a questo argomento egrave dedicata la prima appendice Nello stessotempo dicendo che questo non egrave un manuale si vorrebbe sottolineare che leindicazioni qui esposte servono per affrontare la composizione con LATEX con unapproccio che guarda di piugrave alla sostanza alla composizione professionale chenon allrsquoaspetto grafico del singolo dettaglio man mano che questo si presentacome succede spesso invece con i vari word processor

Per esempio in questo testo si parla di lsquoscatolersquo proprio di sfuggita mentrein ogni manuale questo argomento richiede almeno una sezione espressamentededicata loro Cosigrave si parla poco o nulla di contatori o di lunghezze rigide oelastiche sono argomenti importanti ma che servono maggiormente per scriverei programmi le macroistruzioni contenute nei file che specificano lo stile compo-sitivo o nei file che raccolgono le macro personali Durante la composizione nonbisognerebbe mai perdersi in questi dettagli

Piuttosto la programmazione in linguaggio TEX puograve diventare essenzialeper lrsquoutente che deve comporre testi dallo stile insolito o che abbia bisogno distrutture compositive particolari

Qui perograve tranne una esposizione sommaria nel capitolo 17 non si parleragrave diqueste cose ma si rinvia direttamente il lettore a manuali che trattano questoaspetto con maggiore dettaglio (vedi lrsquoappendice A) Si veda piuttosto lrsquoappen-dice G di tipo piugrave manualistico dove sono raccolte commentate modificate leinformazioni che Leslie Lamport ha scritto nel suo manuale [29]

Lrsquoappendice B egrave dedicata alla simbologia e alla nomenclatura delle grandezzefisiche noncheacute ai simboli codificati dalle norme ISO per lrsquouso nella matematicausata dai fisici e dai tecnologi vi sono anche non pochi riferimenti al SistemaInternazionale delle Unitagrave di Misura e alla loro lsquoortografiarsquo

Lrsquoappendice C spiega invece in ogni dettaglio lrsquoalgoritmo che viene usatodai programmi del sistema TEX per dividere le parole in fin di riga questo egraveun procedimento che in italiano funziona impeccabilmente nella totalitagrave deicasi ma egrave bene conoscerne i dettagli per intervenire in quei pochi casi in cui lagiustificazione non viene eseguita perfettamente oppure quando si scrive in unalingua straniera dalle regole piugrave rigide di quelle che valgono per lrsquoitaliano oppureper ricorrere ad una sillabazione italiana diversa da quella prescritta dalla normeUNI ma consentita in casi particolari

Lrsquoappendice D vorrebbe riempire un vuoto di informazione che per usareLATEX va assolutamente colmato Si tratta della distinzione fra la codifica dientrata e di quella di uscita fra la codifica che lrsquoutente tramite i suoi programmiusa per scrivere un testo usando la tastiera e quella che il programma dicomposizione usa in relazione ai font impiegati Bisogna conoscere queste duecodifiche distinguerle e usarle a proposito

PRESENTAZIONE xiii

Lrsquoappendice E molto tecnica cerca di spiegare i dettagli di come ogni motoredi composizione del sistema TEX costruisca i capoversi e costruisca le pagine sitratta di un meccanismo abbastanza complesso me la sua comprensione aiuta acapire percheacute la composizione talvolta sia diversa da come ce la aspetteremmoNormalmente ha ragione il motore di composizione a fare quello che fa matalvolta puograve essere necessaria una piccola dose di aiuto consapevole

Lrsquoappendice G lungi dal rappresentare una semplice traduzione della corri-spondente appendice del manuale [29] di Leslie Lamport il creatore di LATEXpur mantenendone lrsquoimpostazione rappresenta si spera una fonte comoda epratica per rivedere in modo ragionato ma non troppo prolisso la sintassi deivari comandi del mark-up di LATEX In questa parte per la veritagrave si sono saltaterispetto al manuale di Lamport intere parti che oggi sono considerate superateinvece alcune parti sono state estese considerevolmente

Il lettore non si scoraggi se vengono usate molte parole inglesi in un certosenso la cosa egrave voluta percheacute i comandi del mark-up di LATEX sono quasi tuttiformati da parole inglesi o da loro abbreviazioni in ogni punto in cui questicomandi vengono descritti si egrave sempre cercato di associare le parole inglesi allaspiegazione italiana tuttavia non si egrave rifuggiti da alcuni anglismi come lsquoflottantersquocorrispondente a floating ritenuto preferibile rispetto allrsquoitalianissima parolalsquomobilersquo che esprime lo stesso concetto ma forse slegato dai messaggi che LATEXespone sullo schermo durante la sua esecuzione Cosigrave si egrave sistematicamente usatala locuzione di default piuttosto che usare espressioni italiane come lsquopredefinitorsquolsquoda usarsi in mancanza drsquoaltrorsquo lsquose non si egrave specificato diversamentersquo e similiespressioni non completamente equivalenti lrsquouna con lrsquoaltra

Cosigrave sebbene non si sia sicuri di essere stati sempre consistenti egrave stata usatala congiunzione oppositiva lsquoorsquo per indicare il concetto esclusivo di lsquoo questo oquello ma non entrambirsquo e la congiunzione lsquooppurersquo per indicare il concettoinclusivo di lsquoo questo o quello o entrambirsquo La lingua parlata e quella scritte sonoflessibili e talvolta non egrave necessario essere cosigrave precisi ma si cerchi di tenerepresente questo particolare uso delle congiunzioni oppositive

Di fianco a molte figure vi egrave un scritta spesso in verticale con il nomedellrsquoautore e il nome del programma quasi sempre del sistema TEX che lrsquoautoreha usato Questa indicazione non egrave messa vicino alle fotografie oppure alleimmagini tratte da Internet la paternitagrave di queste immagini egrave indicata ovepossibile nella pagina dietro a quella del titolo Per le altre figure oltre a indicarelrsquoautore del disegno mostrato si egrave ritenuto utile indicare anche il programmausato per realizzare il disegno tutti i disegni sono stati realizzati usando comandie mark-up forniti da pacchetti di estensione del programma di composizionequesti pacchetti consentono di eseguire egregiamente molti tipi di disegni senzabisogno di ricorrere a programmi esterni hanno anche il vantaggio di esserestilisticamente compatibili con la tipografia eseguita con LATEX cosa che spessonon egrave possibile ottenere con i normali word processor o con altri programmi didisegno al calcolatore

Indice

Presentazione ix

1 Composizione sincrona e asincrona 111 Introduzione 112 Il mark-up di LATEX 213 Scribus un impaginatore Open Source 414 Conclusione 6

2 Nozioni elementari di tipografia 921 Tipografia e dattilografia 922 Unitagrave di misura tipografiche 1123 Misure tipografiche 1224 Le particolaritagrave dei caratteri 1525 I contrografismi 1726 Le parti di alcuni documenti a stampa 1727 Osservazioni finali 19

3 Installare il sistema TEX 2131 Installazione su macchine Windows a 32 bit 2132 Installazione su Linux 2233 Installazione su Macintosh con Mac OS X 2334 Gli alberi di cartelle del sistema TEX 25

341 Gli alberi di cartelle di TEX Live 26342 Gli alberi di cartelle di MiKTEX 28343 Lrsquoaggiornamento dei database dei nomi dei file 29

35 I programmi accessori 3036 Le tastiere 32

361 Le tastiere delle macchine Windows 32362 Tastiere Linux 35363 Le tastiere sulle macchine Macintosh 36364 Le tastiere virtuali 36

37 Gli shell editor 37371 Shell editor multipiattaforma 39372 Shell editor per le macchine Windows 42373 Shell editor per le macchine Linux 44374 Shell editor per le macchine Macintosh 46

38 Il sistema TeXmacs 4939 Il sistema LyX 50

xv

xvi INDICE

310 LATEX e pdfLATEX 51311 Altri programmi di composizione del sistema TEX 54

3111 Plain TEX 543112 I programmi estesi 553113 Il mark-up ConTEXt 573114 I programmi Omega e Lambda Aleph e Lamed 573115 Il programma X ETEX 583116 Il programma LuaTEX 59

4 LATEX prime nozioni 6141 Introduzione 6142 Lrsquoinizio del file sorgente 6143 Il documento 6344 La fine del documento 6445 Un semplice esercizio 6446 I caratteri speciali 6647 Organizzazione dei file sorgente 6748 Gestione degli errori 73

5 LATEX testi speciali 7551 Che cosa sono i testi in display 7552 Le citazioni 75

521 Le citazioni brevi 76522 Le citazioni lunghe 76

53 Gli elenchi 78531 Le elencazioni in linea 79532 Le enumerazioni 79533 Le elencazioni semplici 80534 Alcune osservazioni relative alle elencazioni 80

54 Le descrizioni 8155 Le liste bibliografiche 8156 I riferimenti incrociati 8357 Altri testi in display 8458 Le note 87

581 Le note in calce 87582 Le note marginali 88

6 LATEX tabelle 9161 Introduzione 9162 Come far flottare una tabella 9263 Le didascalie 9264 Come comporre la tabella vera e propria 93

641 I descrittori delle colonne 94642 Il raggruppamento delle celle 95643 I separatori verticali 96644 Come rendere le tabelle un poco piugrave aperte 97

65 Le tabelle di larghezza specificata 9866 Problemi compositivi delle tabelle 101

661 Tabelle troppo larghe 10167 Tabelle troppo lunghe 103

INDICE xvii

68 Pacchetti di estensione per le tabelle 104

7 LATEX figure 11171 Le figure e le immagini 11172 Lrsquoambiente figure 111

721 Controllo dei grandi oggetti flottanti 112722 Modifica degli ambienti flottanti 112

73 Lrsquoambiente picture 11374 Il pacchetto pgf 12075 Vantaggi dei programmi nativi del sistema TEX 12376 METAPOST 12377 Usi insoliti dellrsquoambiente picture 12578 Linee guida per la grafica 127

781 Preliminari 128782 Programmazione del tempo necessario per la creazione

della grafica 129783 Piano di lavoro per creare un grafico 130784 Collegamento fra testo e grafico 130785 Coerenza fra testo e grafica 131786 Legende nei grafici 132787 Diagrammi di vario genere 133788 Attenzione e distrazione 138789 Commenti 140

8 LATEX lrsquoimportazione di figure esterne 14181 Introduzione 14182 I formati grafici 141

821 I formati vettoriali 141822 I formati diversi da quelli vettoriali 142

83 I formati accettabili 144831 I formati accettabili da latex 145832 I formati accettabili da pdflatex 146

84 Conversione dei formati 14885 Scontornare le immagini 15086 Lrsquoimportazione delle immagini 151

9 LATEX la matematica semplice 15991 Introduzione 15992 I modi matematici 15993 Alcune annotazioni sulle lettere greche 16294 Alcune osservazioni sugli operatori funzionali 16395 Alcune osservazioni sui grandi operatori 16696 I grandi delimitatori 16797 Gli accenti matematici 16898 Gli ambienti matematici 16999 Le unitagrave di misura 170

xviii INDICE

10 LATEX la matematica avanzata 175101 I simboli di amsmath 175102 Le estensioni dei font matematici 177103 I sistemi di equazioni 178104 Gli ambienti di composizione di amsmath 179

1041 Lrsquoambiente equation 1791042 Lrsquoambiente aligned 1801043 Lrsquoambiente split 1801044 Lrsquoambiente multline 1811045 Lrsquoambiente gather 1821046 Lrsquoambiente align 1821047 Lrsquoambiente falign 1831048 Lrsquoambiente alignat 1831049 Lrsquoambiente subequations 18410410Gli ambienti spezzati 185

105 Altri comandi e ambienti 1861051 Definizione di operatori funzionali 1861052 Le frazioni in generale e le frazioni continue 186

10521 Le frazioni e gli altri costrutti simili 18610522 Le frazioni continue 187

1053 Il testo intercalato alle equazioni 1871054 Le frecce estensibili 1881055 Gli indici incolonnati 1881056 Gli integrali multipli 1891057 Lrsquooperatore differenziale 1891058 I simboli corsivi matematici in nero 1901059 Le espressioni matematiche riquadrate 191

106 Le matrici e i determinanti 191107 I diagrammi commutativi 192108 La punteggiatura in matematica 193109 Conclusioni 197

11 LATEX i caratteri da stampa 199111 Introduzione 199112 Terminologia relativa ai caratteri 199113 I comandi per la scelta dei font 207

1131 La scelta del corpo e dellrsquoavanzamento di riga 2071132 La scelta delle altre caratteristiche 210

114 Altri font diversi da quelli di default 212115 I font per la matematica 212116 Il Text Companion Font 218117 Gli alfabeti diversi da quello latino 219

1171 Caratteri cirillici 2191172 Caratteri greci 2211173 Scrivere con altri alfabeti 222

118 La gestione dei font 2241181 Altri font giagrave disponibili 2261182 Installazione di una collezione di font 227

11821 Installare i font greci 22711822 Scrivere in greco 232

INDICE xix

11823 Altri font outline 23411824 Installare un set di font da zero 23511825 Creare i font vettoriali con mftrace 23611826 I file di descrizione dei font 238

1183 Installare font commerciali 2381184 Font e sistema TEX 239

119 Conclusioni 243

12 LATEX le presentazioni 245121 Introduzione 245122 Le classi per le presentazioni 245123 Altre classi per le presentazioni 246124 La classe beamer 247125 La documentazione 248126 Una breve presentazione 248127 Creare un nuovo stile 254128 Osservazioni 255

13 LATEX composizione di testi letterari e filologici 257131 La composizione di testi letterari 257132 Font adatti ai testi classici 261133 La composizione del tedesco classico 262134 La composizione di testi in lingue classiche 263

1341 Scrivere in latino 2631342 Scrivere in greco 264

135 La composizione di testi filologici 265136 Un esempio di composizione con X ELATEX 268

1361 Esempio di composizione in greco 2681362 X ELATEX i font Opentype e i font Type 1 270

137 Conclusione 272

14 LATEX i vari tipi di documenti e stili di composizione 273141 Introduzione 273142 Classi standard 273143 La creazione di nuove classi 275144 Alcune classi non standard 276

1441 Le classi Komascript 2761442 La classe memoir 2771443 La classe ncc 2781444 Le tesi di laurea e la classe toptesi 2781445 Lrsquoestensione layaureo 279

145 I pacchetti di estensione 2811451 Come invocare i file di estensione 2811452 I vari pacchetti e gli archivi internazionali 284

146 Come scrivere nuovi pacchetti 285147 Non modificare i pacchetti esistenti 286

xx INDICE

15 BIBTEX la bibliografia 289151 Introduzione 289152 Il programma BIBTEX 289

1521 Come specificare lo stile bibliografico 2901522 Come comporre la bibliografia 2901523 Chiavi e citazioni 291

153 I database bibliografici 292154 Quanti database bibliografici 295

16 LATEX indici e glossari 297161 Introduzione 297162 Lrsquoindice analitico 297

1621 Il programma makeindex 2981622 La composizione effettiva dellrsquoindice analitico 299

163 Il glossario 299164 Modifica dellrsquoindice analitico 300165 Indicizzazione sincrona 301

1651 Indicizzazione sincrona dellrsquoindice analitico 3021652 Indicizzazione sincrona del glossario 303

17 LATEX nuovi comandi 305171 Introduzione 305172 Le definizioni di comandi nuovi 306173 Ridefinizione di comandi giagrave esistenti 309174 Ridefinizioni di comandi di sistema 310175 Esiste giagrave o non esiste ancora il comando 315176 Definizione di comandi robusti 315177 Definizione di un nuovo ambiente 316178 La ridefinizione di ambienti esistenti 318179 Situazioni particolari 321

1791 Le linee guida 3211792 Controllo della posizione di grandi oggetti 3241793 Immagini celle e scatole 325

18 LATEX la microgiustificazione 333181 Introduzione 333182 La composizione dei capoversi 334183 Metodi per migliorare la giustificazione 335184 La microgiustificazione 336

19 LATEX la geometria delle pagine 341191 Introduzione 341192 La geometria della pagina 343

1921 Il formato delle pagine 3431922 Le segnature e le imposizioni 3441923 I crocini 3471924 Dimensioni della gabbia del testo 348

19241 Testatine e piedini il pacchetto fancyhdr 34919242 Le proporzioni della gabbia di testo 35119243 I margini 352

INDICE xxi

193 Lrsquoavanzamento di riga 357194 I capoversi 359195 Testatine e piedini 361196 I pacchetti di personalizzazione 362

1961 Il pacchetto geometry 3621962 I titoli e i titolini i pacchetti titlesec fancyhdr sectsty

e tocloft 3631963 Testatine 367

197 La pagina del titolo 370198 Le inserzioni flottanti e non flottanti 371

1981 Gli oggetti flottanti 3711982 Gli oggetti non flottanti 372

199 Conclusioni 375

20 Ortografia tipografica 377201 Ortografia testuale 377

2011 Ortografie alternative 3782012 lsquodrsquo eufonica e lsquoirsquo prostetica apostrofi 379

202 Accenti 380203 Sillabazione 381204 Punteggiatura 382205 Abbreviazioni 388206 Appellativi e maiuscole 389207 Uso dei font 390208 Le note 391209 Conclusioni 392

21 Il formato PDF archiviabile 395211 Le immagini 396212 I font 397213 Gli hyperlink 400214 Generazione di un file PDF archiviabile 401

2141 La strada maestra 4012142 Trasformazione di un file PDF o di un file PS 402

215 Conclusioni 405

22 Comporre da documenti esterni 407221 Conversione manuale 407

2211 Copia e incolla 409222 Conversione automatica 414

2221 Documenti in formato doc 4142222 Documenti in formato PDF 4172223 Documenti in formato XML 418

223 Conclusioni 419

A Dove documentarsi 421A1 Documentazione sulla tipografia 421A2 Documentazione su LATEX 423A3 Documentazione sulla grafica 424A4 Documentazione sui singoli pacchetti 425

xxii INDICE

A5 Documentazione su TEX 425A6 Documentazione sui simboli di LATEX 426A7 Composizione della matematica 426A8 Lrsquoarchiviazione dei documenti 428

B Simbologia matematica e fisica 429B1 Unitagrave di misura del Sistema Internazionale 429B2 Simboli matematici nelle scienze 433B3 Nomenclatura 434

C Divisione in sillabe 455

D Codifica in entrata e codifica in uscita 463

E Come fa TEX a comporre le pagine 475E1 Divisione dei capoversi 475E2 Divisione della pagine 478E3 Cosa fare se 479

E31 Collocazione degli oggetti flottanti 480E32 Le equazioni ingombranti 480E33 I sezionamenti 482

E4 Conclusioni 482

F Trattamento degli errori 483F1 Errori ortografici nel nomi dei comandi 483F2 Errore nella ricerca dei file 483F3 Ciclo infinito 485F4 Gruppi aperti 486F5 Mancata apertura di un gruppo 487F6 Interferenza con le definizioni 487F7 File personali che provocano conflitti 488F8 Tracciare lrsquooperato del programma 489

F81 I comandi primitivi di tracciamento 489F82 Il pacchetto trace 490

F9 Costruzione dei capoversi e delle pagine 493F10 Conclusioni 496

G Riepilogo della sintassi di LATEX 497G1 La struttura del documento 499G2 Periodi e capoversi 499

G21 Periodi 499G22 Capoversi 501G23 Note in calce 502G24 Note marginali 502G25 Accenti e simboli speciali 503

G3 Suddivisione del testo e indici 504G31 Comandi di sezionamento 504

G4 Classi pacchetti e stili delle pagine 506G41 Classe del documento 506G42 Pacchetti 507G43 Stili delle pagine 508

INDICE xxiii

G44 Il frontespizio 510G5 Testi in display 511

G51 Citazioni e poemi 511G52 Liste 511G53 Testo composto verbatim 516

G6 Formule matematiche 516G61 Formule 516G62 Simboli accenti delimitatori e grandi operatori 519G63 Impilare gli oggetti matematici 519G64 Spaziatura matematica 520G65 Font matematici 520G66 Stili di composizione 521

G7 Definizioni numeri e programmazione 521G71 Comandi di definizione 521G72 Comandi per la definizione di ambienti 522G73 Teoremi 522

G8 Numeri lunghezze e spazi 523G81 Numeri 523G82 Lunghezze 525G83 Operazioni fra numeri e grandezze 526G84 Il pacchetto ifthen 529

G9 Spaziature 532G10 Figure tabelle ed altri oggetti flottanti 533

G101 Figure e tabelle 533G102 Note marginali 538

G11 Incolonnamenti 539G111 Lrsquoambiente tabbing 539G112 Gli ambienti array e tabular 540

G12 I file ausiliari e i loro comandi 543G121 I file del sistema TEX 543G122 I riferimenti incrociati 544G123 Bibliografia e citazioni 544G124 Suddivisione del file sorgente 545

G13 Indice analitico e glossario 546G131 Indice analitico 546G132 Glossario 547

G14 Compilazione interattiva 547G15 Interruzione di riga e di pagina 548

G151 Interruzione di riga 548G152 Interruzione di pagina 548

G16 Scatole 550G17 Disegni e colori 552

G171 Disegni 552G172 Colori e grafica 552

G18 Selezione dei caratteri 555G181 Scegliere famiglia forma e serie 555G182 Scegliere il corpo 555G183 Corpi testuali e matematici 556G184 Simboli speciali 556

xxiv INDICE

Bibliografia 558

Indice analitico 563

Indice degli ambienti 576

Indice delle classi 578

Indice dei file 579

Indice dei pacchetti 582

Indice dei programmi e delle distribuzioni 585

Elenco delle tabelle

31 Legame fra alcuni comandi di sistema gli interpreti e i formati 54

61 Descrittori delle colonne per le tabelle 9462 Tabella la cui colonna di destra egrave specificata con p80mm 9563 Tabella di larghezza pari alla giustezza del testo ottenuta allar-

gando poco le singole celle 9964 Tabella di larghezza pari alla giustezza del testo ottenuta allar-

gando troppo le singole celle 10065 Tabella di larghezza pari alla giustezza del testo ottenuta allar-

gando lo spazio fra le singole celle 10066 Tabella composta con le estensioni del pacchetto array 106

71 Tabella insolita 12672 Esempio di valutazione di un seminario 134

81 Dimensioni in byte dei file PDF ottenuti compilando il TEXbookcon diversi metodi 146

91 Le lettere greche 16292 Gli operatori di relazione 16393 Gli operatori binari 16394 Gli operatori funzionali 16495 I grandi operatori 16496 I grandi delimitatori 16597 Gli accenti matematici 16598 Altri simboli 166

101 Prima serie di simboli accessibili con il pacchetto amsmath 176102 Seconda serie di simboli accessibili con il pacchetto amsmath 177103 Gli ambienti di allineamento di amsmath 179

111 Istruzioni per la scelta del corpo dei caratteri 207112 Il font latino a 128 caratteri con codifica OT1 208113 Il font cirillico a 128 caratteri con codifica OT2 208114 Il font latino a 256 caratteri con codifica T1 209115 Le varie combinazioni di serie e di forma per le varie famiglie

standard dei font Computer Modern usabili con LATEX 211116 Il corsivo matematico con codifica OML questa polizza contiene

anche le cifre arabe lsquominuscolersquo 214

xxv

xxvi ELENCO DELLE TABELLE

117 La polizza dei simboli matematici con codifica OMS 214118 I segni matematici estensibili con codifica OMX 215119 Il Text Companion Font con codifica TS1 2181110 Il font cirillico esteso con la codifica X2 2201111 Il font greco a 256 caratteri con codifica LGR 2221112 Corrispondenze fra i tasti della tastiera latina e i segni dellrsquoalfa-

beto greco 2321113 Il font latino con codifica LY1 236

131 Formati britannici della pagina 258

171 Tabella in cui lrsquoimmagine e il testo adiacente hanno i punti diriferimento allineati in modo scorretto 328

172 Tabella in cui lrsquoimmagine e il testo adiacente hanno i punti diriferimento allineati correttamente 328

173 Tabella in cui lrsquoimmagine e il testo adiacente hanno i punti diriferimento allineati correttamente e dove uno spazio verticalepari a 08 ex separa lrsquoimmagine dal filetto sovrastante 329

174 Tabella con lrsquoimmagine allineata con la parte superiore delleminuscole della prima riga della seconda colonna 330

191 Formati delle pagine a seconda delle dimensioni del foglio dipartenza e del numero di pieghe 344

192 Giustezze determinate mediante la lunghezza dellrsquoalfabeto 350

B1 Unitagrave fondamentali 429B2 Prefissi decimali 430B3 Prefissi binari 430B4 Unitagrave logaritmiche 430B5 Unitagrave derivate 431B6 Unitagrave di misura legalmente ammesse 432B7 Unitagrave di misura temporaneamente accettate 433B8 Simboli matematici 435B9 Nomenclatura simboli e unitagrave di misura 447

C1 Pattern usati per dividere in sillabe dellrsquoistruzione 459C2 Pattern usati per dividere in sillabe discinesia 459

D1 I 95 caratteri ASCII stampabili 472

G1 I comandi per gli accenti testuali e i simboli speciali di moltelingue straniere 504

G2 Numeri associati al livello di sezionamento 505G3 Parametri nella classe book composta in corpo 10 per gestire gli

oggetti flottanti 537G4 Dichiarazioni per la scelta di famiglia serie e forma 556G5 Corrispondenza fra comandi e dichiarazioni 556G6 Dichiarazioni di corpo 556

Elenco delle figure

11 Semplice esempio di composizione con LATEX 3

21 Dedica a Donald Knuth 1022 Auguri di TUG (TEX Users Group) per il 2003 1023 Confronto relativo fra le varie scale di lunghezza 1224 Caratteristiche dei caratteri mobili 1325 Disposizione delle lettere e degli altri segni negli scomparti di

una cassa usata in una tipografia italiana 14

31 Schermata di LaTeXiT 2432 Schema della tastiera italiana sulle piattaforme Windows 3233 Schema della tastiera configurata con il driver EurKey 3334 Schema della tastiera svizzera sulle piattaforme Windows 3535 Schema della tastiera italiana su Linux senza personalizzazioni 3536 Schema della tastiera USA estesa sul MacBook Pro 36

51 Effetto dellrsquouso del comando centering rispetto allrsquoambientecenter 86

71 Il semplice disegno usato da Leslie Lamport per descrivere lepotenzialitagrave dellrsquoambiente picture 118

72 Alcune curve di Beacutezier di secondo e di terzo grado tracciatenellrsquoambiente picture 118

73 Moto uniformemente accelerato 11974 Un disegno a colori ottenuto con lrsquouso del pacchetto pgf e

lrsquoambiente tikzpicture 12175 Circuito elettronico disegnato usando lrsquoambiente tikzpicture aven-

do caricato lrsquoestensione circuitikz 12276 Una paginetta con lrsquoangolo ripiegato 12377 Un semplice esempio di figura geometrica composta con META-

POST 12478 Esempio di istogramma per presentare il risultato della valuta-

zione di un seminario 13479 Altro esempio di diagramma per presentare il risultato della

valutazione di un seminario 136710 Esempio di diagramma a torta per confrontare le fonti di produ-

zione dellrsquoenergia elettrica in Germania nel 2004 137

81 Confronto sugli effetti dellrsquoingrandimento su due figure simili 144

xxvii

xxviii ELENCO DELLE FIGURE

82 Inclusione e conversione di un file eps 14783 Due foto trattate con diverse chiavi 156

91 Due esempi di strafalcioni giornalistici 172

111 Il carattere metallico della lsquomrsquo 200112 Relazioni fra il corpo lrsquointerlinea e lrsquoavanzamento di riga nel

caso di caratteri elettronici 200113 Composizione normale e sterlineata 201114 Legature antiche 202115 Il simbolo di maschio fortemente ingrandito 206116 Esempi di testi composti con i font Times e Palatino 213117 Il Credo di Nicea in tre lingue che fanno uso di alfabeti diversi 223118 I dingbats creati da Hermann Zapf 227119 Esempio di composizione in greco 2331110 Schema grafico del processo di composizione 2401111 Presentazione allrsquoesterno dei risultati della composizione 2401112 Processi di conversione dei vari formati di uscita dai programmi

di composizione 2411113 Trasformazioni di formato dei font e generazione dei file ausiliari 2421114 Gestione delle mappe dei font 242

121 Otto slide per una presentazione di cinque frame 249

131 Sette contro Tebe 260132 Alcuni alfabeti gotici che includono anche i capilettera ornati 262133 Completamento del file sorgente 270134 Risultato della composizione con X ELATEX 271

141 Tre geometrie di pagina a confronto 280142 Costruzioni geometriche per mettere in relazione lrsquoaltezza del

rettangolo con il lato del poligono regolare sul quale egrave costruito 281

161 Le fasi per la produzione dellrsquoindice analitico 299

171 Alcune proprietagrave delle scatole 326

191 Le imposizioni per generare una segnatura in folio in quarto ein ottavo 347

192 Esempio di crocini predisposti per una tipografia italiana 348193 Costruzione geometrica usata da Gutenberg per determinare le

proporzioni e la posizione della gabbia delle sue famose Bibbie 353194 Determinazione della gabbia e dei margini con il metodo delle

strisce 354195 Confronto fra tre gabbie auree 355

xxix

AvvertenzeIn questo testo si parla di quello che si puograve fare con la ricca dotazione di

programmi e di pacchetti presenti in ogni distribuzione del sistema TEX Ledistribuzioni del sistema TEX gratuite sono essenzialmente due TEX Live eMiKTEX In commercio ci sono diverse altre distribuzioni

Qui ci si riferisce principalmente alla distribuzione del sistema eseguitamediante il DVD prodotto dalla Associazione Internazionale degli Utenti diTEX (TEX Users Group TUG) e ridistribuito anche ai membri dellrsquoAssociazioneItaliana guIt (Gruppo degli Utenti Italiani di TEX e LATEX) Volendo il DVDpuograve venire acquistato ad un costo nominale di US$ 5000 dal sito httpwwwtugorgstore ma nello stesso sito si dice che lrsquoimmagine ISO del discopuograve essere scaricata gratuitamente dal sito stesso Lrsquoimmagine ISO va poimasterizzata su un DVD vergine e usata tranquillamente alla pari del DVDoriginale La distribuzione scaricata dal sito indicato sopra egrave completa e permettelrsquoinstallazione sulle macchine Windows Linux e Macintosh

Anche la distribuzione MiKTEX (valida solo per le macchine Windows) puogravevenire scaricata gratuitamente dal sito httpmiktexorg29setup Piugraveprecisamente da questo sito egrave possibile scaricare dei semplici programmi di instal-lazione uno molto piccolo per installare una versione di base e uno di dimensionimaggiori per scaricare la distribuzione completa Bencheacute la distribuzione di basepossa essere arricchita in modo praticamente automatico via via che lrsquoutenterichiama funzionalitagrave ancora non installate si consiglia vivamente di eseguirelrsquoinstallazione completa

Nel seguito si faragrave riferimento specialmente alla distribuzione TEX Livepercheacute con minime varianti egrave identica per tutte le piattaforme di elaborazionepiugrave comuni Anzi anche per chi lavora su macchine Windows sebbene esistalrsquoeccellente distribuzione MiKTEX espressamente prodotta per lavorare con ivari sistemi operativi della Microsoft si consiglia di installare la versione TEXLive Certe personalizzazioni necessarie per la composizione tipografica di altaqualitagrave diventano relativamente difficili da fare con la distribuzione MiKTEXprevista per utenti ai quali lavorando con un sistema operativo ldquoproprietariordquonon sono concesse troppe personalizzazioni

Nel seguito quando si scriveragrave ctan ci si riferiragrave al Comprehensive TEXArchive Network (la rete degli archivi completi del sistema TEX) questa rete egraveformata da tre server principali dislocati in varie parti del mondo e di un numerosterminato di ldquomirrorrdquo che ne rispecchiano il contenuto I primi sono aggiornatiin modo sincrono ogni notte i secondi sono aggiornati in modo dilazionatodipendente dalla loro politica amministrativa ma generalmente sono moltoaggiornati anche i mirror

Nel seguito quando si useragrave lrsquoindicazione $TEXMF ci si riferiragrave alla cartellao folder che funziona da ldquoradicerdquo per gli ldquoalberirdquo di cartelle del sistema TEXQuesto sistema infatti ha i suoi file collocati in molte cartelle gerarchicamentecollegate fra di loro in strutture ad albero la radice di ciascuno di questi alberi egraveposta nel disco fisso dellrsquoelaboratore in posizioni diverse a seconda della macchinae del sistema operativo Ogni utente conosce la sua macchina e sa dove trovarele cartelle radice dei suoi programmi preferiti

Tuttavia tranne dove indicato in modo esplicito qui si useragrave solo il segno dibarra diritta rsquorsquo come separatore fra i nomi delle cartelle questo egrave il separatorenormale per le macchine che lavorano con i sistemi operativi di tipo UNIX

xxx

incluso il sistema operativo delle macchine Macintosh recenti etichettato conla sigla Mac OS X Nelle macchine Windows il separatore egrave notoriamente labarra rovescia lsquorsquo ma anche questo allrsquointerno dei file che contengono i testi dacomporre con i programmi del sistema TEX va sostituito con la barra normalepoicheacute la barra rovescia per il sistema TEX ha un significato speciale

I lettori ci vorranno perdonare se abbiamo dato la preferenza sia a TEX Livesia alla barra diritta questo egrave anche legato al fatto che come il sistema TEX faparte del software libero cosigrave abbiamo dato la preferenza ai sistemi operativi liberio quasi Ovviamente non crsquoegrave niente di male a servirsi di prodotti commercialiche talvolta offrono qualcosa di piugrave dei prodotti liberi Anche nel campo delledistribuzioni del sistema TEX ci sono diverse distribuzioni commerciali che offronoqualcosa in piugrave Tutti i prodotti commerciali perograve danno qualcosa in meno nelsenso che lrsquoutente egrave vincolato al prodotto e deve talvolta rinunciare alla possibilitagravedi trasferire agevolmente programmi e documenti da una macchina ad unrsquoaltracon un diverso sistema operativo o priva dello stesso prodotto commerciale

Una certa conoscenza preliminare del sistema TEX egrave utile per comprendere afondo questo testo in ogni caso si dagrave per scontato che lrsquoutente conosca bene comelavorare sulla propria macchina di elaborazione e abbia una certa familiaritagravecon lrsquouso della finestra chiamata ldquoTerminalerdquo o ldquoPrompt dei comandirdquo nei varisistemi operativi Talvolta il sistema TEX richiede necessariamente di dare deicomandi in linea scritti cioegrave in una di queste finestre specificatamente destinatead interagire con la macchina mediante comandi scritti senza usare il mouse oaltri comandi ldquoscorciatoiardquo

Capitolo 1

Composizione sincronae asincrona

11 Introduzione

Come si egrave detto i word processor sono programmi per la composizione di testidove le singole parole sono collocate nel testo composto direttamente visibilisullo schermo idealmente quanto si vede sullo schermo dovrebbe andare anchein stampa tale e quale senza modifiche di sorta

Questo genere di programmi prevede una forte interattivitagrave fra compositoree programma di presentazione o di stampa dato il fatto che ogni tasto producesubito un effetto cosigrave come ogni movimento e click del mouse il tipo di compo-sizione che viene prodotto viene detto lsquocomposizione sincronarsquo proprio percheacuteogni azione del compositore si traduce in una immediata variazione del testocomposto

Va da seacute che percheacute il programma sia davvero sincrono e il ritardo fraazione e visualizzazione sia trascurabile la forza del programma deve essereconcentrata nella rapiditagrave della presentazione Tale caratteristica non puograve cheandare a scapito della lsquoperfezionersquo della composizione percheacute questa dipendeda una elaborazione molto piugrave accurata sul testo da comporre Egrave vero cheoggi i programmi di videocomposizione (word processor) sono estremamenterapidi e quindi ogni anno che passa la qualitagrave della loro composizione miglioravistosamente tuttavia il compromesso fra velocitagrave e qualitagrave esiste sempre

La lsquocomposizione asincronarsquo consiste invece nellrsquointrodurre il testo da compor-re in un file senza badare al suo aspetto grafico e nel farlo fluire successivamentedentro un programma di impaginazione dove il compositore puograve agire (anche inun secondo tempo) per modificare interattivamente il solo aspetto grafico Duran-te questo processo puograve accadere di dover modificare la giustezza di alcune linee odi interi capoversi e quindi puograve accadere che le linee facenti parte di un capoversoo lrsquointero capoverso debbano venire ricomposti e giustificati diverse volte senzalimitarsi a ottimizzare la composizione della parte modificata ma prendendo inesame lrsquointero capoverso questo implica lrsquoottimizzazione compositiva dellrsquointerocapoverso non solo una aggiustatina del punto in cui si egrave eseguita la modificaEcco quindi che la composizione avviene in due tempi lrsquointroduzione del testo e

1

2 CAPITOLO 1 COMPOSIZIONE SINCRONA E ASINCRONA

lrsquoottimizzazione della composizione avendo perograve a disposizione lrsquointero testo datrattare

Va da seacute che la composizione asincrona assicura una migliore qualitagrave dicomposizione rispetto a quella sincrona visto che non viene tenuta in nessunconto la velocitagrave di visualizzazione ma la forza compositiva viene concentratasulla qualitagrave

12 Il mark-up di LATEXLATEX appartiene al gruppo di programmi di composizione asincrona ma conalcune particolaritagrave con un editor di testi lrsquoautore o il compositore inserisceil testo in un file che viene successivamente elaborato con LATEX che agisceda impaginatore tuttavia il primo file prodotto mediante lrsquoeditor di testo noncontiene solo il testo in senso stretto ma contiene una serie di informazionidi mark-up che successivamente permettono a LATEX di sapere che cosa stacomponendo in modo da eseguirne la composizione secondo le direttive dellostile del documento che sta elaborando

Il testo prodotto mediante lrsquoeditor di testo egrave quindi una specie di programmache contiene sia il testo da comporre sia i comandi e le altre istruzioni necessarieper il riconoscimento della parte di testo in corso di elaborazione sia le modalitagravecompositive specifiche che il compositore desidera introdurre

Lrsquoutente non deve spaventarsi con le parole lsquolinguaggio di programmazionersquoper lo piugrave si tratta solo di informazioni di mark-up per specificare titoli testispeciali composizione della matematica e simili I comandi e le altre specifica-zioni sono solitamente espresse in inglese (molto semplice ridotto allrsquoessenziale)evitando quasi sempre le abbreviazioni o gli acronimi

Un breve esempio consente di capire meglio il genere di difficoltagrave o megliodi facilitagrave di questo tipo di linguaggio di mark-up

sectionBreve esempio

Il titolo precedente egrave quello di una sezionepiugrave propriamente la parola inglese textitsection intipografia indica ciograve che in italiano viene chiamatotextitparagrafo

Questo secondo capoverso contiene una equazione numeratabeginequationax^2 + bx + c =0endequationEsso contiene anche una tabella centratabegincenter

begintabularlclhlineNome amp relazione amp parentela

hlineGiovanni amp egrave amp il papagrave Ada amp egrave amp la mamma

12 IL MARK-UP DI LATEX 3

11 Breve esempioIl titolo precedente egrave quello di una sezione piugrave propria-mente la parola inglese section in tipografia indica ciograveche in italiano viene chiamato paragrafoQuesto secondo capoverso contiene una equazione

numerataax2 + bx+ c = 0 (12)

Esso contiene anche una tabella centrata

Nome relazione parentelaGiovanni egrave il papagraveAda egrave la mammaMaria egrave la figliaGiuseppe egrave il figlio

Qui crsquoegrave la fine del capoverso che contiene sia una formulasia una tabella

Figura 11 Semplice esempio di composizione con LATEX

Maria amp egrave amp la figlia Giuseppe amp egrave amp il figlio

hlineendtabular

endcenterQui crsquoegrave la fine del capoverso che contienesia una formula sia una tabella

Lrsquoinsieme di testo e comandi contenuti nellrsquoesempio precedente viene poicomposto come nel medaglione della figura 11

Nel capitoli successivi verranno spiegate tutte le informazioni di mark-up ele istruzioni usate nellrsquoesempio Tuttavia anche il lettore con pochi rudimenti diinglese capisce perfettamente quello che il mark-up ha specificato le istruzioniper la composizione del materiale tabulare sono un poco piugrave articolate maguardando il risultato ci si rende conto che non sono poi cosigrave misteriose

4 CAPITOLO 1 COMPOSIZIONE SINCRONA E ASINCRONA

13 Scribus un impaginatore Open SourceDi programmi di impaginazione commerciali ne esistono molti e tutti essendodestinati al lavoro professionale sono anche abbastanza costosi Tuttavia per letre piattaforme di lavoro principali (Windows Linux Macintosh) esiste lrsquoimpagi-natore Scribus che come LATEX egrave open source e chiunque se lo puograve scaricaredalla rete e installarselo

Tuttavia merita riportare un piccola parte della documentazione descrittivadi Scribus qui crsquoegrave una libera traduzione del documento che si trova in rete al-lrsquoindirizzo httpwikiscribusnetindexphpWord_Processing_vs_DTP

Prime indicazioniMolti usano pacchetti di produzione per lrsquoufficio (office suite) come per esempioMicroSoft Officetrade oppure OpenOfficeorgtrade Ma a un certo punto non sonopiugrave soddisfatti delle potenzialitagrave del loro word processor preferito Forse nonpossono apportare correzioni fini al layout oppure alcune loro idee non sonorealizzabili Oppure la rivista allrsquoedicola giugrave allrsquoangolo appare fatta in modo piugraveprofessionale

Perciograve queste persone si guardano attorno per trovare altri applicativi etrovano applicativi professionali per il Desk Top Publishing (DTP) come Quark-XPress Indesign o Scribus Lrsquoultimo in particolare ha un grande vantaggio egrave OpenSource perciograve percheacute non provarlo Dopo aver scaricato il programma dallarete averlo installato e finalmente lanciato lrsquoautore abituato ai word processorresta seduto davanti allo schermo come ldquoun coniglio di fronte a un serpenterdquoNon sa assolutamente che cosa fare Tutto appare cosigrave strano e percheacute nonpuograve semplicemente introdurre il testo nel suo documento Dopo qualche tempocompletamente frustrato lrsquoautore disinstalla Scribus e torna al suo solito wordprocessor accettandone le limitazioni e gli svantaggi

Le principali differenzebull Un applicativo DTP non egrave fatto per creare testo mdash almeno se si sta

pensando a grandi quantitagrave di testo cioegrave molte pagine Per questo scopo egravemeglio usare un word processor o un semplice editore di testi anche senzamark-up Dopo che egrave stato creato un file di testo esso puograve essere importatonellrsquoapplicativo DTP Da questo momento allrsquointerno dellrsquoapplicativo DTPsi eseguono solo delle piccolissime modifiche al testo e si evitano le correzionicorpose usando lo stesso applicativo DTP Questo modo di procedereseparatamente deriva dalle diverse responsabilitagrave dei professionisti unapersona crea il file di testo unrsquoaltra persona ne crea il layout

bull La maggior parte degli applicativi DTP moderni sono basati sulle scatole(frame) Questo significa che tutto il contenuto di una pagina egrave collocatadentro a delle scatole ldquoContenutordquo include il testo le figure i disegni eogni altra cosa che lrsquoautore vuol vedere nella pagina stampata Questescatole sono spostabili con grande libertagrave e possono essere collocate in ognipunto della pagina Il testo di una scatola puograve esser fatto proseguire inunrsquoaltra scatola

13 SCRIBUS UN IMPAGINATORE OPEN SOURCE 5

Si potrebbe obbiettare che anche i word processor hanno le scatole di testoe che egrave possibile importare una figura o un diagramma nel documentoche si sta componendo con il word processor Tuttavia appena si prova amettere con precisione al suo posto lrsquooggetto lo si vuole ridimensionareaumentarne o diminuirne la risoluzione grafica o ruotarlo si scopronorapidamente le grosse limitazioni di queste prestazioni ldquoDTPndashlikerdquo Spesso egravedifficile impedire che si spostino da sole quando si aggiunge altro materialeal documento

bull Una volta che il testo egrave nella sua scatola di testo lo si puograve manipolarecon un altissimo grado di precisione Un word processor puograve mettere adisposizione corpi dei caratteri di 6 7 8 9 10 punti ma con Scribus laprecisione arriva ai decimi di punto Percheacute egrave cosigrave importante In questomodo si puograve far stare un dato testo dentro unrsquoarea di date dimensioni Peresempio potrebbe essere necessario adattare la larghezza di una parolacon un elemento grafico decorativo che vi giace sottoSi ha la possibilitagrave di allungare un font sia orizzontalmente sia vertical-mente aggiustare con precisione lo spazio fra le righe (ancora con unaprecisione di decimi di punto) e lo spazio fra le lettere (accostamenticrenature kerning) Gli applicativi DTP pertanto danno il controllo com-pleto sulla precisa posizione dei caratteri allrsquointerno del testo e consentonodi adattare il testo ad un dato spazio rettangolare o di qualunque altraforma Questi sono esempi dove il controllo preciso sulle dimensioni e sullaposizione egrave assolutamente necessario Si puograve adattare il testo in modo chesegua il profilo di una figura (o anche il contrario mdash si provi ad adattare iltesto al profilo di una figura con un word processor mdash pur tuttavia questapotrebbe essere una specifica di layout del DTP) sovrapporre immagini altesto o viceversa e creare le separazioni di colore per la stampa

bull Negli applicativi DTP la tavolozza dei colori contiene solo qualche dozzinadi colori differenti chi piugrave chi meno Qualunque altro colore si desiderideve essere definito a mano Questo percheacute nella stampa professionalein offset i colori aggiunti possono essere considerati spot color e la cosapotrebbe non essere quello che si desideraIl DTP consente di rendere semitrasparenti le immagini i grafici il testo mdashqualunque cosa si possa mettere in una pagina

bull Si possono definire le cosiddette master page Se una pagina normale usauna master page come base tutti gli elementi giagrave presenti sulla masterpage appaiono anche nella pagina normale Si pensi ad una rivista a unanewsletter dove certi elementi come per esempio le intestazioni i piedini inumeri di pagina i loghi e il layout della pagina sono ripetitivi mantenendoperograve una differenza fra le pagine di sinistra o quelle di destra Allrsquointernodello stesso documento puograve essere definita piugrave di una master page undocumento di molte pagine potrebbe fare uso di un numero considerevoledi master page

Che cosa un applicativo DTP non puograve farebull Un applicativo DTP serve per creare il layout di un documento non serve

per strutturare un testo Non puograve creare riassunti o indici al posto del

6 CAPITOLO 1 COMPOSIZIONE SINCRONA E ASINCRONA

compositore Non ci sono funzioni per aggiungere eo gestire note in calceScribus 13x a differenza di altri DTP puograve generare lrsquoindice

bull In generale egrave difficile connettere un applicativo DTP a dati esterni comequelli contenuti in un database Scribus lo puograve fare mediante un suo plug-inpython destinato a ciograve

Vantaggi degli applicativi DTPbull Controllo assoluto del layout Gli applicativi DTP non rimescolano mai

le scatole per aggiustarle alle necessitagrave del testo o della stampante Alcontrario si devono impostare le specifiche del testo eo della stampante inmodo corretto

bull Il profilo del testo si puograve adattare a qualunque profilo irregolare

bull Le griglie i margini e i righelli sono molto utili per collocare correttamentele scatole

bull Lrsquouscita egrave professionale I formati PDF o PostScript o uno di quei formatinecessari per quelle enormi macchine di stampa offset Con un applicativoDTP li si puograve ottenere tutti

14 ConclusioneSe il lettore di queste note desidera disporre di un potente mezzo per crearedeacutepliant pubblicitari gli strumenti DTP gli sono indispensabili

Ma se il lettore vuole produrre testi scritti e illustrati puograve constatare cheLATEX fa tutto o quasi tutto quello che puograve fare un applicativo DTP ancheadattare il profilo di un testo a quello di una immagine Il posizionamento diogni elemento puograve essere fatto non con la precisione di un decimo di punto macon quella di 1216 di punto Normalmente non egrave necessario gestire scatole ditesto ma lo si puograve fare e in questo testo crsquoegrave anche un esempio Le figure e igrafici sono sempre gestiti come scatole Il colore puograve essere gestito sia con unatavolozza ridotta sia con collezioni di colori abbastanza ampie attraverso unapposito plug-in il quale consente anche di gestire la trasparenza degli oggetticolorati testo incluso

Lrsquouscita puograve essere di default in formato PDF La variazione della larghezzaeo dellrsquoaltezza del corpo dei caratteri viene gestita automaticamente per lacomposizione del testo (microgiustificazione) ma LATEX e i suoi plug-in (esten-sioni) contengono comandi per modificare ruotare e scalare qualunque oggettoil risultato egrave ottimale se lrsquooggetto ha carattere vettoriale

Di default LATEX lavora con quattro master page che distinguono le pagine disinistra da quelle di destra Ma mette a disposizione una vasta serie di comandiper creare e poi usare quante master page si vogliano

LATEX genera gli indici generali e analitici genera i glossari egrave in grado diprodurre diversi livelli di apparati critici nei testi letterari permette di comporrela musica permette di comporre con qualunque alfabeto e con qualunque tipodi font anche retrogrado o ad ideogrammi con i font bitmapped e con quelliscalabili anche se ovviamente ottiene risultati migliori con questi ultimi producecorrettamente i riferimenti incrociati e numera automaticamente tutti gli oggetti

14 CONCLUSIONE 7

numerabili quali i paragrafi le figure le tabelle le formule eccetera egrave ingrado di includere praticamente qualunque immagine in qualunque formato(bersquo talvolta con un porsquo di trasformazioni preliminari) e di produrre disegni altratto o con sfumature di colore che hanno il pregio di venire composti con leparti testuali formate con gli stessi font usati per il testo Inoltre ultimo manon meno importante LATEX non ricorre a formati di file proprietari al fine dipoter mantenere lrsquointeroperabilitagrave con i calcolatori piugrave diversi LATEX insommafa certamente di piugrave di un qualsiasi impaginatore anche se ha un lsquopeccatooriginalersquo secondo gli utenti che non ne apprezzano abbastanza il valore cioegravequello che LATEX non puograve fare essendo un programma di composizione asincronaegrave quello di consentire al compositore di vedere interattivamente il risultato deisuoi comandi e questo come spiegato in precedenza ha molti vantaggi e alcunipiccoli svantaggi

Capitolo 2

Nozioni elementaridi tipografia

Il gergo della tipografia come tutti i gerghi professionali contiene un certonumero di parole che hanno un significato che deriva dalla pratica o dallatradizione

21 Tipografia e dattilografiaBisogna innanzi tutto chiarire che comporre tipograficamente egrave una cosa deltutto diversa dalla composizione con la macchina da scrivere e perciograve anche coni moderni sostituti delle macchine da scrivere costituiti dai word processor

Questi ultimi oggi sono talmente avanzati che danno lrsquoillusione di potereseguire una composizione tipografica ma in realtagrave a parte i compromessi fravelocitagrave di presentazione e perfezione della composizione illustrati nel capitoloprecedente il risultato dipende moltissimo dalla professionalitagrave del ldquotastieristardquocostui o costei egrave la persona che immette il testo e che decide cosa fare chespazi lasciare dove mettere il materiale non testuale (per esempio le fotografie)eccetera Se lrsquooperatore designato con il vecchio termine di tastierista non haabbastanza professionalitagrave il risultato della composizione egrave modesto

La bellezza di una composizione tipografica a parte il testo sta nel fattoche la disposizione del materiale da leggere o da consultare non richiama su diseacute lrsquoattenzione ma mantiene quella sobrietagrave che consente al lettore di recepireil messaggio senza distrazioni inutili e senza zoppicare nel leggere a causa dispaziature irregolari o continui cambiamenti di stile dei caratteri

Vale la pena di osservare la figura 21 dove Herman Zapf un grande dise-gnatore di caratteri contemporaneo usa il suo font Zapfino destinato proprioalle citazioni o alle epigrafi per comporre una frase di Oswald Veblen che esaltala matematica (e il suo linguaggio) proprio il motivo che spinse Knuth a ldquoin-ventarerdquo la tipografia assistita da calcolatore mediante il programma TEX Unaanaloga motivazione celebrativa sta alla base del biglietto di auguri del 2003della figura 22 che lrsquoassociazione internazionale degli utenti di TEX ha inviato aisuoi soci

Egrave chiaro che questa epigrafe e questo biglietto richiamano lrsquoattenzione su diseacute sono fatti apposta Ma un libro completamente composto con il font Zapfino

9

10 CAPITOLO 2 NOZIONI ELEMENTARI DI TIPOGRAFIA

Figura 21 Dedica a Donald Knuth

Figura 22 Auguri di TUG (TEX Users Group) per il 2003

22 UNITAgrave DI MISURA TIPOGRAFICHE 11

sarebbe faticosissimo da leggere e il lettore sarebbe continuamente distratto dalleacrobazie calligrafiche eseguibili con questo font1

La scelta dei font la loro grandezza il loro stile la loro nerezza la sceltadella distanza fra le righe i margini gli spazi bianchi lasciati attorno agli oggettinon testuali sono tutte cose di competenza del ldquodisegnatore editorialerdquo nondi dilettanti come siamo tutti noi LATEX nei limiti di quello che puograve fare unoggetto ldquoinanimatordquo come un programma di elaborazione di dati sostituisce siail disegnatore editoriale sia il tipografo non sostituisce il tastierista se questopensa di essere davanti ad una macchina da scrivere un porsquo sofisticata nonostantetutto quello che LATEX egrave capace di fare la composizione risulteragrave squilibrata edisomogenea in sostanza lrsquoopera di un dilettante

La raccomandazione perciograve egrave la seguente lasciamo LATEX fare il suo mestiereIl risultato saragrave sicuramente migliore di quello che potremmo ottenere con inostri maldestri interventi ldquocorrettivirdquo

22 Unitagrave di misura tipograficheIn tipografia si usano molte unitagrave di misura tipografiche che spesso se non semprenon hanno nulla a che fare con il sistema metrico decimale Essenzialmente tuttoviene misurato in punti tipografici o in loro multipli

Qui nasce una prima difficoltagrave interpretativa Che cosa egrave un punto tipograficoNe esistono almeno tre versioni

1 Il punto tipografico anglosassone definito come la frazione 17227 di unpollice a sua volta pari a 254mm Ne segue che il punto anglosassonecorrisponde a 03514598mm poco piugrave di un terzo di millimetro Questa egravelrsquounitagrave di misura usata da LATEX e ogni informazione metrica che LATEXfornisce al compositore durante la sua esecuzione egrave sempre espressa inquesto tipo di punti tipografici

2 Il punto PostScript corrisponde a 172 di pollice quindi egrave un poco piugravegrande del punto anglosassone percheacute vale 035277778mm La differenzasembra piccola ma quando si parla di diverse decine di punti la differenzaegrave visibile a occhio nudo

3 Il punto didot viene usato nellrsquoEuropa continentale esso corrisponde a03760mm e basta una decina di punti per vedere la differenza ad occhionudo rispetto al punto anglosassone

La figura 23 presenta un confronto (relativo) delle varie scale metriche che sipossono ottenere con le unitagrave di misura descritte in questo paragrafo se la paginaviene stampata in scala 1 1 allora il confronto diventa anche un confrontoassoluto

Non egrave il caso di preoccuparsi di queste differenze tuttavia nasce spontaneala domanda ldquoMa percheacute i tipografi non si sono accordati su una unitagrave metricardquo

1Recentemente chi scrive ha trovato il libretto di Lorenza Bonifazi e si mandi atavola ndash Antiche ricette del Montefeltro Raffaelli Editore Rimini 2006 Il libretto ha la partecontenente le ricette composta con il font Zapfino e per ldquoimpararerdquo a leggerlo ci vuole unpochino Lo scopo dichiarato di usare questo font calligrafico molto ornato egrave quello di renderelrsquoatmosfera originale del quaderno dal quale lrsquoautrice ha ricavato le ricette il quaderno erastato scritto a mano con bella calligrafia da una sua antenata a metagrave del xix secolo

12 CAPITOLO 2 NOZIONI ELEMENTARI DI TIPOGRAFIA

0 50 100mm

CBeccari

ndashpi

ctur

e

0 1 2 3 4 in

0 100 200 300 bp

0 100 200 300 pt

0 5 10 15 20 25 pc

0 100 200 300 dd

0 5 10 15 20 25 cc

Figura 23 Confronto relativo fra le varie scale di lunghezza

Non so se questa risposta sia adatta penso che la tipografia sia unrsquoarte praticatain un ambito piuttosto ristretto dove gli interscambi erano fino alla fine dellrsquo rsquo800abbastanza scarsi quindi la possibilitagrave di fraintendimenti era modesto Ogginel mondo dellrsquoinformatica e della tipografia assistita da calcolatore sarebbedesiderabile una maggiore uniformitagrave Infatti oggi si sta imponendo in tipografiail punto anglosassone e in quella assistita dal calcolatore il punto PostScriptEgrave un peccato che il Sistema Internazionale non sia riuscito nel compito distandardizzare una unitagrave di misura adatta alla tipografia (per esempio lsquoun terzodi millimetrorsquo ma dotato di tutti i multipli e sottomultipli decimali del caso)come invece in parte egrave riuscito a fare con il carato metrico

Per indicare lunghezze maggiori in tipografia si usano multipli duodecimalicome il pica che rappresenta 12 punti anglosassoni o il cicero che rappresenta12 punti didot Bisogna perograve dire che mentre nel Nord America si usa il picacome unitagrave di misura per indicare la giustezza (lunghezza) della riga di stampain Europa e in molte altre parti del mondo piugrave o meno lsquodecimalizzatersquo RegnoUnito compreso la giustezza si indica in millimetri Lo stesso vale per i formatidelle carte da stampa nel Regno Unito sopravvivono denominazioni verbali peri formati dei libri ma poi la carta egrave misurata in millimetri In Italia il cicero egravespesso indicato col nome di lsquorigarsquo salvo poi a non essere piugrave chiaro se si parladi una riga di testo o di una riga alta 12 punti e ai giorni nostri se i 12 puntisiano didot o anglosassoni

23 Misure tipograficheLa grandezza dei caratteri egrave indicata in punti quando si lavorava con i caratterimobili metallici era chiarissimo che cosa volesse dire la parola lsquocorporsquo dei caratteriquesti infatti erano ricavati da blocchetti parallelepipedi di metallo in cui una

23 MISURE TIPOGRAFICHE 13

(a)

altezza del fusto

(b)

larghezza

corpo

(c)

Figura 24 Caratteristiche dei caratteri mobili (a) Visione drsquoinsieme di uncarattere mobile metallico (b) vista laterale del fusto del carattere (c) vistadella faccia con il disegno rovesciato del segno da stampare

delle lunghezze rappresentava lrsquoaltezza del blocchetto su una delle facce di baseera ricavato in rilievo il disegno del segno da stampare Si vedano le indicazionicostruite nella figura 24 dove sono evidenziate le grandezze dei caratteri mobili

La faccia di base aveva una altezza e una larghezza La larghezza era variabilea seconda del segno che il blocchetto conteneva egrave evidente che il blocchetto diuna lsquoMrsquo era molto piugrave largo di quello di una lsquoirsquo Invece lrsquoaltezza era uguale pertutti i blocchetti dello stesso alfabeto o meglio dei blocchetti della stessa lsquocassarsquola cassa era un cassetto diviso in tanti scomparti quanti erano i segni minuscolimaiuscoli segni di interpunzione cifre eccetera che formavano la collezione deicaratteri dello stesso lsquodisegnorsquo la figura 25 mostra la disposizione di una cassaitaliana Bene lrsquoaltezza della base di tutti i blocchetti della stessa cassa formavail corpo e veniva misurato in punti

Allrsquoindirizzo httpwwwyoutubecomuserEleonoraTallonepu si tro-va un breve filmato realizzato da Eleonora Tallone che ldquointervistardquo Enrico Talloneun tipografo artista che compone a mano con caratteri mobili e pubblica testi digrande pregio artistico tipografico Nel filmato si vedono chiaramente non solole casse i caratteri mobili il compositoio ma anche altri strumenti tipograficie almeno una macchina da stampa una platina in funzione Un breve filmatosemplice ed istruttivo

Quindi un carattere di 12 pt era un segno qualunque della cassa il cui bloc-chetto aveva una altezza della faccia di base di 12 punti Questo evidentementenon rappresentava lrsquoaltezza del carattere ma ripeto lrsquoaltezza della faccia delblocchetto Il fatto che i blocchetti avessero le facce di base della stessa altezzapermetteva al compositore di adagiare tutti quelli di una riga sul compositoioe poi di trasferire la riga completa sulla pagina parzialmente composta con lacertezza che tutti i caratteri della riga fossero allineati correttamente

Inoltre il fatto che tutti i blocchetti avessero la stessa altezza come la sivede rappresentata nella figura 24(b) assicurava che essi venissero inchiostratiomogeneamente con i rulli inchiostratori e poi prendessero simultaneamentecontatto con la carta da stampare e ricevessero la stessa pressione dal torchiodi stampa cosigrave da imprimere i segni inchiostrati nella stessa maniera al fine di

14 CAPITOLO 2 NOZIONI ELEMENTARI DI TIPOGRAFIA

CBeccari

ndashpi

ctur

e

A B C D E F G

H I J K L M N O

P Q R S T U V

X Y Z E E Eespo-nenti

a e ı o u aelig œ

( ) sect [ ] AElig ΠC c

a e ı o u amp

a e ı o u k j

a e ı o u mdash laquo raquo fl ffl

ffi qb v c d

ff h

fim n o a

z

yl t u i

x

w W A E I O U

ef g

1 2 3 4 5

6 7 8 9 0

- rsquor s

spfini

p spazimezzani

spazigrossi

(terziroli)quadratini

quadrati

qto

ndi

Figura 25 Disposizione delle lettere e degli altri segni negli scomparti di unacassa usata in una tipografia italiana

assicurare una nerezza omogenea dello stampatoOggi che i caratteri mobili metallici non si usano quasi piugrave che significato

ha il corpo Indica solamente lrsquoaltezza complessiva della riga di testo spaziobianco incluso e in pratica la distanza fra le righe di base di due righe successivequando queste non siano interlineate (nemmeno sterlineate per questo concettosi veda il capitolo 11)

Ecco allora alcuni nuovi termini linea di base interlinea e avanzamento diriga

La linea di base egrave quella linea ideale sopra la quale sembrano appoggiati tuttii segni di una riga sotto alla riga di base sporgono le parti discendenti dei segnicome quelli delle lettere g p q y sopra la linea di base sporgono tutte le letterema alcune come b d f eccetera sono piugrave alte delle altre lettere minuscole comele lettere a c e m n x eccetera Siccome tutte queste minuscole sono altecome una lettera lsquoxrsquo il loro lsquoocchiorsquo (la loro altezza) in LATEX viene indicato conil nome di x-height cioegrave lsquoaltezza della xrsquo

I discendenti sono i tratti delle lettere che sporgono sotto alla linea di base edeterminano la profonditagrave della riga Gli ascendenti sono i tratti delle lettereminuscole che sporgono sopra la linea tangente alla lsquoxrsquo Il piugrave alto ascendente egravespesso quello dalla lettera lsquohrsquo talvolta sporge sopra allrsquoaltezza delle maiuscoletalvolta egrave alto quanto le maiuscole In ogni caso in ogni riga la sua altezzaegrave determinata dallrsquoascendente piugrave alto Non necessariamente la somma dellaprofonditagrave e dellrsquoaltezza di una riga di testo egrave uguale al corpo

Come giagrave detto di fatto il corpo egrave la distanza di due righe di base compostesenza inserire alcuna interlinea Poicheacute non necessariamente una data lineacontiene tutti i caratteri con i discendenti e tutti quelli con gli ascendentiil corpo puograve sembrare maggiore dellrsquoaltezza complessiva di una riga ma ingenerale anche se i segni di due righe successive composte senza interlinea noninterferiscono fra di loro la mancanza di interlinea spesso rende il blocco di testotroppo compatto e faticoso da leggere

24 LE PARTICOLARITAgrave DEI CARATTERI 15

Per questo motivo si inserisce una interlinea di un paio di punti o proporzio-nalmente di piugrave per i corpi piugrave grandi Tradizionalmente lrsquointerlinea era quellastriscia di metallo che veniva inserita fra due righe successive per distanziarle unpoco in inglese sia chiama leading o lead da pronunciare come lsquoleadrsquo (piombo)percheacute queste strisce metalliche erano di piombo (o della stessa lega di piombousata per i caratteri da stampa)

Di conseguenza lrsquoavanzamento di riga rappresenta la distanza effettiva frale linee di base di due righe successive composte interponendo lrsquointerlinea Sidiragrave quindi che un certo testo egrave composto in corpo 1214 per dire che i caratterihanno un corpo di 12 punti e che lrsquoavanzamento di riga egrave di 14 punti il cheimplica la presenza di una interlinea di 2 punti A questo proposito si veda lasituazione appena descritta rappresentata nella figura 112

24 Le particolaritagrave dei caratteriOgnuno avragrave notato che i caratteri da stampa si dividono sostanzialmente in duegrosse categorie ma in realtagrave essi sono distinti da una varietagrave di caratteristicheche permettono moltissime diverse classificazioni

La differenza fra i caratteri usati dalle vecchie macchine da scrivere a spazia-tura fissa e i caratteri da stampa vera e propria a spaziatura variabile credo chesia evidente a tutti Oggi i caratteri a spaziatura fissa sono quasi del tutto scom-parsi ma trovano importanti applicazioni specialmente di carattere informaticoe non solo quando egrave necessario evidenziare con il tipo di segno usato certi scrittitecnici come i brani di linguaggio di programmazione che non devono esseregiustificati e non devono avere nomi o parole chiave divisi in sillabe in fin di rigama la cui spaziatura fissa aiuta il lettore a distinguere le variabili dagli operatoriquindi a leggere il codice con piugrave facilitagrave

I caratteri a spaziatura variabile sono piugrave comodi da usare nei testi giustificatie consentono in generale una lettura piugrave agevole specialmente se sono carattericon grazie Le grazie sono quei piccoli segni solitamente con andamento orizzon-tale alle estremitagrave delle aste che rendono maggiormente definito il contorno deisingoli segni e specialmente le grazie inferiori consentono di allineare meglio ladirezione della lettura lungo la riga di testo Quindi una seconda classificazioneriguarda la presenza di grazie (serif in inglese) o la loro assenza (sanserif )

I caratteri non hanno poi la stessa forma ognuno egrave in grado di distinguere laforma dei caratteri tondi (roman in inglese) dai caratteri inclinati (slanted ininglese) questi a loro volta si distinguono dal fatto che sono ottenuti dal tondosemplicemente inclinando le aste oppure sono disegnati apposta con andamentopiugrave corsivo (italic in inglese) sebbene di questo corsivo sia possibile disporreanche di una versione non inclinata

Inoltre un alfabeto puograve contenere sia le lettere maiuscole sia quelle minu-scole dalla forma completamente distinta da quella delle maiuscole oppure puogravecontenere un alfabeto minuscolo in cui le lettere minuscole assomigliano aduna versione ridotta delle maiuscole in questrsquoultimo caso si egrave in presenza delmaiuscoletto (small caps in inglese)

La nerezza dei segni puograve assumere livelli diversi le collezioni di caratteri piugravericche hanno diverse gradazioni di nero chiarissimo chiaro normale nerettonero nerissimo I font per tipografia assistita dal calcolatore spessissimo hanno

16 CAPITOLO 2 NOZIONI ELEMENTARI DI TIPOGRAFIA

solo una versione normale e una nera ma le collezioni piugrave ricche possono averediverse gradazioni

Per altro gli stessi segni con il medesimo grado di nero possono averedei disegni ristretti (condensed) o allargati (extended) rispetto alla dimensionenormale

Una caratteristica che invece non egrave visibile egrave la codifica questo egrave un concettotipicamente informatico nel senso che ogni segno si trova descritto dentro un fileinsieme agli altri segni dello stesso alfabeto e per recuperare quel segno dal fileegrave necessario conoscere il suo lsquoindirizzorsquo Esistono moltissimi modi di indirizzare icaratteri (i singoli segni) allrsquointerno di un file e la cosa dipende anche dal numerodi segni che il file contiene Oggi la codifica UNICODE permette di avere fileenormi che contengono un numero enorme di segni disegnati in modo piugrave omeno uniforme anche se appartengono ad alfabeti diversi Non egrave raro il casodi file relativi ad una sola collezione che contengono lrsquoalfabeto latino con i suoisegni numerici e di interpunzione lrsquoalfabeto greco lrsquoalfabeto cirillico lrsquoalfabetoebraico lrsquoalfabeto arabo una certa collezione di segni cinesi giapponesi coreaniraccolte di segni speciali come i simboli matematici o i segni astrologici e chipiugrave ne ha piugrave ne metta e non egrave difficile arrivare a qualche decina di migliaia disegni

La codifica egrave importantissima percheacute si scrive assumendo una certa codificae si vede sullo schermo il testo correttamente rappresentato ma poi se si cambiafont si rischia di non avere piugrave la possibilitagrave di decifrare il messaggio a me egravecapitato piugrave di una volta di aprire con Word dei documenti composti con unrsquoaltraversione di Word e trovare che i segni originali erano stati sostituiti dai segnimatematici la lettura evidentemente era diventata impossibile

La cosa piugrave importante per i professionisti che si occupano della graficaeditoriale consiste nella scelta dei font due font di forma tonda diritta nerezzamedia estensione normale con lo stesso corpo e relativi allo stesso alfabetopossono apparire completamente diversi a seconda del rapporto fra lo spessoredelle aste spesse e quelle sottili a seconda della forma delle grazie a secondadellrsquoinclinazione dellrsquoasse ottico (non lrsquoinclinazione delle aste) puograve apparirecompletamente diverso e puograve dare luogo ad una lettura piugrave facile oppure piugravefaticosa se composta in righe con lo stesso avanzamento e della stessa lunghezza

Questo testo egrave composto con i caratteri della collezione Computer Moderncon codifica a 128 caratteri del sistema TEX2 per lo piugrave viene usata la formadi nerezza media e larghezza normale il corpo normalmente usato egrave il corpo10 composto con un avanzamento di riga di 12 punti Talvolta si usa il corsivoper mettere in evidenza delle parole o per scrivere quelle in inglese I titolinidei paragrafi sono scritti in tondo diritto nerissimo esteso in corpo 144 conun avanzamento di 20 punti lrsquoavanzamento dei titolini in realtagrave non egrave moltoimportante percheacute quasi tutti si svolgono su una sola riga

2Inizialmente si era usata la collezione European Computer Modern con codifica a 256caratteri ma poi si egrave ripiegato sulla ldquovecchiardquo collezione con codifica a 128 caratteri percheacutealcune delle persone che hanno collaborato alla stesura si sono trovate con una installazionedel sistema TEX troppo personalizzata al punto da non essere piugrave compatibile con quelladegli altri collaboratori Sono cose che succedono quando si usa uno strumento troppo potenteDopo diverse versioni di questo testo si egrave deciso infine di usare la collezione Latin Modern a256 caratteri lasciando al singolo collaboratore la libertagrave di usare questi font o di escluderliritornando perciograve allrsquouso dei Computer Modern

25 I CONTROGRAFISMI 17

25 I contrografismiLogicamente la pagina stampata contiene i segni che convogliano il messaggioche vengono collettivamente denominati grafismi I contrografismi sono le partidella pagina prive di segni eventualmente sono solo colorati ma svolgono unafunzione essenziale nel disegno grafico della pagina specialmente nella qualitagravedella composizione la cui lettura viene agevolata dal loro uso giudizioso

Non solo lrsquointerlinea egrave un contrografismo ma anche la rientranza dei capoversigli spazi sopra e sotto alle figure alle formule ai titolini i quattro margini diciascuna pagina quello superiore quello esterno quello inferiore e quello interno

Questi ultimi infatti determinano la posizione della gabbia che contiene iltesto e talvolta anche la testatina eo il piedino (lrsquointestazione della pagina e lariga di piegrave di pagina header e footer in inglese) se questi due elementi sonovuoti o quasi vuoti essi contribuiscono piugrave alla grandezza dei margini che allagrandezza della gabbia

I margini specialmente quelli esterni secondo un disegno grafico abbastanzatradizionale quando sono sufficientemente ampi possono accogliere le notemarginali quindi le note possono trovare posto sia in calce alla pagina sia neimargini in qualche scritto di stile criticondashletterario esse possono essere anchecollocate in fondo a ogni capitolo

Ma i margini possono accogliere anche parte delle figure o le didascalie dellefigure non si tratta quindi di spazio lsquosprecatorsquo ma di spazio che oltre a dareun tono alla pagina puograve svolgere funzioni ausiliarie al testo in modo creativo espesso gradevole

26 Le parti di alcuni documenti a stampaUn libro generalmente egrave la forma di stampato piugrave complessa e a questa miriferirograve nel descrivere le parti

Un rapporto egrave uno stampato che puograve assumere la forma di un libretto mageneralmente ha meno pretese stilistiche sia per la relativa brevitagrave sia per ilcontenuto spesso assai tecnico (il che non vuol dire solo ingegneristico ma anchegiuridico economico eccetera)

Lrsquoarticolo egrave invece un tipo di stampato di solito assai breve e molto concisola concisione implica che non viene lsquosprecatarsquo unrsquointera pagina per presentare iltitolo spesso lrsquoarticolo egrave scritto su due colonne il che egrave un artificio per usaregabbie di testo piugrave larghe capaci di contenere colonne con righe relativamentecorte e facili da leggere mentre se fosse composto ad una sola colonna in unagabbia cosigrave larga le righe risulterebbero troppo lunghe e quindi faticose daleggere

Un libro puograve essere confezionato incassato (con copertina rigida) o brossurato(con copertina morbida incollata) allrsquointerno della copertina esso comincia conun foglio generalmente privo di ogni scritto seguito da una pagina sulla cuifacciata di destra (il recto) puograve essere riportato lrsquoocchiello il retro (il verso) egravesempre senza testo la pagina successiva sul recto presenta il titolo mentre sulverso presenta le informazioni di carattere legale richieste appunto dalla legge

La successiva pagina puograve contenere una dedica sul recto mentre sul verso egravesenza testo se la dedica manca manca lrsquointero foglio

18 CAPITOLO 2 NOZIONI ELEMENTARI DI TIPOGRAFIA

Segue poi sul recto del foglio successivo una sezione non numerata general-mente intitolata lsquoPresentazionersquo o con un titolo equivalente Spesso non superauna pagina ma puograve anche occupare qualche pagina

La successiva sezione che si apre sul recto contiene lrsquoindice generale a cuipossono seguire aprendosi sul recto delle pagine lrsquoelenco delle figure lrsquoelencodelle tavole lrsquoelenco delle illustrazioni fuori testo ovviamente la presenza diquesti elenchi dipende dal tipo di libro dal suo contenuto Nei libri di carattereletterario come i romanzi spesso lrsquoindice si trova in fondo al libro e in Italia eraquesta la consuetudine di ogni tipo di libro molte decine di anni fa Oggi moltiromanzi e tutti i libri con indici molto strutturati presentano lrsquoindice nelle primepagine come descritto sopra

LrsquoIntroduzione segue queste parti iniziali ma in Italia il materiale inizialefront matter in inglese termina solitamente prima dellrsquoIntroduzione Le pagineche contengono il materiale iniziale sono generalmente numerate con numeriromani terminato il materiale iniziale la numerazione delle pagine ricominciada 1 e viene scritta con cifre arabe fino alla fine del libro3

Dopo il materiale iniziale comincia il corpo del testo main matter in ingleseIl corpo del libro egrave spesso diviso in parti ma egrave sempre diviso in capitoli ogni

capitolo egrave spesso diviso in sezioni gerarchiche che in italiano si chiamano paragra-fo sottoparagrafo sotto-sottoparagrafo capoverso e sottocapoverso in ingleseesse si chiamano rispettivamente section subsection subsubsection paragraphsubparagraph Si noti la presenza dei falsi amici lsquoparagraforsquo e lsquoparagraphrsquo

Il capoverso egrave quel tratto di testo che comincia (generalmente con unarientranza) con una lettera maiuscola e termina con un lsquopunto e a caporsquo Uncapoverso puograve contenere diversi periodi ciascuno diviso in diverse frasi a lorovolta ma qui si sconfinerebbe nella grammatica della lingua Spesso singoliperiodi o anche solo delle frasi di una certa lunghezza sono numerati e comesotto-capoversi a seconda dello scritto possono chiamarsi versetti oppure commiIn generale i versetti sono solo numerati mentre i commi possono avere ancheun brevissimo titolo in questo caso essi cominciano su una nuova riga di testoma nei testi di carattere legale il ldquocapoversordquo (che allora si chiameragrave lsquoarticolorsquo)viene distinto dal fatto che viene inserito un visibile contrografismo e un titolocome minimo un numero fra un articolo e il successivo

Finito il corpo del testo cioegrave dopo lrsquoultimo capitolo comincia il materialefinale la back matter la cui numerazione araba prosegue quella del corpo deltesto ma la numerazione dei capitoli spesso chiamati lsquoappendicirsquo ricominciada 1 o meglio da A visto che si usa una numerazione diversa per esempioletterale ma mentre i capitoli e le parti cominciano sempre sul recto delle paginenel materiale finale i capitoli possono cominciare anche sul verso

Il materiale finale contiene la Bibliografia gli eventuali glossari le appendici(capitoli numerati con lettere) e termina se ci sono con uno o piugrave indicianalitici i quali vengono evidentemente composti per ultimi per evitare che leloro informazioni siano errate a causa delle correzioni eventualmente apportatenel corpo del testo

Lrsquoultimissima pagina sul verso potrebbe contenere il colophon una paginacioegrave nella quale sono descritte le particolaritagrave compositive del testo i materiali

3LATEX di default usa i numeri romani minuscoli scrivendo per esempio lrsquoequivalente di1666 come lsquomdclxvirsquo in Europa tranne nelle isole britanniche generalmente si preferisce ilmaiuscoletto questa modifica alla classe book egrave una delle pochissime che sono state eseguiteper la composizione di questo testo

27 OSSERVAZIONI FINALI 19

usati e simili altre informazioni di carattere tipografico Vengono poi lasciate unpaio di pagine bianche per poter inserire i risguardi posteriori a cui egrave incollata laparte posteriore della copertina

Per ovvi motivi economici le varie pagine di un libro sono ottenute piegando uncerto numero di volte dei grandi fogli queste segnature contengono evidentementeun numero di facciate pari ad una potenza di 2 ci saranno perciograve libri in ottaviin sedicesimi in trentaduesimi raramente con un numero di facciate superiorepercheacute lo spessore delle segnature produrrebbe problemi4 Resta il fatto che toltii risguardi le pagine interne devono essere un multiplo del numero di pagine diuna segnatura al massimo lrsquoultima segnatura di un libro formato da segnaturedi 32 pagine potragrave essere una segnatura da 16 pagine o anche di 8 pagine maquesto aumenta leggermente i costi di produzione Nel predisporre la produzionedi un libro le tipografie generalmente sono piugrave attente al numero di pagineche non al loro contenuto (il contenuto egrave responsabilitagrave dellrsquoautore e della casaeditrice) ma egrave bene che anche lrsquoautore conosca questi problemi in modo dasapersi regolare se deve produrre un testo pronto per la stampa cioegrave un file PDFda trasmettere alla tipografia che non vi mette mano se non per ottenere dal filele lastre per la stampa delle due facce dei grandi fogli che formeranno ciascunasegnatura

27 Osservazioni finaliEgrave chiaro che queste poche pagine non sono in grado di dare altro che una brevepanoramica della terminologia tipografica ma spero che il lettore con questepoche conoscenze sia stimolato ad osservare con piugrave attenzione i libri che ha permano e cerchi di valutare i vari elementi descritti sia in relazione ai caratterisia in relazione agli spazi e alla suddivisione dello stampato

I nomi inglesi che ho indicato servono anche per conoscere il significato dimolti comandi o istruzioni del linguaggio LATEX che usa quelle parole o quellebrevi locuzioni ridotte ad una sola stringa senza spazi per indicare esattamentequegli oggetti individuati dai nomi inglesi

4Con particolari piegature si potrebbero avere anche segnature il cui numero di facciatecorrisponde ad una potenza di due moltiplicata per tre per esempio si potrebbero averesegnature di 6 pagine di 12 pagine eccetera questi tipi di piegature non sono molto frequentinei libri ma si trovano usate in fascicoletti propagandistici e altri simili opuscoli

Capitolo 3

Installare il sistema TEX

Lrsquoinstallazione del sistema TEX puograve essere molto semplice o molto complicatadipende da quali strumenti si usano e da come lrsquoutente sa usare efficacemente ilsistema operativo del proprio PC o laptop

Si distinguono tre casi

1 Sistemi operativi Windows da Windows 98 in poi con processore a 32 bit

2 Sistemi operativi Linux

3 Sistema operativo Mac OS X di qualunque sotto-versione

Qui si parleragrave delle versioni freeware per le versioni commerciali lrsquoutente devevalutare bene il rapporto prestazioniprezzo in relazione alle proprie esigenzeProbabilmente egrave preferibile cominciare con una versione gratuita per poi passaread una versione commerciale se e quando si saragrave constatata le reale necessitagravedi quelle caratteristiche in piugrave che la versione commerciale offre rispetto alleversioni gratuite

Va notato che lrsquoorganizzazione degli utenti di TEX TEX Users Group (TUG)offre la possibilitagrave di scaricare dal suo sito wwwtugorg lrsquoimmagine del discoTEX Live che comunque viene inviato gratuitamente a tutti i suoi soci questodisco dati i tempi per il download puograve essere anche ordinato alla sede di TUGe lo si puograve ottenere praticamente al costo della duplicazione del disco o poco piugraveQuesto disco contiene le distribuzioni per tutti i principali sistemi operativi eper tutte le macchine piugrave diffuse quello che si esporragrave qui di seguito puograve essereritrovato in quel disco

31 Installazione su macchine Windows a 32 bitLa forma piugrave semplice per installare il sistema TEX su una macchina Windows cheusi un processore a 32 bit egrave quella di procurarsi il CD di installazione ProTEXtdetto CD puograve anche essere scaricato come un grande file compresso da uno deisiti dove si trova tutto il materiale relativo al sistema TEX Per esempio ci si puograveriferire al sito

httpwwwctanorgtex-archivesystemswin32protext

21

22 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

e ai file che vi sono contenuti si tratta di due piccoli file di poche decine dibyte e di un grande file di piugrave di 400 MiB quindi egrave necessario disporre di unaconnessione molto veloce Esiste anche una immagine da masterizzare su un CDche puograve essere usata direttamente dal CD senza installare nulla ma che consentedi provare lrsquointero sistema

Estratta lrsquoimmagine dal file autoestraente scaricato dal sito bisogna cercare ilfile PDF protext-installpdf e seguire religiosamente le istruzioni ligrave contenutein realtagrave basta cliccare gli opportuni bottoni che attivano tutte le operazioninecessarie alle installazioni di tutte le varie parti del pacchetto

In realtagrave il file interattivo protext-install-pdf egrave solo un programma diinstallazione il sistema TEX che viene installato egrave MiKTEX di cui si parleragrave diffu-samente anche in seguito specialmente per il fatto che richiede una configurazioneesplicita per attivarne la sillabazione italiana Per il resto questa distribuzioneha pressappoco le stesse funzionalitagrave di qualunque altra distribuzione

Va segnalato che sulle macchine Windows si puograve installare anche TEX Livema generalmente gli utenti Windows preferiscono installare la distribuzioneMiKTEX la cui gestione appare loro piugrave semplice

Egrave bene sottolineare che insieme al sistema TEX il processo di installazioneattraverso protex-installpdf provvede a installare o a reinstallare almenouno shell editor (anche se non necessario egrave perograve molto utile per gestire i filesorgente con cui interagire con LATEX) e per installare o reinstallare programmiaccessori come ghostscript ghostview eccetera

Terminata lrsquoinstallazione guidata il sistema egrave pronto per lrsquouso magari dopoaver configurato il sistema per lrsquouso anche della lingua italiana

32 Installazione su LinuxSpesso il sistema TEX risulta giagrave installato insieme al sistema operativo in ognicaso esso egrave presente nei dischi di installazione del sistema operativo e dei suoiapplicativi dai quali puograve venire installato come qualunque altro programmadi Linux avvalendosi eventualmente di interfacce grafiche come per esempioKpackage tipico delle versioni Linux che usano il KDE desktop Generalmentenon crsquoegrave altro da fare salvo eventualmente lanciare il programmino texconfig pereseguire una configurazione locale per esempio per preconfigurare il sistema perlrsquouso della lingua italiana dallrsquoedizione 2007 del disco di TEX Live anche questadistribuzione nasce configurata per gestire tutte le lingue che LATEX egrave capace digestire In ogni caso il disco TEX Live sembra fatto apposta per lrsquoinstallazionesu macchine Linux sebbene contenga anche le distribuzioni valide per gli altrisistemi operativi

Puograve succedere che qualche distribuzione del sistema operativo Linux abbiagiagrave installato o sia disponibile per lrsquoinstallazione del sistema TEX partendo daidischi della distribuzione ma che il sistema da installare sia il vecchio e gloriosoteTeX che non egrave piugrave aggiornato dal 2005 ma le cui funzionalitagrave sono statetutte trasferite alla distribuzione TEX Live questrsquoultima egrave la distribuzione su cuibisogna puntare percheacute egrave quella che viene aggiornata almeno una volta allrsquoannoe le cui componenti possono venire aggiornate dallrsquoutente ricorrendo al comodoprogramma di gestione tlmgr specifico di TEX Live

Puograve succedere anche che una certa distribuzione per una certa variante delsistema operativo Linux contenga giagrave la distribuzione TEX Live ma suddivisa

33 INSTALLAZIONE SU MACINTOSH CON MAC OS X 23

in vari file parziali talvolta eseguita lrsquoinstallazione ci si ritrova con un sistemaTEX capace solo di gestire la lingua inglese Certo gli altri pacchetti ldquoopzionalirdquodellrsquoinstallazione consentono la configurazione anche per altre lingue ma bisognaprocedere accuratamente secondo le istruzioni del proprio sistema operativo perinstallare anche le estensioni per gestire altre lingue italiano incluso Da unlato sarebbe quindi consigliabile installare il sistema dal disco originale di TEXLive e per il sistema TEX questo sarebbe sufficiente Ma poi altri programmiche si appoggiano allrsquoesistenza del sistema TEX ldquoautoctonordquo non possono essereinstallati senza che venga installata anche questa versione

Esistono dei trucchi per ovviare a questi inconvenienti ma per questo egravebene cercare sui forum specifici come quello del gruppo guIt per trovare leistruzioni da seguire per aggirare queste piccole mancanze Per altro anche ladistribuzione ldquoautoctonardquo bencheacute generalmente ldquodatatardquo cioegrave corrispondentealla versione di TEX Live di un paio di anni prima funziona benissimo anche senon egrave aggiornata e presenta solo la necessitagrave eventuale di configurare le lingue dagestire Alternativamente si puograve seguire la procedura descritta in [19] applicabiledirettamente alla versione Debian di Linux nella distribuzione Ubuntu e che conpochissime modifiche egrave applicabile anche ad altre distribuzioni

Il pacchetto di installazione non installa lo shell editor necessario per operaresui file sorgente da trattare con LATEX si puograve usare lrsquoonnipresente e onnipotenteprogramma emacs con il plug-in auctex se lo si trova troppo complicato si puograveinstallare Kile ottimo e facile da usare oppure si puograve ricorrere al semplice shelleditor TeXworks che perograve va scaricato dalla rete non dal disco di TEX Live Iprogrammi accessori come ghostscript fanno giagrave parte di serie del sistema Linux

33 Installazione su Macintosh con Mac OS XDa quando esiste il sistema operativo Mac OS X e la macchina a sua volta usaun processore Intel Dual Core oppure PowerPC esiste la versione universale diMacTEX valida per entrambe le macchine dotate di quei processori

Il file

httpwwwctanorgtex-archivesystemsmacmactex〈aaaammgg〉zip

dove 〈aaaammgg〉 indica la data della costruzione del pacchetto al momentodi scrivere queste note essa vale 20100907 cioegrave 7 settembre 2010 Questo fileegrave compresso secondo il codice ZIP e contiene un pacchetto di installazioneper MAC estratto questo pacchetto basta cliccarci sopra e si apre il solitodialogo di installazione conviene rispondere che si vuole lrsquoinstallazione completaIl programma provvede da solo ad eseguire lrsquoinstallazione completa di unadistribuzione TEX Live adattata al sistema di cartelle dei calcolatori Macintosh

Essa installa anche gli shell editor TEXShop e TeXworks lrsquoutente che trovi piugravecomodi altri editor deve provvedere separatamente si veda piugrave avanti a questoproposito Invece i due programmi citati sopra sono giagrave dotati delle funzionalitagravenecessarie per visualizzare il risultato della composizione e per procedere allastampa Infatti il visualizzatore della composizione egrave integrato sia in TEXShopsia in TeXworks ed egrave giagrave configurato per passare puntualmente dal file sorgenteal punto corrispondente del file PDF compilato o viceversa questa funzionalitagraveagevola enormemente la lavorazione del documento che si sta scrivendo

24 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

Figura 31 Schermata di LaTeXiT

Viene installata anche lrsquoapplicazione TeX Live Utility nella cartella ApplicationsTeX essa egrave una interfaccia grafica in stile Macintosh per operare con il TEXLive manager molto comodo e intuitivo per eseguire gli aggiornamenti

Vengono installati anche i programmi BibDesk e LaTeXiT il primo serveper gestire i database bibliografici il secondo serve per comporre con latex leformule matematiche eventualmente utili anche sotto forma di immagine perinserirle dentro altri formati di documenti Volendo la si potrebbe introdurreanche nei documenti da produrre con latex e pdflatex ma sarebbe veramentestupido inserire una immagine composta tramite LaTeXiT dentro un documentoda comporre con uno dei programmi del sistema TEX quando questo programmasarebbe capace di produrre la formula da solo e senza i problemi di compatibilitagravedel contenuto che si verrebbero a creare

Al massimo LaTeXiT a parte gli altri documenti composti con programmi e informati diversi da quelli che si possono comporre e produrre con i programmi delsistema TEX puograve servire come ambiente interattivo per verificare la correttezzadella formula via via che la si compone poi finita la composizione si copia ilcodice sorgente e lo si incolla nel file tex del documento da comporre

Se questo discorso puograve apparire confuso si osservi la figura 31 essa mostrauna finestra di lavoro del programma LaTeXiT divisa in due parti nella parteinferiore si scrive la formula in linguaggio LATEX standard senza cioegrave estensionidi nessun genere semplicemente usando la tastiera non il mouse nella parte

34 GLI ALBERI DI CARTELLE DEL SISTEMA TEX 25

superiore dopo aver cliccato sul bottone in basso a destra etichettato con ilnome LaTeXiT appaiono i messaggi di errore casomai ne fossero presenti oppurelrsquoimmagine della formula composta Se la si vuole salvare come immagine nellabarra del menugrave a discesa di File compare la dizione Export image scegliendo laquale si salva il disegno della formula nel formato vettoriale PDF con il nomeche gli si specifica

Lavorando con il sistema TEX conviene invece selezionare dalla finestrainferiore il codice copiarlo e incollarlo nel file tex del documento che si stacomponendo Se si vogliono eseguire modifiche per usare comandi non standardo ambienti diversi da quelli standard basta correggere il codice copiato Siccomescrivere direttamente in linguaggio LATEX egrave una cosa che diventa via via piugravefacile man mano che si acquisisce esperienza ci si accorge in breve che LaTeXiTnon egrave piugrave necessario (quando si compone usando uno dei programmi del sistemaTEX) e non lo si usa piugrave o lo si usa solo saltuariamente Per questo motivo nonse ne parleragrave piugrave in seguito

34 Gli alberi di cartelle del sistema TEXLrsquoinstallazione dellrsquouno o dellrsquoaltro sistema crea sul disco diverse strutture dicartelle ovviamente queste strutture di cartelle gli alberi di cartelle possonoessere un porsquo diversi da sistema operativo a sistema operativo da installazione ainstallazione

La differenza piugrave ovvia egrave che nella descrizione del percorso sulle macchineWindows il separatore fra i nomi delle cartelle egrave una barra rovescia mentresulle macchine Linux e Mac OS X il separatore egrave una barra semplice In questotesto si useragrave sempre la barra semplice per due motivi (a) la barra rovescia haun significato speciale per il linguaggio LATEX per cui limitarne lrsquouso alla suafunzione speciale aiuta anche a evitare errori nello scrivere il testo (b) per lostesso motivo scrivendo in linguaggio LATEX anche su una macchina Windows ipercorsi dei file devono essere sempre indicati con la barra semplice invece checon la barra rovescia

Le differenze piugrave sostanziali riguardano lrsquoinstallazione TEX Live rispetto aquella MiKTEX Se ne parleragrave piugrave diffusamente piugrave avanti Qui ci si limiteragrave adesporre le similitudini

Tuttavia lrsquoargomento puograve sembrare un porsquo ostico in un certo senso lo egrave mail lettore non si scoraggi salti direttamente al paragrafo 35 Puograve tornarci soprain seguito quando vorragrave approfondire lrsquoargomento

Tutti gli alberi a partire dalla loro lsquobasersquo devono essere conformi alla TEXDirectory Structure (TDS) cosiccheacute il sistema TEX possa trovare i file che gliservono sempre nello stesso modo e con un unico suo programma interno diricerca dei file che si chiama kpsewhich questo programma puograve anche venire usatodallrsquoutente ma di solito egli ne ignora persino la presenza percheacute in effetti essosvolge le sue funzioni dietro le quinte ed egrave molto raro che lrsquoutente debba servirsenedirettamente La TDS egrave descritta nel file tdspdf in grande dettaglio non egravenecessario che lrsquoutente fin dalla prima installazione si studi approfonditamentequesto documento ma egrave importante che ne conosca lrsquoesistenza per poterloconsultare quando occorre Esso viene installato insieme al sistema e puograve essereletto aprendo la finestra comandi console xterm Terminal comunque si chiami

26 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

quella finestra nel particolare sistema operativo in uso e scrivendoci dentro ilcomando

texdoc tds

Il comando texdoc egrave utilissimo anche per consultare la documentazione di qualsiasipacchetto solitamente basta dargli in pasto il nome del pacchetto e questoprogrammino esegue le ricerche necessarie per trovarne la documentazione epresentarla sullo schermo

Ciograve premesso ogni utente farebbe bene a costruirsi un suo albero personaleconforme alla TDS dove conservare le sue macro i font che egli si crea i pacchettiche si scrive insomma tutto quanto gli sia strettamente personale e sia funzionaleal funzionamento dei programmi del sistema TEX Questo albero personale partedalla cartella texmf che si trova nella sua $HOME questo nome simbolico $HOME haun significato diverso in ogni sistema operativo e deve essere diverso dalla lsquoradicersquosulla quale sono innestati gli alberi installati dal programma di installazioneNormalmente questo nome simbolico rappresenta

bull ~ nei sistemi Linux

bull ~Library nei sistemi Mac OS X

bull CDocuments and Settings〈utente〉Documenti con lrsquoinstallazione diMiKTEX sulle macchine Windows

dove 〈utente〉 egrave il nome con il quale il particolare utente si egrave registrato sullamacchina

Non si parleragrave piugrave di questo albero personale se non riferendosi ad esso con ilgenerico nome di albero personale che appunto in quanto tale verosimilmentenon avragrave lrsquointera struttura TDS ma solo conformemente a questa struttura lecartelle che il particolare utente effettivamente usa

Ogni programma eseguibile del sistema TEX sa dove cercare i vari tipi difile di cui ha bisogno per ogni tipo di file puograve eseguire la ricerca in diversialberi ma sempre con una precedenza gli alberi alberi prioritari sono quellidellrsquoutente specifico poi vengono quelli della macchina specifica infine quelligenerali dellrsquoinstallazione Siccome si tratta di alberi che contengono migliaia difile la base di ogni albero contiene un database dei nomi dei file che di solitodeve venire aggiornato ad ogni modifica Solitamente non vengono modificati amano gli alberi del sistema TEX ma lrsquoalbero personale egrave ligrave apposta per ricevereogni file personale dellrsquoutente perciograve questo file viene modificato relativamentespesso Ogni installazione dispone di comandi specifici per lrsquoaggiornamento deidatabase dei nomi dei file MiKTEX dispone addirittura di un wizard che richiedesolo di cliccare su un bottone di una finestra di interfaccia grafica In ogni casoi programmi che modificano aggiungono o tolgono file dagli alberi di sistemaprovvedono da soli ad aggiornare gli specifici database dei nomi dei file Perciogravelrsquoutente deve ricordarsi sempre di aggiornare questo database del suo alberopersonale tranne nelle macchine Macintosh dove questo aggiornamento non egravenecessario percheacute egrave intrinseco del sistema operativo

341 Gli alberi di cartelle di TEX LiveGli alberi che vengono gestiti piugrave o meno direttamente dal sistema TEX e nellecui cartelle lrsquoutente in generale non puograve scrivere nulla se non operando da

34 GLI ALBERI DI CARTELLE DEL SISTEMA TEX 27

ldquoamministratorerdquo o da ldquorootrdquo o da ldquosuperuserrdquo con una distribuzione TEX Livesono innestati tutti in texlive Essi sono

1 〈anno〉texmf-dist contiene tutti i file che servono per il funzionamen-to del sistema TEX tranne gli eseguibili veri e propri che sono conservatiin unrsquoaltra cartella

2 〈anno〉texmf contiene tutti i file necessari per la configurazione delsistema TEX generati al momento dellrsquoinstallazione del sistema TEX sonoquindi file che riguardano la configurazione e il funzionamento del sistemaTEX ma sono validi per tutti gli utenti della particolare macchina sul cuidisco appare questo albero

3 〈anno〉texmf-config contiene tutti i file di configurazione di defaultdel sistema TEX in altre parole sono i file che servono per configurare ilsistema prima che eventualmente lrsquoutente specifico o lrsquoamministratore dellamacchina non decidano di impostare una configurazione particolare nonstandard

4 〈anno〉texmf-var contiene tutti i file di configurazione del sistemaTEX generati in seguito a comandi specifici dellrsquoutente amministratore peruna configurazione ad hoc dellrsquoinstallazione sulla specifica macchina

5 texmf-local contiene tutti i file utili allrsquoesecuzione dei programmi delsistema TEX e che sono specifici della particolare macchina in particolareesso contiene certi file di configurazione che dipendono solo da quanto egravedisponibile sulla macchina specifica

6 〈anno〉bin contiene tutti i programmi eseguibili del sistema TEX ilpercorso che conduce a questa cartella e alle cartelle che esso contiene vieneaggiunto automaticamente alla variabile di sistema PATH in modo che iprogrammi contenuti in questo particolare albero possano venire eseguitisia dallrsquoutente mediante comandi manuali sia dagli altri programmi delsistema

7 $HOMEtexlive contiene un albero con la sua radice che comincia a suavolta con 〈anno〉 e prosegue con una TDS contenente i file di servizio e diconfigurazione generati dallrsquoutente specifico (non in qualitagrave di amministra-tore) e dai programmi di servizio durante lrsquoesecuzione di composizioni perquello specifico utente tra gli altri vengono conservati qui i file relativiai font a matrici di punti che il sistema genera attraverso il programmaMETAFONT quando ne ha bisogno o quando manca di quei font nel forma-to vettoriale (che sarebbe sempre il formato preferito e da preferire) quivengono conservati anche i file metrici relativi a questi font generati conMETAFONT Poicheacute questa cartella ha la radice nella $HOME dellrsquoutente ifile contenuti in questo albero sono specifici per un solo utente il proprie-tario della cartella $HOME ma non si deve confondere questo albero conlrsquoalbero personale $HOMEtexmf di cui si egrave giagrave parlato

Lrsquoindicazione rappresenta il percorso che va dalla radice del disco su cui egraveinstallato il sistema TEX fino alla radice dellrsquoalbero che ci interessa a seconda delsistema operativo potragrave essere una cosa come Cprogrammitexlive oppureusrsharetexlive oppure usrlocaltexlive

28 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

Vale la pena di ricordare la necessitagrave di avere per ciascun albero il databasedei nomi dei file sempre aggiornato aggiornarlo quando non egrave necessario nonproduce nessun danno ma omettere lrsquoaggiornamento puograve costituire una fonte difrustrazione non indifferente percheacute il sistema potrebbe non essere in grado ditrovare i file di cui necessita Si ripete questo aggiornamento egrave particolarmenteimportante per lrsquoalbero personale

Tutto ciograve puograve apparire estremamente complicato in realtagrave lrsquoutente o lrsquoammi-nistratore non hanno bisogno di occuparsene se non in circostanze eccezionaliegrave opportuno perograve conoscere lrsquoesistenza di questa molteplicitagrave di alberi e il lorocontenuto Una cosa importatissima da ritenere egrave che ad ogni installazione di unaggiornamento del sistema TEX vengono riscritti alcuni o tutti i file contenutinelle cartelle la cui radice sia formata dalla sequenza di cartelle texlive〈anno〉Qualunque personalizzazione quindi non deve venire scritta dentro cartelle chesi trovino dentro questi alberi altrimenti se ne perde tutto il contenuto percheacuteverrebbe sovrascritta dai file di aggiornamento Quando si installa una nuovaversione cambia lrsquo〈anno〉 e quindi cambia tutta lrsquoinstallazione su alcuni sistemiegrave possibile far convivere diverse versioni del sistema TEX ma questa pratica egraveconsigliabile solo per utenti espertissimi che abbiano esigenze molto particolari

342 Gli alberi di cartelle di MiKTEXSulle macchine Windows egrave possibile installare anche la distribuzione TEX Livedel sistema TEX ma piugrave frequentemente gli utenti delle macchine Windowsinstallano la distribuzione MiKTEX

I diversi sistemi operativi che vengono usati su queste piattaforme Windowssono molto variabili e non sempre completamente compatibili Qui si faragrave riferi-mento ad una installazione con il sistema operativo Windows XP che egrave ancoraquello di prima installazione su diverse piccole macchine portatili quanto si dicequi non dovrebbe essere sostanzialmente diverso da quello che potrebbe aversisu altri sistemi operativi piugrave recenti come Windows Vista o Windows 7

La moltitudine di alberi che si sono visti con la distribuzione TEX Livesi ripete anche con MiKTEX sebbene con un numero minore di alberi Quidi seguito si indicheragrave con il percorso dalla radice del disco C allrsquoiniziodellrsquoalbero specifico che verragrave descritto I programmi eseguibili e della primainstallazione non saranno necessariamente installati nel disco C e per questainstallazione si useragrave la lettera X per designare il disco su cui egrave installato ilsistema TEX anche se quasi sempre X coincide con C In generale si ha

= CDocuments and Settings

Si noti che nel seguito 〈versione〉 indica la versione della distribuzione MiKTEXper esempio 28

1 XProgrammiMiKTeX〈versione〉 contiene tutti gli eseguibili del sistemaTEX nella sottocartella miktexbin ma contiene tutti i file che nellaversione TEX Live sono contenuti negli alberi radicati in textmf-dist etexmf-config in particolare i file di configurazione di default i file didocumentazione e tutti gli altri file necessari per il funzionamento completodel sistema TEX

2 All UsersDati ApplicazioniMiKTeX〈versione〉 contiene la strut-tura TDS con i file generati dai programmi di configurazione e dai pro-

34 GLI ALBERI DI CARTELLE DEL SISTEMA TEX 29

grammi di generazione dei font validi per tutti gli utenti della specificamacchina

3 〈utente〉Impostazioni localiDati ApplicazioniMiKTeX〈versio-ne〉 contiene i file di configurazione e quelli relativi ai font relativi allrsquousodellrsquoutente specifico

4 〈utente〉Dati AppplicazioniMiKTeX〈versione〉 contiene i file diprima installazione e quantrsquoaltro sia necessario per il funzionamento delsistema TEX per lrsquoutente specifico

5 〈utente〉Documenti contiene lrsquoalbero personale di cui si egrave parlatoprecedentemente

Non crsquoegrave una completa corrispondenza fra gli alberi di MiKTEX e quelli diTEX Live ma non egrave difficile capire la strategia che sta sotto questa apparentecomplicazione il documento tdspdf spiega questa strategia illustrandone anchei pregi e i difetti noncheacute i compromessi che egrave stato necessario raggiungere peravere un sistema funzionale e realizzabile

Anche con MiKTEX lrsquoutente non deve preoccuparsi piugrave di tanto se non nei raricasi in cui debba cercare un file specifico Ricordi inoltre che il lsquowizardrsquo di MiKTEXper configurare il sistema aggiornarlo arricchirlo di altri pacchetti eventualmenteanche on demand1 permette a MiKTEX di avere quelle funzionalitagrave che lo rendonoparticolarmente gradito agli utenti dei sistemi operativi Windows

343 Lrsquoaggiornamento dei database dei nomi dei fileLrsquoargomento egrave talmente importante che si vogliono qui riassumere e ripeterele informazioni sparse nei paragrafi precedenti anche per sottolineare questaquestione cruciale

Fintanto che si installa il sistema TEX lo si configura si installano nuovipacchetti o se ne disinstallano di quelli giagrave installati si aggiornano sia gli eseguibilisia i pacchetti ma sempre facendo uso del programma MiKTeX Settings perlrsquoinstallazione MiKTEX per Windows o TeX Live Manager per lrsquoinstallazioneTEX Live per tutti i sistemi non egrave il caso di aggiornare il database dei nomi deifile percheacute ci pensano quei programmi

Va notato che aprendo MiKTeX Settings dal menugrave a tendina che viene attivatoselezionando successivamente Start|Programmi|MiKTeX si hanno due opzioni dilsquomanutenzionersquo (Maintainance) una da amministratore e una da utente La primaserve per aggiornare i file di sistema e quelli a disposizione di tutti gli utentidella macchina mentre il secondo serve per aggiornare solo i file a disposizionedellrsquoutente specifico che sta usando il programma di manutenzione

1On demand non significa alla lettera lsquoa richiestarsquo La cosa egrave molto piugrave sottile si pensi alfatto che lrsquoutente stia compilando un documento che richieda lrsquouso di un certo pacchetto diestensione lrsquoutente lancia il programma di composizione ma quando questo cerca di caricarequel pacchetto e non lo trova controlla che faccia parte dei pacchetti disponibili per MiKTEXma non sia stato ancora installato allora il programma di composizione si ferma invoca illsquowizardrsquo (il mago lo stregone) che chiede allrsquoutente se vuol installare il pacchetto mancantealla riposta affermativa dellrsquoutente il lsquowizardrsquo cerca in rete lrsquoinstallatore di quel pacchettoprovvede allrdquoinstallazione allrsquoaggiornamento dei file di configurazione allrsquoaggiornamento deidatabase dei nomi dei file e quando ha terminato restituisce il controllo al programma dicomposizione che prosegue usando anche il pacchetto appena installato Non egrave una funzionalitagraveda poco

30 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

Il programma di manutenzione e di gestione dellrsquoinstallazione TEX Live tlmgr(che puograve operare sia in modo testuale dalla finestra comandi sia in modo graficointerattivo) deve sempre venire usato con le prerogative dellrsquoamministratore equando si attiva la funzione di aggiornamento dei database dei nomi dei file lipuograve aggiornare tutti cliccando un solo bottone

Di solito non egrave necessario ricorrere a questo aggiornamento quando le mo-difiche ai file di sistema sono state eseguite attraverso i rispettivi lsquomanagerrsquoMa quando non egrave necessario aggiornare questi database oltre ai casi gestitidirettamente dal lsquomanagerrsquo Tranne in un solo caso quello relativo allrsquoalberopersonale sulle macchine Macintosh con sistema operativo Mac OS X bisognasempre aggiornare i propri alberi personali e gli alberi di sistema se e quando sifossero installati dei pacchetti senza ricorrere ai lsquomanagerrsquo

Riepilogando quindi quanto detto sopra bisogna sempre aggiornare i data-base dei nomi dei file nei casi seguenti

1 Quando si aggiungono o si tolgono dei file dal proprio albero personale

2 Quando si aggiungono o si tolgono file dagli alberi che contengono infor-mazioni per lrsquouso locale del sistema TEX

3 Quando si installano negli alberi di sistema pacchetti di estensione opacchetti di font senza usare i dovuti lsquomanagerrsquo

Lrsquoultimo caso non dovrebbe presentarsi mai ma talvolta si ha a che fare conpacchetti sperimentali non ancora previsti per lrsquoinstallazione ufficiale sarebbepreferibile inserirli nel proprio albero personale ma talvolta si rende necessarialrsquoinstallazione globale

Ma negli altri casi a meno che non si tratti di una macchina Macintoshbisogna sempre aggiornare il database dei nomi dei file Non farlo metterebbeil sistema TEX nellrsquoimpossibilitagrave di trovare i pacchetti che gli servono e quindiverrebbero emessi messaggi drsquoerrore la cui comprensione sembra essere difficoltosaa quanto si deduce dalla lettura dei messaggi inviati al Forum del gruppo guIt

35 I programmi accessoriLa composizione differita consente di usare un programma specializzato perciascuna operazione di composizione in modo da usare sempre il prodottomigliore per ciascuna fase di lsquolavorazionersquo del documento

I programmi accessori piugrave importanti sono i seguenti

1 Lo shell editor serve per generare eo modificare i file sorgente da dare inpasto a LATEX Se ne discuteragrave diffusamente ne prossimo paragrafo

2 Siccome il file di uscita lsquostandardrsquo del sistema TEX ha il formato DVI(DeVice Independent) egrave necessario disporre del programma specializzatoper rendere il frutto della composizione visibile e leggibile sullo schermoo per renderlo stampabile con una varietagrave di dispositivi diversi che pos-sono andare dalle stampanti alle fotocompositrici Ogni sistema TEX egravecorredato di un programma per visualizzare il file DVI spesso utile ancheper stampare Talvolta egrave necessario convertire il file dal formato DVI alformato PostScript e per gestire questo formato funziona egregiamente il

35 I PROGRAMMI ACCESSORI 31

programma dvips ma per visualizzare il file cosigrave prodotto egrave utile disporredel programma ghostview meglio conosciuto come gview o anche come gvquesto programma egrave una comoda interfaccia grafica per maneggiare un filePostScript al fine di visualizzarne il contenuto logico per stamparlo e ancheper trasformarlo in formato PDF Chi esegue il lavoro vero egrave ghostscriptma gview rende molto piugrave agevoli tutte le operazioni percheacute ghostscript egraveun poderoso programma che perograve richiede di essere azionato dalla lineadi comando (dalla finestra comandi di Windows o dalla finestra TerminalXterm o Console dei sistemi UNIX Linux e Mac OS X) Generalmente glishell editor dispongono di un bottone sia per azionare il programma di vi-sualizzazione per il formato DVI sia per lanciare dvips sia per visualizzareil file PS con il programma gview

3 I file in formato PDF sono maneggiabili mediante gli appositi programmicaratteristici di ogni sistema operativo per tutti la Adobe produce ilprogramma gratuito Adobe Reader che consente di visualizzare i file nelformato PDF e di ottenerne alcune informazioni Se si desidera la pienafunzionalitagrave sarebbe necessario acquistare da Adobe il programma AdobeAcrobat (eventualmente nella versione professional) oppure altri programmisimili Adobe Acrobat consente di eseguire qualche ritocco al contenuto delfile di estrarne delle intere pagine o delle figure di eseguire il ritaglio diparti della pagina ovvero di scontornare le immagini

Per le macchine Mac oltre a Adobe Reader (o Adobe Acrobat) il visualiz-zatore di sistema si chiama Preview (o Anteprima se il sistema operativoegrave localizzato in italiano) vale la pena di installare anche il visualizzatoreSkim scaricandolo dal suo sito httpskim-appsourceforgenet essoha le prestazioni di Preview arricchite di molte altre utilissime funzionicompresa quella di essere sincronizzabile con alcuni shell editor

Incidentalmente sincronizzabile egrave una espressione che puograve indurre a malin-tesi ma egrave quella che viene usata per descrivere la funzione per la qualesi puograve passare dalla finestra di editing del file sorgente al punto corri-spondente della finestra di visualizzazione del file composto e viceversaQuesta funzione egrave fondamentale per facilitare la composizione di un docu-mento generalmente essa egrave presente fra la finestra di editing e la finestradi visualizzazione del file composto in formato DVI solo pochi editor evisualizzatori consentono la sincronizzazione se il visualizzatore serve per ifile composti in formato PDF

4 Sono utili anche diversi altri programmi di conversione di formato nonnecessariamente giagrave in dotazione del sistema operativo in uso ma chetornano utili in diverse circostanze per esempio jpegtops trasforma leimmagini dal formato JPG (o JPEG) al formato PostScript o meglioEncapsulated PostScript Il programma ps2pdf trasforma i file dal formatoEncapsulated PostScript al formato PDF Il programma gimp nato per lepiattaforme UNIXLinux e ora disponibile anche per le altre piattaformeWindows e Mac serve per modificare le immagini di quasi tutti i possibiliformati e di salvarle in quasi tutti gli innumerevoli formati che egrave capacedi gestire (perograve non puograve salvare in formati vettoriali ndash se ne parleragravediffusamente piugrave avanti)

32 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

CBe

ccar

indashpi

ctur

e

|

1

2

pound3

$4

5

amp6

7

(8

)9

=0

rsquo

^igrave

Qq

Ww

Ee

Rr

Tt

Yy

Uu

Ii

Oo

Pp

eacute egrave [

+ ]

Aa

Ss

Dd

Ff

Gg

Hh

Jj

Kk

Ll

ccedilograve

degagrave

sectugrave

gtlt

Zz

Xx

Cc

Vv

Bb

Nn

Mm

_-

Figura 32 Schema della tastiera italiana sulle piattaforme Windows

Questi programmi accessori sono utili di per seacute e quindi possono essere usatianche indipendentemente dal sistema TEX tuttavia risultano molto utili persvolgere alla perfezione certe funzioni che solo un programma specializzato safare certamente meglio di quanto potrebbe fare un programma generico dallelsquotroppersquo funzioni

Tutti i programmi menzionati tranne Adobe Acrobat sono disponibili comefreeware e sono scaricabili dalla Rete adatti per essere usati sulle specifichepiattaforme di lavoro a disposizione

36 Le tastiereQuesto egrave un argomento dolente per coloro che hanno la tastiera italiana Nellatastiera italiana figura 32 sono evidenziati i tasti normali e in particolare sonomesse in evidenza le parentesi graffe che hanno una importanza enorme nellacomposizione dei file sorgente tex

Si nota perograve lrsquoassenza dei segni lsquo (accento grave o backtick o virgolettasemplice aperta) e ~ (tilde o legatura o spazio insecabile) Per introdurre questisegni bisogna ricorrere a espedienti diversi a seconda della macchina usata

Sulle macchine UNIX (Linux e Macintosh) non dovrebbero esserci grossiproblemi nel senso che esistono combinazioni di tasti che consentono di scriverevirtualmente qualunque carattere dellrsquoalfabeto latino e vari segni e simboli usatinormalmente negli scritti in italiano e nelle varie lingue occidentali

Invece sulle macchine Windows esistono problemi seri che possono veniresuperati come spiegato qui di seguito

361 Le tastiere delle macchine WindowsIl problema esiste con le macchine Windows In queste si hanno alcune possibilitagrave

1 si tiene aperta la finestra dove si egrave lanciato lrsquoapplicativo Character map (oMappa dei caratteri se il sistema operativo egrave in italiano) e ogni volta cheoccorre un segno non presente sulla tastiera lo si cerca in questa finestra losi seleziona e lo si copia poi lo si incolla nel testo presente sullo schermo

2 Si sfrutta lo shell editor per aprire dentro a questo la mappa dei carat-teri disponibili con la codifica impostata per lo shell editor si cerca il

36 LE TASTIERE 33

$ amp ( ) +- $

0 12 13 14 15 16 17 18 19 1 12 122 123

lt 2 3

=gt)

4

A

5

B CDEF

6 987 GH IgtJ0CgtA

AB

KL M

gt 0 N $ O PQJR STgtC0

TBQ UQ

V

UQWXB TBQ

12 122 123

$amp ()$+$-

$0$amp$ 12+$(3

4

5 6 Y

$ZW[

7WTW]

8W^_W`

9WaIWb

WcdWe

WWfgWWh

lt=WijWWk

gt=WlmWWn

)=opWq

=r$

0 12 13 14 15 16 17 18 19 1 12 122 123

ltWWWlt

WWstWWu

WWvwWWx

AWWy

=gt)zW

BW|W~3W

WW

CWW

WW$WW

WW

DWW

WWW

=WWampWW

WW

WW(WW

WWEWW

WWFWW

WWGWW

WW

HWWWWW

IWWiexclcentWWWpound

JWWcurrenyenWWbrvbar

KWWsectumlWWcopy

LWWordflaquoWWnot

MWWlaquoshyWWWreg

NWWmacrdegWplusmn

OWWsup2IgtJ0CgtA

AB

sup3WWWWacute

PWWWWmicroparaWWWmiddotQWWWcedil

sup1WWWordmRWWWraquo

UWWfrac14

+=Wfrac12WWfrac34

=WiquestAgraveWWAacute

2=WAcirc1WWAtilde

SWWAumlXWWAring

=WAEligCcedilWWWEgrave

T=WEacuteEcircWEuml

0WWIgraveIacuteWIcirc

UWWIumlETHWWNtilde

VWWOgraveOacuteWWOcirc

W=WOtildeOumlWWtimes

X=WOslashTgtC0

TBQ UQ

UgraveWUacute

YWUcirc

UQWXB TBQ

EampZ8(00[(8U

+F$

$amp ()$+$-

$0$amp$ 12+$

(3

4

5 6 Y

Figura 33 Schema della tastiera configurata con il driver EurKey Tratto dalsito httpeurkeysteffenbruentjeneu

carattere assente dalla tastiera e lo si clicca questo generalmente apparesubito nel testo presente sullo schermo ma puograve succedere per esempioche selezionando lsquoEgraversquo nella suddetta mappa dei caratteri disponibili sulloschermo non appaia lsquoEgraversquo ma lsquoE Poco male la lettura sullo schermoci rimette un poco ma lrsquooperazione egrave corretta ed evita di dover andare acercare il carattere lsquo assente dalla tastiera Al massimo questa operazionepuograve risultare un fardello per il correttore ortografico ma ce ne sono chedistinguono le sequenze TEX per gli accenti

3 Disponendo di una tastiera con il tastierino numerico separato (o premendoil tasto fn che cambia significato ad un certo numero di tasti lsquoordinarirsquoin modo che si comportino come il tastierino laterale) basta premere iltasto Alt seguito da codice numerico ASCII2 dellrsquoaccento grave che perla cronaca egrave il numero 96 (oppure 096) rilasciando il tasto Alt dopo averintrodotto il codice numerico sullo schermo appare il segno lsquo Si puograve usarelo stesso metodo per inserire la tilde il cui codice egrave 126 Per le maiuscoleaccentate e per gli altri segni si puograve procedere come nei punti precedentioppure ci si scrive da parte una volta per tutte lrsquoelenco dei codici dellelettere che si incontrano piugrave sovente e si usa la tecnica qui descritta peruna introduzione abbastanza semplice che non necessita dellrsquouso del mouseche alcuni preferiscono evitare

4 Dal sito httpwwwvirgilioitblog20100529lettere-accentatemaiuscole-con-caps-lock-attivo-su-windows si scarica dalla reteil programma che serve per configurare la tastiera come si preferisceattivando tutte le combinazioni di tasti che si desiderano per introdurretutti i segni disponibili con il driver della tastiera Bisogna ricordarsi dieseguire tutti i passi indicati in quel sito non ultimo quello di sceglierequella configurazione personalizzata come tastiera predefinita Molti utentiridefiniscono il significato dei tasti che contengono segni raramente usatiin italiano come per esempio ccedil o sect o deg e sono contentissimi di questapersonalizzazione

2I caratteri ASCII sono esposti nella tabella D1

34 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

Altre soluzioni di questo genere si possono trovare agli indirizzi internethttpwwwgialloporporanetsonsorgrimappare-la-tastiera-in-windows-creando-un-file-di-layout395 e httpwwwcommentcamarchenetdownloadtelecharger-34055570-clavier

5 In un file di macro personali si inseriscono tutte le definizioni le piugrave mne-moniche possibile per inserire i segni mancanti dalla tastiera la definizionedi nuovi comandi verragrave visto molto piugrave avanti ma qui si indicano alcunedefinizioni il cui elenco puograve essere completato secondo le proprie necessitagrave

newcommandAlsquoAnewcommandElsquoEnewcommandUlsquoU

Come si vede si tratta di definizioni semplicissime che possono venireulteriormente arricchite di funzionalitagrave ma che consentono di evitare lacomplicazione di battere diversi tasti o di usare il mouse per inserire i segniassenti dalla tastiera italiana

6 Per le macchine Windows e Linux esiste anche un driver EurKey scaricabiledal sito httpeurkeysteffenbruentjeneu che permette di avereun layout di tastiera molto piugrave completo (sebbene anche il driver fornitoinsieme ai sistemi Linux sia giagrave molto ricco) Il layout viene chiamatoldquolayout europeordquo percheacute dovrebbe essere in grado di introdurre qualunquesegno latino con diacritici presente nelle lingue europee Nella figura 33tratta dal sito suddetto vi sono mostrati i tasti con lrsquoindicazione dei quattrosegni che si possono comporre con quello specifico tasto si arriva a piugrave di200 segni che coprono quasi completamente le esigenze di tutte le lingueeuropeeSe si puograve segnalare un inconveniente questo consiste nel fatto che il layoutdi base egrave quello USA ma che i segni aggiuntivi non sono serigrafati neacute sullatastiera USA neacute su qualunque altra tastiera distribuita commercialmenteO si tiene il disegno della tastiera accanto al PC mentre si digita il codicedi entrata oppure ci si arrangia con piccole etichette da incollare sui tasticon un velo trasparente protettivo (scotch trasparente per esempio) alfine di evitare la progressiva cancellazione delle indicazioni supplementarivia via che si usa la tastieraSi richiama il fatto che gli accenti morti servono anche per le letteremaiuscole esiste persino un tasto AltGr + m ) che permette di passarealla digitazione in grecoLrsquouso di questa tastiera e dei suoi numerosissimi segni implica la specifica-zione dellrsquoopzione utf8 nel preambolo di ogni documento LATEX

Alternativamente anche se la cosa puograve sembrare assurda potrebbe essereconveniente pensare allrsquoacquisto di una seconda tastiera esistono diverse tastiereQWERTY nazionali o internazionali che consentono di introdurre tutti e 95 icaratteri ASCII premendo al massimo due tasti se si egrave disposti ad abituarsi aduna disposizione dei tasti QWERTZ le tastiere svizzere (figura 34) e tedeschesono complete cosigrave come lo sono altre tastiere dei paesi del nord Quelle inglesi e

36 LE TASTIERE 35C

Becc

arindashpi

ctur

e

degsect

+1 |

2

3

ccedil4 deg

5 sect

amp6 not

7 brvbar

(8 cent

)9

=0

rsquo acute

lsquo^ ~

Qq

Ww

Ee euro

Rr

Tt

Zz

Uu

Ii

Oo

Pp

egraveuumluumlegrave[

uml ]

Aa

Ss

Dd

Ff

Gg

Hh

Jj

Kk

Ll

eacute oumlouml eacute

agraveaumlaumlagrave

pound$

gtlt

Yy

Xx

Cc

Vv

Bb

Nn

Mm

_-

Figura 34 Schema della tastiera svizzera sulle piattaforme Windows Vi sinotano gli ldquoaccenti mortirdquo evidenziati con lo sfondo grigio i quali consentonodi inserire il loro segno su qualunque lettera che lo accetti La tastiera egrave utileper scrivere nelle quattro lingue ufficiali della Confederazione Elvetica anche senon riporta tutte le vocali accentate dellrsquoitaliano e del romancio che per altrosi possono ottenere con gli accenti morti Le maiuscole accentate si ottengonousando il tasto delle maiuscole permanenti

Figura 35 Schema della tastiera italiana su Linux senza personalizzazioni Lafigura egrave tratta da Internet ma il sito non egrave piugrave raggiungibile

irlandesi e quelle USA specialmente se ldquoprofessionalrdquo consentono di introdurreanche tutti o quasi tutti i segni previsti per la codifica ISO 8859-1 Spesso questetastiere possono venire acquistate via Internet da produttori stranieri spessosono gli stessi produttori di computer a consentire lrsquoacquisto via Internet eoffrono le disposizioni di tastiere piugrave disparate Ovviamente egrave necessario chesiano dotate del driver necessario per il sistema operativo della propria macchinaaltrimenti sarebbero un acquisto inutile anche se spesso si possono trovare inrete dei driver adatti ad una completa personalizzazione della tastiera

Per una eccellente presentazione e descrizione delle tastiere nazionali e inter-nazionali si veda il sito httpenwikipediaorgwikiKeyboard_layout

362 Tastiere Linux

Dopo lrsquoinstallazione del sistema operativo Linux in qualunque incarnazione pre-mere il tasto AltGr permette di ottenere diversi altri segni che sono normalmenteassenti dalla tastiera italiana

36 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

CBe

ccar

indashpi

ctur

e

plusmnsect

1

2

3

$4

5

^6

amp7

8

(9

)0

_-

+=

Qq

Ww

Ee

Rr

Tt

Yy

Uu

Ii

Oo

Pp

[

]

Aa

Ss

Dd

Ff

Gg

Hh

Jj

Kk

Ll

rsquo

|

~lsquo

Zz

Xx

Cc

Vv

Bb

Nn

Mm

lt

gt

Figura 36 Schema della tastiera USA estesa sul MacBook Pro

Dopo lrsquoinstallazione del sistema la tastiera italiana potrebbe risultare arricchi-ta di nuove funzionalitagrave come appare nella disposizione indicata dalla figura 35I segni marcati in blu sono i tasti morti per i segni diacritici si noti tra lrsquoaltrola presenza sia della cediglia sia della virgola sottoscritta del rumeno Vi sonodiverse ripetizioni ma tutto sommato questa disposizione egrave piuttosto ricca disegni In ogni caso nella impostazione di sistema che concerne la tastiera egravepossibile configurare le combinazioni di tasti che si preferiscono per agevolarelrsquointroduzione dei segni che non sono direttamente marcati sui tasti

Lrsquouso di tutti questi segni implica la specificazione della codifica utf8 nelpreambolo di ogni documento LATEX

363 Le tastiere sulle macchine MacintoshQui ci riferiamo alle macchine Macintosh moderne dotate di sistema operativoMac OS X Queste macchine qualunque disposizione di tasti abbiano (italianaUSA o altra disposizione) dispongono di una comodissima interfaccia graficache permette di avere sullo schermo la disposizione della tastiera e come questacambia premendo i tasti serigrafati con i segni ctrl (alt) o (cmd) Neldisegno della tastiera i tasti morti sono disegnati in colore beige dopo averpremuto (o cliccato su) un tasto morto la tastiera normale cambia aspetto epresenta solo i caratteri che corrispondono alle lettere lsquoaccentatersquo con il particolarelsquoaccentorsquo del tasto morto usato Dopo un poco si imparano a memoria questecombinazioni di tasti e non egrave piugrave necessario ricorrere allrsquoimmagine della tastiera

Chi scrive usa abitualmente una tastiera estesa con la disposizione dei tastisecondo lo schema USA priva quindi di qualunque segno accentato come si vedenella figura 36 Tuttavia chi scrive ormai esegue automaticamente lrsquooperazioneper esempio di battere assieme i tasti alt e lsquo e successivamente il tasto Eper avere nello schermo il carattere lsquoEgraversquo

364 Le tastiere virtualiAbbiamo visto sopra che sulle macchine Mac esiste un applicativo che permettedi mostrare il layout della tastiera in uso e che permette di scrivere anche i segniche non sono serigrafati sui tasti Lavorando con la mano sinistra sui tasti dicontrollo e con la mano destra sul mouse si riesce a scrivere praticamente con ognitastiera il cui driver sia stato installato nel sistema Questo egrave particolarmente

37 GLI SHELL EDITOR 37

utile per scrivere anche in alfabeti diversi da quello al quale corrisponde latastiera fisica connessa allrsquoelaboratore Ecco quindi come si puograve agevolmentescrivere in cirillico o in greco Ma apparentemente questo si puograve fare solo sullemacchine Macintosh

Non egrave cosigrave Anche se chi scrive non egrave la corrente di programmi di visualizza-zione di una tastiera virtuale interattiva sulle macchine Windows o Linux (cheesisteranno sicuramente ma lo scrivente non ne egrave a conoscenza) oggi si stannodiffondendo gli schermi touch screen

Per lo piugrave questa funzionalitagrave touch screen viene riservata ad alcuni giochi o aoperazioni grafiche Ma questi elaboratori possono davvero funzionare senza unatastiera materiale consentendo allrsquoutente di servirsi del disegno della tastierariportato sullo schermo lrsquoutente tocca i tasti virtuali sullo schermo e il testoappare nel documento che si sta scrivendo Estremamente comodo e funzionaleanche se costringe lrsquoutente a scrivere in una posizione innaturale su una tastierasostanzialmente verticale come lo schermo e non orizzontale come una tastieramateriale

Tuttavia se si dispone di una tastiera italiana ma si desidera usare unatastiera USA per esempio basta averne caricato il driver e averlo azionatotoccando lrsquoapposta icona nella barra inferiore o superiore dello schermo Se sivuole usare una tastiera greca lo stesso basta averne caricato il driver e avertoccato la sua icona per attivare quella tastiera E cosigrave vale per ogni tastiera conuno schema dei tasti diverso da quello della tastiera fisica in uso

Oggi poi si stanno diffondendo dei leggeri e non tanto piccoli elaboratoriportatili dotati di schermo touch screen essi posono anche essere privi di unatastiera fisica Se dispongono di una tastiera (tablet PC) si puograve ruotare loschermo in posizione orizzontale coricandolo sopra la sua tastiera e usarlo perscrivere con le mani nella posizione solita ed ergonomicamente valida Questipiccoli elaboratori possono essere usati tranquillamente non solo come tastierevirtuali ma se sono di potenza adeguata (disco RAM velocitagrave dimensioni delloschermo) possono anche sostituire completamente un PC ldquonormalerdquo sia esso datavolo o da viaggio

Il problema tastiera con questi dispositivi cessa di essere un problema

37 Gli shell editorNelle versioni precedenti alla 090 di questa Introduzione non si era deliberata-mente fatto nessun cenno agli shell editor percheacute si riteneva che questo fosse unargomento facoltativo non direttamente collegato con la composizione tipograficacon LATEX

In un certo senso questo argomento egrave ancora valido in rete e in commercioesistono tanti diversi shell editor adatti ai vari sistemi operativi che forse crsquoegraveaddirittura lrsquoimbarazzo della scelta tuttavia si egrave ora ritenuto che fosse necessariodedicare un cenno a qualche shell editor specialmente quelli che sono direttamentedisponibili con i software di installazione del sistema TEX

Di alcuni shell editor basta conoscere il nome cercare su Internet e scaricaredallrsquoopportuno sito il programma di installazione provvedere allrsquoinstallazione epoi farne uso in modo da imparare progressivamente a sfruttarli al meglio

Essi hanno in comune alcune caratteristiche

38 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

bull permettono di creare e correggere (editare in gergo) file puramente testualinon formattati o comunque di salvare il file in modo che contenga solo iltesto e il mark-up senza nessuna informazione sulla formattazione del testose non quella contenuta nel file di classe e nei file di estensione usati Quasitutti permettono di scegliere fra diverse codifiche dei caratteri immessi datastiera i piugrave recenti e meno caratteristici di una particolare piattaformaconsentono lrsquouso della codifica UNICODE Si parleragrave diffusamente piugraveavanti in diversi capitoli della necessitagrave di scegliere opportunamente lacodifica per i file sorgente (vedi lrsquoappendice D)

bull Durante il processo di editing egrave possibile avere in azione uno o piugrave correttoriortografici per una o piugrave lingue Inoltre alcuni editor possono eseguire ope-razioni di taglia e incolla non solo per gruppi di righe ma anche per blocchirettangolari di un certo numero di righe che si estendono orizzontalmenteper un certo numero di colonne con questi editor il mouse ha anche dellefunzioni di selezione piugrave estese di quelle che sono normalmente disponibili

bull Per quel che riguarda il testo da comporre egrave generalmente possibile sceglierela codifica (encoding) dei caratteri introdotti con la tastiera e se questaegrave di tipo avanzato egrave anche possibile scegliere la codifica UNICODE alpunto da poter introdurre direttamente caratteri di altri alfabeti ancheretrogradi e gli ideogrammi delle lingue dellrsquoestremo oriente

bull Se si sceglie di suddividere il file del documento in tanti spezzoni didimensioni minori essi generalmente consentono di editare diversi file allavolta

bull Essi generalmente consentono di scrivere e salvare su disco i file sorgenteper qualunque programma del sistema TEX come si vedragrave i programmidi composizione di questo sistema non si limitano al solo LATEX e non silimitano solamente alla composizione di testi ma anche alla creazione didisegni vettoriali o a matrici di punti quali sono ad esempio gli stessicaratteri con cui vengono composti i testi

bull Permettono di cliccare su un bottone virtuale con il puntatore del mousebottone scelto fra una serie di bottoni per scopi analoghi oppure di scegliereil programma di composizione da una lista di un menugrave a caduta per salvareil file e per lanciare direttamente il programma di composizione

bull Dopo lrsquoesecuzione del programma di composizione se non ci sono statierrori lo shell editor apre direttamente il programma di visualizzazioneadatto al formato di uscita del documento composto Se invece ci sonoerrori lo shell editor permette di aprire il file ldquodi registrordquo nel quale sonoelencati gli errori in modo da mettere in relazione le righe diagnosticatecome erronee come appaiono nel file di registro con le righe presenti nelfile sorgente cosigrave da poter navigare facilmente avanti e indietro fra il file diregistro e il file sorgente

bull Nello stesso tempo se non ci sono errori di mark-up ma il testo compostopresenta dei refusi o delle frasi incomplete erronee imprecise oscure oaltro lo shell editor permette di navigare avanti ed indietro fra la finestra divisualizzazione del documento composto e la finestra dellrsquoeditor contenente

37 GLI SHELL EDITOR 39

il file sorgente in modo da usare la finestra di visualizzazione come sefossero le bozze del documento cosigrave da apportare le debite correzioni omodifiche al file sorgente In genere questa operazione su alcune piattaformerisulta piugrave difficile o impossibile con il formato PDF ma egrave sempre possibilecon il formato DVI anche se poi il documento finale verragrave prodotto conil formato PDF Sui sistemi Mac questo inconveniente non si presentamai percheacute il programma di visualizzazione integrato in TEXShop egrave fattoapposta per gestire agilmente i file in formato PDF che rappresentanoil formato di default di tutti i documenti presenti sulle macchine MacOra perograve cominciano ad essere disponibili editor multipiattaforma checonsentono di spostarsi agevolmente fra punti corrispondenti della finestradi composizione contenente il file sorgente e della finestra di visualizzazioneanche con il formato PDF

bull Alcuni shell editor sono multipiattaforma vuoi percheacute sono scritti in unlinguaggio interpretato per esempio Java vuoi percheacute vengono prodottisimultaneamente nelle versioni adatte alle tre piattaforme principali

bull Alcuni shell editor sono freeware altri sono shareware le distribuzioni com-merciali del sistema TEX contengono shell editor specifici della particolareversione commerciale e quindi sono per cosigrave dire compresi nel prezzo

bull Alcuni programmi non sono dei veri e propri shell editor ma consentono divisualizzare direttamente il prodotto della composizione oppure permettonodi presentare schermate che assomigliano fortemente al risultato finale nelsenso che i comandi di mark-up (almeno alcuni) sono giagrave interpretati inmodo da mostrare sulla finestra dellrsquoeditor praticamente solo il testo Diquesti programmi si faragrave nel seguito un breve cenno separatamente dallebrevi descrizioni relative agli shell editor veri e propri

371 Shell editor multipiattaformaCome giagrave accennato esistono shell editor multipiattaforma lo stesso programmagira su macchine diverse con hardware e software diversi Questo egrave possibilese i programmi relativi sono scritti in un linguaggio interpretato di cui esistalrsquointerprete per tutte le piattaforme per esempio il linguaggio Java con la suaJava Virtual Machine

Altri shell editor sono multipiattaforma nellrsquoaltro senso cioegrave chi li ha prodottiha compilato i codici sorgente in modo da ottenere i codici eseguibili validi pertutte e tre le piattaforme principali a parte questo dettaglio tecnico essi hannoanche lo stesso aspetto da un punto di vista grafico ed hanno esattamente lestesse prestazioni gli stessi comandi le stesse scorciatoie eccetera

Alcuni sono multipiattaforma nel senso che chi li ha prodotti ha provvedutoa generare i file di installazione che ne permettono lrsquouso immediato ma soloper due sistemi operativi mentre per il terzo sono necessarie procedure parti-colari per lrsquoinstallazione in ogni caso lrsquoaspetto grafico e il funzionamento sonosostanzialmente identici

emacs egrave un potentissimo shell editor molto noto agli utenti dei sistemi UNIXassociato alla sua estensione auctex permette di editare file LATEX con unaserie di facilitazioni ben congegnate questa estensione consente anche di

40 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

eseguire la compilazione e la successiva previsione dellrsquoaspetto grafico diparti selezionate del file sorgente In pratica selezionando una parte del filesorgente e cliccando su un opportuno bottone (o dando da tastiera uno deinumerosissimi comandi abbreviati ottenuti premendo contemporaneamenteuno o piugrave tasti di controllo (Ctrl Shft Alt ) e un altro tasto (letteracifra ecc)) si puograve compilare e vedere nel visore del file di uscita quelbrano giagrave composto come lo farebbe latex questa funzionalitagrave egrave moltoutile specialmente quando si devono comporre formule complicate tabellecomplicate disegni ecceteraemacs consente di usare tutti le possibili codifiche dei font in entrataanche se con le macchine Windows meno recenti converrebbe impostarelrsquoencoding ansinewQuesto editor egrave potentissimo ma molti utenti lo trovano difficile da usareesso diventa formidabile quando si conoscono a memoria moltissimi comandiabbreviati cosiccheacute non sia quasi mai necessario ricorrere al mouse che ipuristi non usano mai

TeXmaker ha ottime caratteristiche per la gestione dei file sorgente permettedi vedere la struttura del documento di disporre di menugrave a discesa perselezionare i vari simboli matematici i vari ambienti i caratteri non ASCIIcon comodi pulsanti a lato della barra a sinistra del panello dellrsquoeditorConsente di fare il passaggio dalla finestra del file sorgente alla finestra delfile composto e viceversa se lrsquooutput egrave in formato DVI TeXmaker disponeora anche di un visualizzatore integrato per i file in formato PDF con ilquale consente la ricerca diretta e inversa purcheacute il commando per lanciarepdflatex contenga lrsquoopzione -synctex=13La prima volta che si usa TeXmaker esso fa una scansione del sistema pervedere quali strumenti siano giagrave installati e li inserisce direttamente nellaconfigurazione del programma configurazione che in un secondo tempolrsquoutente puograve cambiare a piacimento in particolare per quel che riguardalrsquoencoding dei caratteri in entrataGli utenti che sulla loro macchina Windows abbiano il sistema operativo initaliano (e in Italia credo che siano decisamente la maggioranza) stiano perograveattenti stranamente certi programmi accessori come per esempio AdobeReader sono individuati correttamente ma nel comando per accederviessi sono indicati con il percorso in inglese (cosigrave si trovano indicati nellaRegistry di ogni sistema Windows) ma sui sistemi in italiano la cartelladei programmi non si chiama CProgram files bensigrave CProgrammiLrsquoutente deve correggere a mano questa indicazione altrimenti chiedendolrsquoesecuzione di quel programma TeXmaker segnaleragrave che non lo trovaPiccolo bug ma facilmente correggibile Probabilmente dalla versione 21questo problema egrave stato risoltoChi scrive lrsquoha usato e trova che sia eccellente Esso puograve essere fattolavorare con il visualizzatore esterno SumatraPDF con il quale egrave possibilesincronizzare le finestre di composizione e di visualizzazione come con ilvisualizzatore interno ma lasciando inalterate tutte le altre funzionalitagrave di

3Questo egrave possibile a partire dalla versione 21 del programma

37 GLI SHELL EDITOR 41

SumatraPDF Si tenga presente che il formato PDF diventeragrave de facto lostandard per la composizione dei documenti

TeXmakerX egrave una estensione di TeXmaker che consente anche di eseguire laprevisione di parti selezionate del file sorgente Credo che sia preferibileusare questa versione estesa piuttosto che la versione standard essodalla versione 20 contiene il visualizzatore interno ma puograve venire anchesincronizzato con il visualizzatore SumatraPDF

TeXworks egrave un programma freeware multipiattaforma derivato dal programmaTeXShop per i calcolatori Mac egrave uno shell editor la cui versione stabi-le viene installata direttamente sulle macchine Windows e Mac quandosi installa TEX Live o MacTEX rispettivamente per le macchine Linuxbisogna installarlo appositamente come spiegato qui appresso In ognicaso si possono scaricare dal suo sito le versioni in evoluzione per Win-dows e Mac per installare TeXworks sulle macchine Linux bisogna sca-ricare il pacchetto dei file sorgente e bisogna completare le librerie indotazione al sistema poi diventa abbastanza facile seguire le indicazio-ni nel sito httpcodegooglecomptexworkswikiBuilding per laparticolare versione del sistema operativo Linux che si sta usandoPer gli utenti della distribuzione MiKTEX non crsquoegrave per ora nessun sugge-rimento che il programma sia giagrave disponibile (in fondo egrave ancora mdash oggisiamo a dicembre 2010 mdash alla versione 030) chi ne ha sentito parlare lotrova giagrave ligrave nella cartella MiKTeX29miktexbin se si vuole se nepuograve creare una ldquoscorciatoiardquo da trasferire sul desktop in modo da poternefare lrsquouso che si desidera La prima volta che lo si usa esso cerca i file dicui ha bisogno e configura tutto o quasi quello che serveTeXworks egrave in grado di usare lrsquoencoding UNICODE e di lanciare tutti iprincipali programmi di composizione del sistema TEX Il suo visualizzatoreintegrato perograve visualizza direttamente i file di uscita in formato PDF epermette di passare direttamente con un semplice click del mouse dallafinestra di composizione al punto corrispondente della finestra di visualiz-zazione e viceversa il visualizzatore egrave molto rapido Le dimensioni delledue finestre sono adeguate a riempire bene uno schermo panoramico inmodo da averle affiancate senza sovrapposizioniDispone di un comodo correttore ortografico usabile per diverse linguesolo il dizionario ortografico per lrsquoinglese egrave preinstallato per lrsquoitalianobisogna scaricare lo stesso file di correzione ortografica che usa OpenOf-ficeorg e metterlo in una apposita cartella e cosigrave bisogna fare per lealtre lingue il cui dizionario ortografico non sia giagrave preinstallato Conla distribuzione di MiKTEX29 le lingue preinstallate sono aumentateoltre allrsquoinglese americano ci sono anche i file di correzione ortograficaper il francese e per il tedesco se si vuole aggiungere la possibilitagrave dicorreggere anche lrsquoitaliano o qualunque altra lingua bisogna farlo primadi avviare la prima volta TeXworks bisogna inserire i due file it_ITaffe it_ITdic del correttore ortografico di OpenoOffcieorg nella cartellaProgrammiMiKTeX29hunspelldicts insieme agli altri file del-lo stesso genere per le lingue giagrave installate Quando si apre TeXworks per laprima volta esso si autoconfigura e riconosce la presenza dei file in questio-ne selezionabili per la verifica ortografica del testo italiano Al momento

42 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

TeXworks non egrave ancora in grado di aggiungere voci al dizionario ortograficoma egrave una delle operazioni previste durante lo sviluppo di questo editorConsente di interpretare direttamente certe speciali linee di commentoallrsquoinizio dei file sorgente in modo da poter specificare sia il programma dicomposizione desiderato sia lrsquoencoding del particolare file sia importan-tissimo il nome del file principale il master file in modo che il progettopossa essere gestito senza file ausiliari Questo shell editor dispone anchedella prerogativa del completamento dei comandi si comincia a scrivereun comando poi si batte il tasto Tab o minusrarr fincheacute sullo schermo nonappare il comando completo desiderato Nel file di Aiuto sono elencateanche le numerose scorciatoie che esso consente di usare quando si desideraevitare lrsquouso del mouse Certamente in poco tempo verranno messi in lucesia gli errori sia le prestazioni ancora mancanti e per quando saragrave arrivatoalla versione 10 (probabilmente anche prima) diventeragrave de facto lrsquounicoshell editor per tutte le piattaforme

Questi shell editor multipiattaforma sono i piugrave consigliabili in generale sepoi uno desidera avvalersi di prestazioni particolari su una macchina particolareallora puograve considerare la possibilitagrave di installare uno shell editor specifico fraquelli descritti nelle sezioni seguenti

372 Shell editor per le macchine WindowsPer le macchine Windows il disco di installazione TEX Live offre la possibilitagravedi installare il freeware TeXnicCenter il programma di installazione del sistemaMiKTEX ProTEXt segnala la possibilitagrave di installare lo shareware WinEdt oil freeware TeXmaker indicandone i siti da cui eseguire il download In retesi trovano anche il freeware LED e lrsquoestensione TeXmakerX Esiste anche unaversione del freeware emacs per le macchine Windows

WinEdt egrave un programma shareware ottimo specialmente sviluppato per le mac-chine Windows del cui sistema operativo sfrutta non poche librerie di-namiche usa solo la codifica dei font in entrata specifica delle macchineWindows e offre al ldquotastieristardquo la possibilitagrave di immettere una grandequantitagrave di caratteri non rappresentati direttamente sulla tastiera segnispeciali e lettere con ogni possibile segno diacritico permette di introdurrequasi tutti i segni compresi nello standard ISO 8859-1 ma in senso strettoper avere la massima possibilitagrave di scrittura sarebbe meglio inserire nelpreambolo del documento la specifica

usepackage[ansinew]inputenc

Il programma permette di disporre di una moltitudine di menugrave che con-sentono con un solo click del mouse di introdurre nel testo sorgente lemacro che individuano i simboli e i segni degli operatori matematici divario genereEsso permette di disporre di maschere (template) per ogni genere di am-biente testuale grafico o matematico cosiccheacute inserita la maschera nel filesorgente non resta che riempirla con le informazioni specifiche del materialeda comporre

37 GLI SHELL EDITOR 43

Cosigrave come egrave distribuito il programma dispone di una moltitudine divocabolari per la verifica ortografica per motivi storici la lista di paroleche compongono il dizionario per la lingua italiana egrave molto ricco ma leparole tronche sono prive di accento questo apparente inconveniente vieneeliminato con lrsquouso percheacute ogni volta che una parola tronca correttamenteaccentata (e ovviamente anche scritta correttamente) presente nel filesorgente viene segnalata come errata basta usare un click di mouse peraggiungerla al dizionario dopo pochi giorni drsquouso le parole tronche chelrsquoautore usa abitualmente sono tutte inserite nel dizionario successivamentela mancanza di altre parole tronche viene segnalata solo raramenteIl programma permette di definire un ldquoprogettordquo vale a dire di definirein una struttura interna in un file con estensione prj lrsquoelenco completodei file che compongono un dato documento e permettono di registrareanche le impostazioni per il o i dizionari da usare per quel documento cosigravecome altre impostazioni in merito per esempio alla gestione delle righeche compaiono troppo lunghe per restare completamente nello schermo

TeXnicCenter offre prestazioni simili ma meno estese di quelle che si possonoavere con WinEdt gli utenti lo trovano (oltre che gratuito) piugrave semplice dausare di WinEdt ma le prestazioni sono secondo chi scrive decisamenteinferiori

LED egrave un programma freeware con alcune caratteristiche particolari come peresempio quella di sfruttare bene gli schermi ldquopanoramicirdquo dei moderni PCe laptop infatti egrave possibile tenere aperte simultaneamente una accantoallrsquoaltra le finestre del testo sorgente e quella del testo composto (soloperograve in formato DVI) cosiccheacute la navigazione da una finestra allrsquoaltraavviene in modo semplicissimo e comodissimo per controllare errori refusiimprecisioni o altro La schermata del testo composto viene aggiornataautomaticamente ogni volta che si clicca sul bottone per lrsquoesecuzione dellacomposizione in formato DVI che data la velocitagrave dei PC moderni dagravequasi lrsquoillusione di una composizione sincronaPer altro le funzionalitagrave di LED sono simili a quelle degli altri programmigiagrave descritti purtroppo non dispone di un visore diretto di file in formatoPDF per cui bisogna ricorrere ad un programma esterno per esempioAdobe Reader che perograve non si integra perfettamente con il programmaLED altrettanto bene del visore interno per i file in formato DVI cosiccheacutesi perdono un poco le prestazioni che LED offre con questrsquoultimo formato

TextPad egrave uno shareware leggermente piugrave economico di WinEdt (32euro contro40euro) e anche leggermente meno performante molti sviluppatori di soft-ware lo usano percheacute permette di gestire file anche di grandi dimensioni(contrariamente al piccolo Notepad di serie su ogni macchina Windows)ma TextPad garantisce una piccola ldquoinvasivitagraverdquo della memoria RAM Neesiste anche una versione localizzata in italiano cosiccheacute almeno per loshell editor gli utenti poco ferrati in inglese si sentono a loro agio

Kile egrave uno shell editor che opera solo su macchine Linux e che abbiano lrsquointerfacciagrafica KDE (vedi poco piugrave avanti) per le macchine Windows esiste ilprogramma CygWin che permette di emulare il sistema operativo UNIXLinux allrsquointerno di un apposito ambiente grafico dentro questo ambiente

44 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

CygWin egrave possibile installare una versione dellrsquointerfaccia grafica KDEper cui anche sulle macchine Windows si puograve usare Kile Forse sembracomplicato tutto questo marchingegno per simulare un ambiente Linuxtuttavia esistono moltissimi altri programmi freeware che possono venireinstallati allrsquointerno di CygWin oltre che sulle macchine Linux e checonsentono di eseguire processi di elaborazione mai previsti o non ancoraprevisti per le macchine Windows

373 Shell editor per le macchine LinuxCon le macchine Linux si ha una grande disponibilitagrave di programmi adatti ascrivere ed editare file testuali anche percheacute in questo sistema si fa un grandeuso di scripting cioegrave di programmi scritti senza particolari formattazioni anzispesso contenenti solo i caratteri da 32 a 127 della pagina ASCII dei caratteri4

Gli utenti fortemente coinvolti con una macchina Linux e che usano loscripting in modo esteso generalmente si servono del programma vim oppure delprogramma emacs Per usare un vero shell editor appositamente previsto perlrsquouso con LATEX si puograve ricorrere al programma Kile purcheacute lrsquointerfaccia graficasia lrsquointerfaccia KDE

vim egrave un programma con una interfaccia grafica virtualmente assente moltoveloce e molto efficace nelle mani di un utente di Linux molto espertoma poco utile ad un utente ldquonormalerdquo Egrave solamente un efficacissimo ldquotexteditorrdquo ma non lo si puograve chiamare ldquoshell editorrdquo nel senso stretto dellaparola Esiste una versione con interfaccia grafica che egrave piugrave facile da usarema resta sempre solo un editor di testi

emacs egrave giagrave stato descritto come programma multipiattaforma e non sarebbenecessario aggiungere altro Merita invece segnalare che emacs egrave installatodi default in ogni distribuzione delle varie implementazioni del sistemaoperativo Linux quindi ogni utente Linux ne dispone per il solo fatto diusare una macchina con sistema operativo LinuxConviene ricordare di usare sempre lrsquoopzione auctex che fa diventare emacsun vero shell editor per LATEX oltre a consentire la visualizzazione quasisincrona di tratti selezionati del file sorgente

Xemacs egrave una versione di emacs piugrave avanzata e che giagrave contiene alcune delleprerogative del plug-in auctex il quale egrave ugualmente adatto anche a Xemacsemacs egrave normalmente installato insieme al sistema Linux Xemacs inveceva installato deliberatamente Esiste una versione di Xemacs anche per lemacchine Windows

Kile per i sistemi Linux che dispongono del ldquoK Desktop Environmentrdquo in siglaKDE egrave disponibile anche lo shell editor Kile KDE Integrated LATEXEnvironment Si tratta di un ottimo shell editor con tutte le funzionalitagravenecessarie e giagrave descritte per altri shell editor in piugrave esso ha indicazioni

4Sarebbe la prima mezza pagina di ogni codifica di caratteri che contenga solo 256 caratterioppure moltissime pagine ognuna di 256 caratteri come la codifica UNICODE La codificaANSI contiene una unica pagina di 256 caratteri le varie codifiche ISO 8859 contengonociascuna una sola pagina di 256 caratteri Per tutte le codifiche perograve la prima mezza paginadella prima o dellrsquounica pagina contiene i caratteri ASCII

37 GLI SHELL EDITOR 45

grafiche che permettono di controllare gli ambienti testuali o matematiciin modo che si puograve essere sicuri che ogni apertura di ambiente abbia lacorrispondente chiusura (questo egrave il minimo che si puograve richiedere e in unmodo o nellrsquoaltro quasi tutti gli shell editor offrono questa funzionalitagrave) mapermette anche di ldquochiudererdquo ciascun ambiente vale a dire si puograve contrarresullo schermo tutto lrsquoambiente ad una sola riga in modo che lavorando sulfile sorgente si possa esaminare con piugrave semplicitagrave il testo che precede equello che segue lrsquoambiente cliccando su una piccola icona a forma di lrsquoambiente viene nuovamente espanso si tratta di una funzionalitagrave graficamolto utileKile permette anche di sfruttare il completamento dei nomi vale a direche quando si comincia a scrivere una macroistruzione per esempio ilprogramma dopo qualche carattere presenta un menugrave a discesa con tutti inomi che cominciano con quelle lettere e fra i quali si puograve scegliere il nomegiusto Per gli ambienti non appena si scrive lo statement di aperturaKile inserisce subito dopo lo statement di chiusura se lrsquoambiente richiedeobbligatoriamente dei parametri esso inserisce anche le parentesi graffeche li racchiuderanno sta poi al ldquotastieristardquo di completare il gruppodei parametri e di inserire il contenuto dellrsquoambiente Ad alcuni questafunzionalitagrave piace moltissimo e in generale egrave considerata una funzionalitagravemolto utile per qualsiasi editor altri ne sono un poco infastiditi ovviamentesi tratta di gusti personali per venire incontro ai quali Kile permette diconfigurare la finestra di editing con o senza questa funzionalitagraveQuando si esegue una composizione diciamo con pdflatex Kile provvededirettamente a ripetere la compilazione quante volte occorre affincheacute tuttii riferimenti incrociati siano corretti che la bibliografia contenga tutti iriferimenti correttamente collegati con i richiami che lrsquoindice analiticosia aggiornato eccetera Anche questa funzionalitagrave puograve venire disabilitataper la lavorazione iniziale di un documento e riattivata nella fase finalecosiccheacute si possa essere sicuri che il documento sia globalmente completo ecorrettoLe macchine Linux che operano con lrsquointerfaccia grafica Gnome possonocomunque attivare una parte ridotta dellrsquointerfaccia KDE in modo da poterusare ugualmente Kile oppure possono ricorrere al programma seguente

gedit-LaTeX-plugin gedit egrave il semplice editore testuale con interfaccia graficadisponibile sulle macchine Linux con il desktop gnome Questo sempliceeditor accetta lrsquoinnesto di plug-in e il gedit-LaTeX-plugin egrave quello chepermette di gestire i file LATEX attraverso la sua semplice interfaccia graficaMa questo plugin offre numerose prestazioni utili per la gestione la modi-fica e lrsquoesecuzionecompilazione dei file LATEX Precisamente consente dicompletare i comandi controlla la sintassi del mark-up di LATEX permettedi avere come Kile TeXmaker e TeXmakerX una finestra laterale con lastruttura dei un documento complesso e permette di navigare facilmente daun punto allrsquoaltro dei file sorgente dispone di un certo numero di ldquoWizardrdquoche svolgono diversi compiti gestisce anche i file sorgente da elaborare conBIBTEX Consente di usare e volendo di modificare gli schemi iniziali deidocumenti da comporre consente di creare degli ldquosnippetsrdquo per estenderela gestione e il controllo dei comandi e degli ambienti personali allo stesso

46 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

modo di come esso fa da solo per i comandi e gli ambienti standard diLATEX e dei pacchetti piugrave comuni permette di creare degli strumenti dicompilazione personalizzati dispone di un visualizzatore PDF integratocome TeXworks e TEXShop e grazie a questo fatto ha lo stesso tipo disincronizzazione fra il file sorgente e in file composti in formato PDFDispone degli strumenti necessari per il controllo ortograficoLa pagina iniziale di questo gedit-LaTeX-plugin creato da Michael Zeising sitrova in httpwwwmichaels-websitedegedit-latex-plugin mail plug-in che consiste sostanzialmente di un programma scritto in Py-thon si trova nel sito httpsourceforgenetprojectsgedit-latexfiles Ovviamente questo plug-in dipende da altri pacchetti e altre li-brerie generalmente presenti su ogni macchina Linux allrsquooccorrenza on egravedifficile installare le librerie mancantiApparentemente gedit e quindi questo plug-in sono installabili anche sullemacchine Macintosh con sistema operativo Mac OS X

TeXworks egrave lo stesso programma descritto per le macchine Windows solo che inrete si trovano alcune distribuzioni binarie giagrave usabili e installabili con i solitistrumenti di installazione delle specifiche distribuzioni Linux altrimenti pertutti egrave disponibile la ldquotarballrdquo con i file sorgente ed egrave possibile compilare ilprogramma con le caratteristiche che si desiderano ma piugrave propriamentecon le funzionalitagrave e le librerie presenti sulla propria macchina

TeXmaker egrave lo stesso programma descritto per le macchine Windows ma sulsuo sito crsquoegrave anche un certo numero di eseguibili giagrave predisposti per diversedistribuzioni Linux Anche con questo programma esiste la possibilitagrave dicostruirsi il programma personalizzato per la propria macchinaSi veda la descrizione svolta nella sezione relativa alle macchine Windowsper conoscerne le funzionalitagrave Molto comodo per usare lrsquoencoding UNI-CODE ma questo lo fa anche Kile I due programmi hanno caratteristichesimili anche se forse Kile egrave un poco piugrave performante

TeXmakerX egrave lo stesso programma descritto per Windows ed ha le stesse presta-zioni oltre alle proprie specifiche che gli consentono di fare molte piugrave cosee meglio

374 Shell editor per le macchine MacintoshQui ci si riferisce a macchine Mac recenti operanti con il sistema operativoMac OS X questo egrave un sistema UNIX con lrsquointerfaccia grafica raffinata tipica dellemacchine Mac Su queste macchine possono venire montati anche i programmivalidi per Linux e appositamente integrati con lrsquointerfaccia grafica per MacQuindi buona parte di ciograve che si egrave detto per le macchine Linux egrave applicabile anchealle macchine Mac tuttavia esistono programmi specifici creati e sviluppati perqueste macchine sarebbe opportuno farne uso proprio per sfruttare al meglio lespecificitagrave di questo sistema operativo per il quale ogni documento egrave generalmentescritto solo usando i formati PDF oppure RTF oppure XML (bersquo molte partipre-esistenti scritte in HTML sono ugualmente usate ma generalmente nonriguardano i documenti creati dagli utenti)

37 GLI SHELL EDITOR 47

TEXShop egrave lo shell editor che accompagna di default il sistema TEX quandoquesto viene installato con MacTEX Dal punto di vista dellrsquoediting deltesto questo editor non egrave fortissimo ma offre tutte le funzionalitagrave principalidescritte per gli altri shell editor forse manca di piccole funzionalitagravedi secondaria importanza esso dalla versione 2 in avanti egrave stato moltoarricchito di nuove funzionalitagrave e puograve reggere benissimo il confronto congli altri shell editor

Invece possiede nativamente un funzionalitagrave unica che normalmente mancanegli altri shell editor tranne TeXworks vale a dire la possibilitagrave di navigarenei due sensi fra la finestra di editing testuale e quella di visualizzazione deltesto composto Questa funzionalitagrave egrave formidabile tutte le volte che si usail sistema TEX ma egrave particolarmente gradita sulle macchine Mac visto cheil formato di default dei documenti composti egrave comunque il formato PDFCerto egrave possibile configurare il motore di composizione affincheacute il formatodi uscita sia quello DVI ma la funzione di visualizzazione attraverso ilprogramma integrato in TEXShop richiede comunque sempre il formatoPDF per cui lrsquoeventuale file DVI prodotto viene subito ldquodistillatordquo nelformato PDF Si puograve installare un visualizzatore come xdvi per il formatoDVI e si puograve configurare TEXShop in modo che usi quel visualizzatoreinvece del suo visualizzatore interno ma questa sembrerebbe la strada perrendere complicate le cose semplici

Aquamacs egrave una versione speciale di emacs adattata allrsquointerfaccia grafica deisistemi Mac dalla versione 20 in poi egrave particolarmente indicata per ilsistema operativo Mac OS X 105 e per le versioni successive

Pur conservando lrsquointera funzionalitagrave di emacs contiene una vasta seriedi menugrave con i comandi che normalmente si trovano nei programmi per lepiattaforme Mac inoltre integra giagrave lrsquoestensione auctex per cui quandosi crea o si apre un file LATEX il programma cambia automaticamente ilsuo aspetto e la sua barra dei comandi per mostrare allrsquoutente quanto egravedisponibile nel caso si debba editare un file LATEX Funziona con lo stessocorrettore ortografico di TEXShop Se il visualizzatore PDF che si associaa Aquamacs egrave Skim esso consente la sincronizzazione fra i file sorgente eil file composto in formato PDF piugrave o meno con la stessa funzionalitagrave diTeXworks

Un suo vantaggio molto utile nella gestione del file sorgente egrave costituitodalla serie di ldquointerpretazionirdquo dei comandi LATEX che consentono di dareun colore diverso una forma diversa una grandezza diversa alle parti ditesto marcate con il mark-up di LATEX un comando section avragrave quindiil suo argomento scritto in corpo decisamente maggiore del testo normalecolorato in blu scuro e sostanzialmente in grassetto Un testo da evidenziarepassandolo come argomento al comando emph appariragrave composto nellafinestra di editing con un font inclinato e di colore contrastante Lo stessosuccede per le note e per gli argomenti di diversi altri comandi Questi giochidi colore risultano molto utili durante la fase di creazione e di modifica delfile sorgente va da seacute che sono attuati tutti gli altri espedienti utili perevitare gli errori piugrave comuni per esempio mediante lrsquoaccoppiamento delleparentesi dello stesso tipo allo stesso livello

48 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

Esso presenta la possibilitagrave di vedere direttamente nella finestra del filesorgente le equazioni e i disegni giagrave trasformati in immagine compostacon pdflatex egrave ovviamente possibile tornare al file sorgente anche percorreggere questi casi ma se il risultato egrave soddisfacente si puograve proseguirea elaborare il testo sorgente e il contenuto della finestra del file sorgentescorre sullo schermo portandosi dietro le parti che hanno giagrave subito questavisualizzazione parzialeLa sincronizzazione fra il file sorgente e il file PDF viene eseguita attraversoun programma di visualizzazione dei file PDF che si chiama Skim questoegrave un programma indipendente da Aquamacs e va installato per suo contoesso puograve venire configurato per agire in sincronizzazione con diversi editorin particolare anche con TeXmakerX che quindi anche sul Mac puograve giovarsidella stessa possibilitagrave di sincronizzazione che puograve avere sulle macchineWindows

emacs viene distribuito anche per operare nativamente con lrsquointerfaccia graficadel sistema Mac OS X quindi si puograve usare la combinazione emacs eauctex per operare come sulle macchine Linux emacs egrave molto piugrave potentecome editor testuale di TEXShop quindi potrebbe essere una buona sceltatuttavia anche con lrsquoaggiunta di auctex lo shell editor che si viene a formarepuograve navigare avanti e indietro solo con i file in formato DVI e questo portauna pesante ipoteca alla comoditagrave di lavorazione del documento

Kile Poicheacute il sistema operativo Mac OS X prevede anche lrsquointerfaccia graficaX Windows (tipica dei sistemi Linux) e consente lrsquoinstallazione dellrsquointer-faccia KDE si puograve usare anche il bello shell editor Kile ma sotto certiaspetti sembra un regresso rispetto a TEXShop

TextWrangler e diversi altri editor testuali specifici per il sistema Mac OS Xpossono essere utili ma non sono shell editor quindi non sono cosigrave comodiper la lavorazione di un documento TeXwrangler per altro puograve esseremolto utile per aprire e leggere i file log percheacute nativamente questaestensione egrave collegata ad altri applicativi che chi scrive non trova cosigravecomodi

TeXworks regge il confronto con TEXShop sebbene sia ancora nella sua infanziaPer aggiornarlo rispetto alla versione impacchettata nellrsquoinstallatore Mac-TeX lo si scarica dal suo sito come file zip che perograve contiene direttamentelrsquoapplicazione TeXworksapp basta estrarla dal file zip e metterla nellapropria cartella Applications per averlo direttamente funzionante Ci siricordi che per impostare la configurazione desiderata dopo averlo lanciatoalmeno una volta anche senza aprire nessun file bisogna fare come al solitocon i programmi Mac cioegrave aprire il menugrave a discesa cliccando sul nomedel programma presente nella barra superiore e ligrave scegliere ldquoPreferencesrdquoNei programmi per Windows e per Linux invece la scelta delle preferenzepersonali si trova come ultimo elemento del menugrave a discesa della voceldquoEditrdquo (ldquoModificardquo quando il programma egrave localizzato in italiano)Bencheacute questo programma nasca da TEXShop presenta alcune funzionalitagraveassenti in TEXShop altre funzionalitagrave sono eseguite in modo diverso comeper esempio la creazione del legame di subordinazione di un file sorgenteal suo master file Cosigrave la configurazione dei programmi delle scorciatoie

38 IL SISTEMA TEXMACS 49

dellrsquoencoding eccetera Egrave comodo che il pulsante per eseguire la composi-zione si presente sia nella finestra del file sorgente sia nella finestra del filecomposto

Non egrave escluso che in futuro TeXworks possa subentrare a TEXShop nelleprossime distribuzioni di MacTEX

TeXmaker presenta le stesse funzionalitagrave descritte per i sistemi Windows e lestesse limitazioni Per altro egrave un ottimo shell-editor esso egrave adatto anche allemacchine Mac percheacute egrave contiene un suo visualizzatore interno predispostoper la sincronizzazione

TeXmakerX ha gli stessi pregi giagrave descritti come shell editor multipiattaforma chiscrive non egrave riuscito a verificare se sia sincronizzabile con il visualizzatoredi file in formato PDF Skim sulla macchine Mac probabilmente sigrave maapparentemente questo nome manca dal menugrave di Skim e bisogna procederead una configurazione ldquoCustomrdquo

38 Il sistema TeXmacs

Il sistema di composizione TeXmacs egrave un editor testuale che presenta la finestradi editing esattamente come verrebbe se fosse composta con LATEX come editorha tutte o quasi le funzionalitagrave di emacs ma come interfaccia grafica egrave moltopiugrave vicina a quella dei sistemi WYSIWYG Il file composto puograve venire salvatoin formato compatibile con LATEX o pdfLATEX Sui file testuali cosigrave ottenutivolendo si puograve ulteriormente intervenire per apportare modifiche e inserire lefunzionalitagrave dei pacchetti di estensione di LATEX che TeXmacs non egrave in grado diinserire

Questo sistema di composizione egrave quindi utile per i principianti per farsilrsquoocchio a quello che si puograve ottenere con LATEX dati i suoi vincoli non lo siconsiglierebbe per una lavorazione di un documento complesso che richiedafunzionalitagrave estese del sistema TEX

Non crsquoegrave dubbio che per un principiante avere una sola finestra in cui eseguirelrsquoediting e vedere il risultato in modo assolutamente sincrono possa essere unvantaggio purtroppo lo si paga con una notevole riduzione delle funzionalitagrave dicomposizione che il sistema TEX consente

Il sistema TeXmacs egrave disponibile per tutti e tre i principali sistemi operativima di fatto egrave ldquonativordquo solo sui sistemi Linux La cosiddetta versione ldquonativardquoper Windows egrave obsoleta quella che si installa con un unico programma diinstallazione insieme ad una versione ridotta di CygWin CygTeXmacs nonsembra essere funzionante Tuttavia installando il simulatore di ambiente LinuxCygWin crsquoegrave la possibilitagrave di installare anche TeXmacs in modo corretto Peri sistemi Mac lrsquoinstallazione deve venire eseguita attraverso Fink o attraversoMacPorts ma questi a loro volta sono incompatibili con la simultanea presenzasulla macchina di una versione aggiornata di TEX Live anche se esistono degliespedienti per far funzionare due versioni diverse del sistema TEX

50 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

39 Il sistema LyXMolto migliore appare il sistema LYX questo editor consente di usare una finestradi editing dove il testo egrave composto con font a spaziatura proporzionale ilmark-up semplice (forma serie e corpo dei font sezionamento eccetera) vienevisualizzato direttamente sullo schermo producendolo con semplici operazionicon il mouse Il file sorgente quindi appare quasi come quello che verragrave prodottodalla compilazione mediate latex

Non ci sono le limitazioni di TeXmacs percheacute si possono inserire comandiLATEX come si possono invocare i piugrave diversi pacchetti di estensione di LATEXqueste operazioni possono venire eseguite dentro apposite finestrine intercalateal testo oppure nel preambolo in modo da non intralciare lrsquoaspetto generale deltesto composto sullo schermo che lo si ripete non egrave ciograve che verragrave composto daLATEX ma qualcosa che gli assomiglia

Molti dei pacchetti di estensione di LATEX hanno giagrave le opportune interfacceper essere usati con LYX per gli altri pacchetti bisogna arrangiarsi un porsquoper creare queste interfacce sebbene gli utenti che stanno usando la versione16 di LYX affermino che ora le cose sono molto piugrave semplici che in passatoQueste interfacce non servono a LYX per eseguire il codice LATEX che i pacchetticontengono ma servono per far sigrave che quel che LYX presenta sullo schermo sia ilpiugrave simile possibile a ciograve che si otterragrave quando si compila con latex o pdflatex

Le figure possono venire inserite con pochi click del mouse esse appaionosulla schermata di LYX ma non egrave detto che tutte siano elaborabili con latex sesi vuole eseguire un processo di elaborazione differita con latex ci si potrebbetrovare nei guai con figure incompatibili

LYX prevede per i propri documenti un formato specifico (file con estensio-ne lyx) e prevede opportuni bottoni nellrsquointerfaccia grafica per stampare ildocumento (processandolo attraverso pdflatex o altri compositori del sistemaTEX) come gli altri documenti che si possono gestire sul proprio PC o laptopTuttavia esso puograve esportare il suo contenuto in formato ldquoLATEXrdquo questo puograveessere comodo per collaborare con altri autori che non siano equipaggiati con ilprogramma LYX Chi scrive perograve ha moderatamente usato LYX fino una decinadi anni fa quindi i suoi ldquopregiudizirdquo potrebbero essere obsoleti come il sistemaLYX disponibile allora Tuttavia anche altri utenti di LYX hanno confermato cheil file tex che si ottiene in questo modo era ldquoterribilerdquo questo non egrave piugrave vero echi scrive se ne egrave accorto nellrsquoeseguire le prove necessarie per esporre il materialedel capitolo 22 Ora certamente fra i vari programmi che consentono di salvarei file in formato tex con il mark-up di LATEX LYX egrave senzrsquoaltro il migliore

Per altro lrsquoinstallazione di LYX presuppone che la macchina sui cui vienemontato contenga giagrave oltre a una versione del sistema TEX anche ghostscripte gview molte delle operazioni che esso svolge sono ottenute attraverso latexstesso il che fa pensare (erroneamente) che LYX tutto sommato non sia altro cheun editor piugrave comodo da usare e ben adattato al sistema TEX visto che molteoperazioni di mark-up sono ottenute come in altri ben noti word processor con iquali egrave probabile che lrsquoutente abbia giagrave una certa confidenza prima di mettersiad usare LYX o LATEX Egrave una visione un porsquo riduttiva ma certamente egrave possibileusarlo anche solo a questo livello Questo non implica che lrsquoutente di LYX debbaconoscere anche LATEX perograve se ne ha qualche rudimento egrave decisamente meglio

Certamente LYX non puograve presentare sullo schermo tutte le cose come verrannocomposte da LATEX durante la scrittura di un file basta scegliere dal menugrave View

310 LATEX E pdfLATEX 51

lrsquoopzione DVI5 e visualizzare il documento composto da LATEX le differenzesono notevoli Tuttavia il tipo di editing che LYX consente di eseguire assomigliaallrsquoapproccio di LATEX stesso cioegrave di impegnare lrsquoautore a concentrarsi sulcontenuto piuttosto che sulla forma WYSIWYM piuttosto che WYSIWYG

In sostanza LYX potrebbe essere consigliabile per utenti di media abilitagrave chenon richiedano programmazioni avanzate o pacchetti avanzati del sistema TEXLYX consente di richiamare nel preambolo qualunque pacchetto di estensioneanche pacchetti per i quali esso non sia giagrave attrezzato con una apposita interfacciacosigrave come consente di definire nuove macro nel preambolo ma se bisogna ricorrerea queste cose allora forse un semplice shell editor fa altrettanto bene egrave solouna questione di gusti Per le conversioni di formato per esempio da doc atex LYX egrave invece senzrsquoaltro lo strumento da preferire

LYX egrave disponibile per tutti e tre i principali sistemi operativi

310 LATEX e pdfLATEXEgrave bene che il lettore sappia che quando si dice LATEX si intende il linguaggiodi mark-up specifico per descrivere le componenti di un documento e di cuiparleremo approfonditamente nel resto di questo testo Nel linguaggio corrente siusa lo stesso nome per indicare il programma che interpreta il mark-up ed eseguela composizione del documento Quindi esso indicheragrave non solo il programma latexvero e proprio ma anche il programma pdflatex Questrsquoultimo ha la caratteristicache il suo formato di uscita egrave direttamente il formato PDF e non sono necessarieconversioni di nessun genere come egrave stato piugrave volte menzionato nei paragrafiprecedenti

Vale la pena sottolineare immediatamente le differenze nel file finale che siottiene direttamente con pdflatex rispetto a quello che si puograve ottenere mediantele trasformazioni giagrave menzionate cioegrave eseguendo in sequenza i programmi latexdvips e ps2pdf oppure latex e dvipdfm (o dvipdfmx)

Il programma diretto pdflatex produce un file PDF conforme agli standard edotato di tutte le caratteristiche che gli standard consentono dalle annotazioniai thumbnail6 dai link ai file o siti esterni ai link di navigazione interna deldocumento La composizione diretta in formato PDF consente anche una qualitagravetipografica decisamente superiore grazie alla possibilitagrave di usare la microtipografiase ne faragrave una descrizione abbastanza ampia in un successivo capitolo

Passare attraverso il formato DVI quello di default che si produce con ilprogramma latex comunque lo si trasformi non consente di ottenere tutte lefunzioni del formato PDF lsquoverorsquo percheacute il formato DVI di sua natura non puogravecontenere certe informazioni Esso egrave un modo per descrivere il layout di unapagina tipografica non di descrivere gli oggetti che ne fanno parte Egrave vero esiste

5Sulle macchine Mac scegliere questa opzione egrave praticamente la stessa cosa che sceglierelrsquoopzione PDF percheacute il visualizzatore di entrambi i tipi di file egrave comunque TEXShop il qualeprovvede automaticamente a ldquodistillarerdquo i file DVI per trasformarli in file PDF

6La parola inglese thumbnail alla lettera significa unghia di un pollice in italiano si userebbela parola unghia ma si riferisce a quegli intagli semicircolari sul margine esterno delle pagineche si trovano in grossi volumi di consultazione come dizionari ed enciclopedie e che servonoper agevolare la ricerca di una particolare sezione alfabetica del volume In informatica siattribuisce il nome di thumbnail alle immagini ridotte delle pagine o delle figure che compaionospesso sui bordi dei programmi di visualizzazione dei file PDF o nei programmi di sistema checonsentono di cercare i file nelle cartelle dei dischi

52 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

la possibilitagrave di aggirare queste limitazioni mediante un comando speciale cheappunto si chiama special e che permette di inserire nel file di uscita deibrani di un altro linguaggio che verragrave poi interpretato (o ignorato se non egraveconforme) dal programma di lsquotraduzionersquo del formato DVI in un altro formatooppure per essere visualizzato sullo schermo o per essere stampato Va comunqueprecisato che il formato DVI non consente lrsquouso della microtipografia e quindibencheacute la sua qualitagrave tipografica sia molto buona non egrave altrettanto buona diquella che si puograve ottenere con la generazione diretta del file PDF attraverso ilprogramma pdflatex

Il formato PDF si chiama appunto Portable Document Format propriopercheacute consente di lsquoportarersquo i documenti composti su qualunque piattaformadotata di qualunque sistema operativo basta che disponga di un visualizzatore difile PDF e perciograve egrave particolarmente indicato per i libri elettronici (o e-book comespesso vengono chiamati oggi) previsti non per essere stampati ma per esserelsquosfogliatirsquo sullo schermo Ovviamente il formato PDF va benissimo anche per lastampa e una volta stampato le possibilitagrave di navigazione interna o esternavengono comunque perse

Fino a poco tempo fa e in certi ambienti ancora oggi veniva data una grossapreferenza al formato PostScript chi lavora in ambiente UNIX e Linux continuaa privilegiare il formato PS grazie al fatto che questo formato negli anni rsquo80 e neiprimi anni rsquo90 era lrsquounico che potesse ricorrere a stampanti per la stampa direttadel formato PostScript Oggi i libri elettronici sono relativamente diffusi e stannodiffondendosi ancor di piugrave con la messa in commercio di piccoli apparecchi capacidi funzionare non solo come telefoni cellulari ma anche come navigatori di retelettori di libri elettronici riproduttori di file audio eccetera Dal punto di vistaarchivistico oggi esiste una norma ISO che impone lrsquouso del formato PDF al finedi produrre documenti elettronici archiviabili a lungo termine

Nel seguito quindi ci si riferiragrave quasi sempre al formato PDF prodottodirettamente con il programma pdflatex

Egrave bene precisare che i comandi da dare dalla linea di comando latex o pdflatexseguiti dal nome del file da elaborare si comportano come programmi ma inrealtagrave quei nomi sono solo utili per specificare sia lrsquointerprete dei comandi (ilvero motore di composizione) sia il tipo di mark-up contenuto nei file di formato

Il file di formato egrave un file che contiene una collezione di definizioni di macro-istruzioni che vengono lette come prima cosa dal vero motore di composizionesiccome queste macroistruzioni vengono lette sempre allora il sistema TEX findallrsquoinizio ha sviluppato la tecnica di raccogliere le definizioni comuni legate altipo di mark-up in file speciali per LATEX nel file latexltx per plain TEXnel file plaintex eccetera questa tecnica consente di leggere una volta pertutte questi file contenenti le macro comuni mediante una versione lsquoverginersquodei programmi tex oppure pdftex che dopo avere letto i file e averli elaboratiper trasformarli in linguaggio macchina li memorizzano sul disco di sistemain file binari con estensione fmt Quando si lancia latex in realtagrave si lancia unprogrammino di interfaccia che a sua volta lancia pdftex con lrsquouscita in formatoDVI oppure pdftex con lrsquouscita in PDF dicendogli anche di usare il file diformato latexfmt

Questa delucidazione puograve sembrare capziosa specialmente se si aggiungeche dal 2005 ogni distribuzione del sistema TEX contiene anche i programmidi composizione etex e pdfetex (vedi piugrave avanti il paragrafo 3112) questi

310 LATEX E pdfLATEX 53

programmi estesi sono compatibili allrsquoindietro con i programmi precedenti percui li sostituiscono completamente dal punto di vista funzionale

Per complicare le cose al neofita che per altro almeno allrsquoinizio difficilmentesi accorgeragrave delle differenze bisogna aggiungere che il programma pdfetex speci-ficando un opportuno parametro si comporta in modo esattamente uguale a etexDal 2007 pdftex egrave diventato il programma di composizione di default lrsquoutentenon se ne accorge ma per chi si dedica alla manutenzione dei programmi la cosarappresenta una enorme semplificazione insomma pdftex ha le funzionalitagrave ditex etex pdfetex

Per tradizione lrsquointerprete tex bencheacute le sue funzionalitagrave siano un sottoinsiemedi quelle di pdftex continua ad essere incluso in ogni distribuzione del sistemaTEX Se un altro programma comunque si chiami svolge le stesse funzionidel programma tex esso ha diritto di chiamarsi o di far parte della collezionedella distribuzione del sistema TEX Questo programma progenitore di tuttigli altri continua ad essere la pietra di riferimento per tutto il sistema peraltro oggi non viene quasi piugrave usato se non appunto come pietra di paragoneNon va dimenticato che il suo creatore Donald E Knuth lrsquoha congelato e nonintende piugrave modificarlo si limita a correggere i pochi errori che ancora contienepremiando con un assegno di 1 $ firmato di suo pugno chiunque gli segnali un veroerrore Non va in bancarotta per due motivi (a) di errori ce ne sono pochissimie (b) chiunque riceva un assegno firmato da Knuth stesso non lo incassa ma loespone in cornice Il numero di versione di tex contiene le prime cifre del numeroπ e ad ogni modifica acquisisce una nuova cifra tendendo asintoticamente aπ cosa che non avverragrave mai visto che π egrave irrazionale (o meglio trascendente)Oggi il numero di versione egrave 31415926 visto che le poche correzioni a texvengono immediatamente inserite anche in pdftex questo numero lo si ritrovanella prima riga di ogni file log qualunque sia il programma effettivamenteusato direttamente o indirettamente attraverso lo shell editor

Ciograve non toglie che esistano due modalitagrave di composizione (non importa sesono due distinte modalitagrave di funzionamento dellrsquounico programma pdftex)quella che in uscita produce un file DVI e quella che produce invece un file PDF

I file sorgente elaborabili con latex o con pdflatex sono in generale identici opossono essere resi tali nel senso che usano lo stesso mark-up LATEX Per cuiquando si parla di un file elaborabile con latex si intende che egrave stato scrittofacendo uso del metodo di mark-up tipico di LATEX e che il file egrave elaborabileindifferentemente anche da pdflatex Sarebbe desiderabile che i file con questomark-up avessero lrsquoestensione ltx invece che lrsquoestensione tex ma per varimotivi questa convenzione non viene quasi mai rispettata

A causa dellrsquouso di pacchetti di estensione specializzati un file apparentementeconforme alla grammatica del mark-up di LATEX puograve essere elaborato con latexma puograve risultare incompatibile per essere elaborato con pdflatex puograve succedereanche il contrario Ciograve succede raramente ma non egrave impossibile che accadasarebbe quindi desiderabile evitare tali pacchetti di estensione ricorrendo apacchetti meno specializzati ma adeguati per la particolare funzione per laquale essi vengono invocati Questa soluzione puograve essere usata nella stragrandemaggioranza dei casi

Talvolta lrsquoincompatibilitagrave fra latex e pdflatex non dipende dal file sorgente madai file inclusi ciograve puograve accadere facilmente con i file che contengono delle immaginiegrave per questo che sono molto utili quei programmi accessori che consentono di

54 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

trasformare una immagine da un formato allrsquoaltro a questo proposito si facciariferimento al capitolo 8

Comandodi sistema Interprete File di formato

sorgenteFile di formatocompilato

tex tex texini texfmtetex pdftex etexini etexfmtpdftex pdftex pdfetexini pdftexfmteplain pdftex eplainini eplainfmtlatex pdftex latexini latexfmtpdflatex pdftex pdflatexini pdflatexfmt

Tabella 31 Legame fra alcuni comandi di sistema gli interpreti e i formati

La tabella 31 riassume in parte quanto egrave stato esposto Lrsquounica differenzavista la moltitudine di formati da generare in pratica con un solo interprete egraveche invece di usare dei file sorgente con estensione tex o ltx si usano dei filedi inizializzazione con estensione ini che provvedono a far leggere allrsquointerpretei file specifici per il formato e per impostare i parametri necessari allrsquointerpreteper produrre i formati giusti in relazione al particolare modo di funzionamentodel programma di sistema che si desidera attivare In pratica i primi quattroformati attraverso i file di inizializzazione leggono tutti il file plaintex insiemead altri file con possibili estensioni del linguaggio e impostano i parametri internidellrsquointerprete affincheacute lrsquoesecuzione dei programmi i cui nomi non comincianocon pdf producano lrsquouscita in formato DVI mentre quelli il cui nomi comincianocon pdf producano lrsquouscita in formato PDF Gli ultimi due casi si riferiscono alprogramma latex la cui uscita egrave in formato DVI e al programma pdflatex la cuiuscita egrave in formato PDF Entrambi i formati sono creati leggendo sostanzialmentelo stesso file latexltx ma con inizializzazioni diverse a seconda del formato diuscita di default

311 Altri programmi di composizione del siste-ma TEX

Vale la pena ricordare in questo capitolo la presenza di altri lsquofratellirsquo di LATEX epdfLATEX Essi hanno campi di applicazione in parte complementari a quelli diLATEX e spesso possono venire installati di default quando si installa il sistemaTEX

3111 Plain TEXIl mark-up semplice lsquoplainrsquo in inglese usato nei primi quattro esempi dellatabella 31 egrave quello formato dallrsquoinsieme di comandi predisposto dallrsquoautoreKnuth e con il quale tra lrsquoaltro egli continua a comporre tutti i suoi libri

Come linguaggio di mark-up egrave molto meno strutturato di LATEX tanto chetalvolta il suo insieme di comandi viene qualificato come lsquoprescrittivorsquo inveceche lsquodescrittivorsquo LATEX ha un insieme di comandi di mark-up decisamente piugravedescrittivo ma non egrave completamente descrittivo cosigrave il mark-up Plain ha un

311 ALTRI PROGRAMMI DI COMPOSIZIONE DEL SISTEMA TEX 55

insieme di comandi di gran lunga molto prescrittivo e solo qualche comando ditipo descrittivo

I programmi che usano il mark-up Plain semplice o esteso7 con uscita DVIo PDF oggi vengono usati poco ma in qualche raro caso si incontrano dei filesorgente scritti da altri che possono essere composti ricorrendo a tex o a pdftexIn questo caso gli shell editor sono in grado di eseguire questo compito con lasemplice pressione di uno dei vari pulsanti presenti nei vari menugrave quindi lrsquoutentelsquonormalersquo non ha bisogno di conoscere il mark-up Plain Sappia tuttavia chelrsquoinsieme di comandi di LATEX costituisce una enorme sovrastruttura sui comandidi Plain TEX e che quasi tutti i comandi di Plain sono usabili sotto LATEX egeneralmente producono lo stesso effetto

Per la documentazione ci si puograve rivolgere direttamente alla pietra miliarecostituita dal libro e manuale di Knuth il TEXbook [25] che non dovrebbemancare dalla scrivania di qualunque utente avanzato di LATEX

3112 I programmi estesiI programmi etex elatex pdfetex e pdfelatex deriverebbero dalla generazione delformato mediante il programma etex questo oggi egrave totalmente assorbito dentropdftex quindi quei programmi non esistono piugrave tuttavia se ne parla solo perdescrivere le estensioni di etex introdotte in pdftex

Come si vede dalla tabella 31 oggi tutti questi programmi sono prodotticreando il formato sempre con lrsquointerprete pdftex e quindi sostituiscono com-pletamente tutti i programmi con la lsquoersquo citati sopra chi usa i programmi dellatabella usa sempre programmi estesi anche se non usa nessuna delle estensioni

Insomma i programmi di oggi sono downward compatible con i rispettiviprogenitori Tutti i pacchetti di estensione che fino ad oggi sono stati sviluppatiper TEX LATEX e i loro lsquofratellirsquo sono quindi usabili anche con i programmiestesi per altro a tuttrsquooggi sono ancora pochissimi i pacchetti di estensione cherichiedano espressamente lrsquouso dei programmi estesi e non siano compatibili coni progenitori

Crsquoegrave da sperare perograve che tutti i pacchetti di estensione esistenti vengano viavia aggiornati non tanto per dotarli di nuove funzionalitagrave quanto per sfruttarele estensioni dei lsquomodirsquo di esecuzione che possono svolgere nativamente certefunzioni che fino ad oggi non sono sfruttate oppure che sono simulate consequenze di istruzioni TEX o LATEX

Vale la pena di sottolineare un fatto che a prima vista potrebbe apparire comesuperfluo ma non lo egrave egrave vero che fino ad oggi i programmi generalmente distribuitisu ctan non sfruttano le nuove potenzialitagrave o funzionalitagrave dei programmi estesianche se questi sono i motori veri di ogni variante dei programmi di composizionedel sistema TEX Tuttavia questi programmi cominciano ad apparire il primo chelo scrivente ha incontrato egrave proprio formato dalla classe arstexnica predispostaper comporre gli articoli della rivista ArsTEXnica dellrsquoassociazione guIt Questaclasse di composizione richiede la modalitagrave estesa dei programmi di composizionedi default invece lrsquoaggiornamento di MacTEX del 2008 che lo scrivente avevainstallato predisponeva il sistema per usare sigrave i motori di composizione estesi

7Sono estesi i mark-up che contengono la lettera lsquoersquo prima di lsquoplainrsquo o prima di lsquotexrsquolrsquoestensione consiste nellrsquouso della sillabazione per molte lingue (valido solo per il mark-updiscendente da plaintex) e nella disponibilitagrave dei comandi estesi descritti successivamente inmerito allrsquointerprete etex

56 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

senza perograve attivare la modalitagrave estesa La situazione si egrave risolta ricostruendotutti i file di formato in modalitagrave estesa dando dalla finestra comandi o consoleo terminal o xterm e con i privilegi dellrsquoamministratore il comando

fmtutil ndashall

che ha appunto ricreato indistintamente tutti i file di formato in modalitagraveestesa Forse pochi lettori di questo testo si troveranno nella necessitagrave di farealtrettanto ma egrave bene sapere che allrsquooccorrenza questa breve e semplice azionerisolve tutti i problemi

Per altro una cosa egrave quella di creare i file di formato che sono sinonimidei lsquoprogrammirsquo da lanciare unrsquoaltra egrave quella di sapere in quale modalitagrave staoperando il motore di composizione finora questo motore di composizione egrave statochiamato interprete percheacute il suo scopo egrave quello di interpretare le definizionidelle macroistruzioni per tradurle in linguaggio macchina al fine di produrre unfile di uscita contenente il testo composto tipograficamente

Come si egrave giagrave detto dal 2007 esiste un solo interprete di default che egrave pdftex secon questo interprete si generano i file di formato in modalitagrave estesa si ottengonoi file di formato capaci di attivare la modalitagrave estesa quando vengono usatiper il lavoro di composizione vero e proprio altrimenti funzionano in modalitagravelsquocompatibilersquo con il passato

Se con questo interprete si generano i file di formato avendo specificatopdfoutput=0 il lavoro di composizione si concluderagrave con un file di uscitain formato DVI al contrario se viene specificato pdfoutput=1 il lavoro dicomposizione termina con un file in formato PDF Il valore specificato per ilparametro pdfoutput viene integrato dentro al file di formato per cui lrsquoesitodella composizione egrave predefinito a meno che il compositore non voglia eglistesso specificare allrsquoinizio del suo file sorgente un diverso valore del parametropdfoutput

Ognuno puograve esaminare il proprio shell editor per vedere quale programmaviene lanciato quando si clicca sullrsquoicona che rappresenta LATEX Per chi scriveche usa lo shell editor TEXShop su una macchina Mac il bottone ldquoTypesetrdquocorrisponde a lanciare lrsquointerprete pdftex in modalitagrave estesa con il file di formatoprodotto con pdfoutput=1 quindi egli produce di default in modalitagrave estesafile di uscita in formato PDF Con lo shell editor LED su una macchina Windowsinvece il bottone ldquoLATEXrdquo lavora con pdftex in modalitagrave estesa ma produce inuscita un file DVI percheacute il formato latexfmt egrave stato creato con pdfoutput=0quando si preme il bottone ldquopdfLATEXrdquo si lancia lo stesso interprete ma si lavoracon un altro formato creato con pdfoutput=1

Generalmente oggi i file di formato sono tutti o quasi tutti composti inmodalitagrave estesa o lo si puograve fare come si egrave descritto sopra Tuttavia per trarneil miglior beneficio bisogna documentarsi a fondo nel file docetexbaseetex_manpdf

Ma in che cosa consiste questa modalitagrave estesa Permette di superare lalimitazione di 256 contatori scatole lunghezze rigide lunghezze elastiche ecce-tera che erano uno dei limiti del programma tex Permette di comporre il testosia con alfabeti lsquonormalirsquo (da sinistra a destra) sia con alfabeti retrogradi (dadestra a sinistra) Permette di eseguire alcuni semplici calcoli con i contatorie le lunghezze direttamente allrsquointerno di espressioni speciali ma facendo usosostanzialmente delle stesse notazioni operazionali che siamo soliti usare quandoscriviamo lrsquoalgebra Permette di eseguire alcuni altri test non previsti da tex

311 ALTRI PROGRAMMI DI COMPOSIZIONE DEL SISTEMA TEX 57

come per esempio verificare se un particolare segno esiste in un determinatofont Si puograve approfondire nel documento indicato sopra docetexbaseetex_manpdf anche se si riferisce ad un programma che non esiste piugrave ma lecui funzionalitagrave sono state trasfuse tutte in pdftex

Secondo lo scrivente uno dei vantaggi della modalitagrave estesa consiste anche nellapossibilitagrave di lanciare altri programmi durante lrsquoesecuzione della composizionee questo per esempio consente di convertire al volo il formato delle immaginicome si descriveragrave meglio nel capitolo 8 e specialmente per gestire gli indicianalitici come esposto nel paragrafo 165

3113 Il mark-up ConTEXtIl mark-up ConTEXt assomiglia molto vagamente sia a Plain sia a LATEX Essoegrave un mark-up molto strutturato ma tutto sommato semplice come Plain ladifferenza sta nel fatto che virtualmente ogni comando accetta che venganospecificate delle opzioni per cui la personalizzazione della composizione avvienein modo piugrave semplice molto piugrave semplice rispetto a quanto sarebbe necessariofare con Plain

Esso permette di descrivere il testo da comporre in modo molto piugrave strutturatoanche rispetto a LATEX e i libri e gli altri documenti composti con questoprogramma sono generalmente molto ben riconoscibili per lrsquoaltissima qualitagrave delrisultato finale Tutto ciograve avviene grazie alle opzioni previste e attivate dai varicomandi usati per la descrizione del testo Gli autori hanno spesso affermatoche essi preferiscono la libertagrave di definire qualunque dettaglio compositivo manon volevano perdere le funzionalitagrave offerte da LATEX direi che ci sono riuscitimagnificamente e i risultati si vedono Tuttavia il mark-up egrave cosigrave differente daquello di LATEX che la maggior parte degli utenti continua a usare LATEX

ConTEXt puograve svolgere compiti piuttosto specializzati in modo molto comodoConTEXt ha come motore ci composizione pdftex e quindi contiene le sue

estensioni e i suoi limiti il principale egrave quello di essere limitato a font che noncontengano piugrave di 256 caratteri quindi non puograve lavorare con gli OpenTypeneacute con i font in codifica UNICODE Questa versione di ConTEXt si chiamaConTEXt Mk ii

Si sta sviluppando una versione chiamata ConTEXt Mk iv che superi questilimiti lo sviluppo perograve egrave simultaneo a quello di LuaTEX e a quello si rimanda

3114 I programmi Omega e Lambda Aleph e LamedIl programma Omega il cui sviluppo sembra si sia arrestato cerca di sostituireil programma TEX in modo da togliergli tutte le limitazioni che ha per esempioquella di trattare font con non piugrave di 256 segni e di arricchirlo di altre funzionalitagraveTra le altre funzioni consente anche la composizione con alfabeti retrogradi conlrsquoarabo che egrave sostanzialmente ancora una scrittura calligrafica molto legataconsente di eseguire legature molto complesse che coinvolgono anche quattro ocinque segni In altre parole egrave decisamente piugrave esteso di pdftex

Il programma Lambda egrave per cosigrave dire la versione LATEX di Omega ne accettatutte le estensioni e mette in grado il compositore di riferirsi ad una sintassisimile a quella di LATEX

Il programma Aleph egrave una versione estesa di Omega che permette di liberarsidi certi vincoli sui font usabili per un certo periodo anche ConTeXt poteva

58 CAPITOLO 3 INSTALLARE IL SISTEMA TEX

usare Aleph come motore di composizione Lrsquoautore di Aleph Giuseppe Bilottaha lavorato anche al programma Lamed versione di Aleph LATEX-compatibileSembra perograve che anche questo programma sia stato assorbito in parte da luatexe quindi il suo sviluppo ulteriore sia stato interrotto Non deve perograve esseresottovalutata lrsquoimportanza di Aleph percheacute rappresenta il passaggio da pdftex aluatex Molte sue librerie sono state infatti incorporate in luatex

3115 Il programma X ETEX

Il programma X ETEX8 ora disponibile per tutte le piattaforme di elaborazione econ qualunque sistema operativo egrave una ulteriore estensione che riunisce moltedelle funzionalitagrave dei programmi precedentemente descritti ma in piugrave consentedi usare tutti i font presenti sul particolare calcolatore dove puograve essere impiegatopurcheacute questi siano font di tipo OpenType oppure TrueType oppure PostScriptNon occorrono estensioni particolari per lrsquouso di questi font percheacute il programmasfrutta i comandi del sistema operativo per gestire i font disponibili e quindi unadelle operazioni relativamente meno semplici da fare con LATEX per gestire i fontviene superata in un solo colpo Il programma non egrave ancora diffusissimo ma sisappia fin drsquoora che gestisce tutti i possibili font di qualunque alfabeto anchei sistemi di ideogrammi e gli alfabeti retrogradi come quello ebraico o quelloarabo Mescolare lingue diverse scritte con sistemi di caratteri completamentediversi diventa quindi una operazione semplicissima

Ovviamente per raggiungere questi scopi deve poter usare sia in entrata siain uscita la codifica UNICODE anche se ha delle funzioni che gli consentono diusare i font vettoriali del sistema TEX bencheacute non siano codificati in UNICODEin senso stretto

Esiste anche la versione LATEX di X ETEX e non egrave particolarmente difficileusarla pur di riferirsi al particolare manuale che lrsquoaccompagna se non altro perprendere nota delle differenze rispetto al sistema LATEX standard

Il passaggio dalla compilazione con LATEX a quella con X ELATEX egrave praticamenteindolore se non si richiamano font diversi da quelli standard del sistema TEXlo stesso file sorgente puograve venire composto sia con pdflatex sia con xelatex e siottengono gli stessi risultati I font usati di default sono quelli della collezioneComputer Modern semplicemente invocando il pacchetto fontspec ma senzaspecificare nessun font particolare viene usata la versione OpenType dei fontche fanno parte della collezione Latin Modern Si puograve usare anche il pacchettounicode-math per usare le particolaritagrave delle polizze di font che contengono anchei segni matematici codificati con la codifica UNICODE e si dispone di una sceltasterminata di segni matematici (oltre ad una miriade di altri segni) che possonomettere nellrsquoimbarazzo della scelta Anche altri programmi di impaginazionepossono accedere ai font matematici UNICODE ma solo il motore xetex riesce agestirli in modo impeccabile come fa anche pdflatex rispetto a qualunque altroimpaginatore o word processor

8X ETEX egrave scritto in modo palindromo (simmetrico rispetto alla mezzeria) e lascerebbepensare che si debba pronunciare anche in modo palindromo il suo creatore Jonathan Kewha generato il nome pensando a eXtended ε-TEX e quindi la prima lsquoXrsquo non egrave una lsquoχrsquo maiuscolama egrave davvero una lsquoXrsquo Il nome dovrebbe quindi essere pronunciato lsquoxetekhrsquo il suo creatorelo pronuncia allrsquoinglese lsquozitekrsquo ma a differenza di D Knuth non ne impone una pronunciaparticolare

311 ALTRI PROGRAMMI DI COMPOSIZIONE DEL SISTEMA TEX 59

3116 Il programma LuaTEXIl programma luatex egrave giagrave nato raggiungeragrave una forma beta stabile forse entro lafine del 2010 probabilmente entro il 2011 la versione 10 egrave prevista per il 2012luatex egrave giagrave usabile oggi ma in condizioni controllate percheacute egrave ancora soggettoa molte modifiche Questa volta si tratta veramente di un nuovo programmache accoglie in seacute diverse librerie C di pdftex (che a sua volta contiene sia texsia etex) diverse di Aleph (che giagrave contiene Omega) diverse di METAPOSTdiverse di kpathsea diverse del linguaggio di scripting lua alcune delle quali sonostate scritte apposta diverse del visualizzatore xpdf alcune dellrsquoeditor di fontFontForge

Il file sorgente di un documento da comporre segue il mark-up di ContTEXtmk iv e contiene sia il testo da comporre sia le istruzioni per comporlo malrsquointerprete luatex egrave in grado di svolgere anche altre funzioni che per esempiolrsquointerprete pdftex non egrave capace di eseguire Per esempio gli interpreti classici delsistema TEX non sono in grado di eseguire agevolmente calcoli con operandi innotazione floating point tipica di ogni programma di calcolo per questi interpretiun numero scritto nella forma -012345E02 egrave privo di senso pdftex egrave in gradodi usare il numero decimale -12345 (equivalente a quello indicato in notazionefloating point) solo come fattore di scala per le lunghezze Per poter eseguirecalcoli di ogni genere con numeri decimali eo floating point bisogna ricorrerea macro specializzate con pdftex mentre con luatex i calcoli si possono faretranquillamente Ciograve egrave possibile per il fatto che luatex contiene un certo numerodi librerie lua compresa la libreria matematica cosiccheacute con i comandi di luaeseguibili allrsquointerno di luatex si possono generare valori floating point giagrave fruttodi elaborazioni e passare questi numeri ai moduli di composizione di pdftexper usarli nel modo che il sottostante linguaggio pdf possa gestirli nel modorichiesto per lrsquooutput

Questo stesso principio vale per ogni altra caratteristica del testo da comporrevisto che le librerie di lua sono in grado di eseguire ogni operazione eseguibile daun calcolatore Perciograve luatex egrave in grado di elaborare file da comporre con alfabetistrani di eseguire ogni sorta di comandi condizionali in modo che lo stesso filesorgente possa produrre lrsquouscita in diversi formati possa gestire i font OpentTypetestuali e matematici in modo relativamente semplice eccetera Una delle cosedifficili da fare con pdftex se non impossibili ma facili da fare con luatex egrave quelladi caricare i pattern di sillabazione al momento dellrsquoesecuzione unrsquoaltra egrave quelladi generare al volo font virtuali e di crearne le relative informazioni metricheda usare durante la stessa esecuzione del programma Grazie alle librerie diAleph egrave possibile gestire le complicatissime legature che possono coinvolgereanche quattro o cinque glifi con alfabeti come lrsquoarabo che egrave molto calligraficoma anche come il font Zapfino uno script ldquolatinordquo fortemente calligrafico comeappare nella figura 22

Informazioni dettagliate si possono trovare nel sito del progetto LuaTEXhttpwwwluatexorg Siccome egrave giagrave stata presentata le versione lsquobetarsquo crsquoegraveda aspettarsi che LuaTEX diventi presto la soluzione di default per tutti o quasii compiti di composizione tipografica Un bel documento che traccia la storiadello sviluppo di ConTEXt e illustra le potenzialitagrave di luatex si puograve scaricare dahttpwwwpragma-adecomgeneralmanualsmkpdf

Capitolo 4

LATEX prime nozioni

41 IntroduzioneVerranno ora esposte le prime nozioni per usare LATEX e per comporre semplicidocumenti di solo testo Saragrave necessario mostrare esempi di codice sorgente cosigravecome saragrave necessario descrivere la lsquosintassirsquo di alcuni comandi

Il codice e i vari comandi saranno composti con il font della famiglia aspaziatura fissa per esempio si scriveragrave documentclass La grammatica prevedeche ogni comando possa avere degli argomenti il cui significato logico vieneindicato da un nome o da una semplice locuzione scritta in corsivo e racchiusafra parentesi lsquoacutersquo per esempio 〈classe〉 cosigrave che la sintassi del comandodocumentclass possa essere espressa cosigrave

documentclass[〈opzioni〉]〈classe〉

Con questo tipo di grammatica gli argomenti che obbligatoriamente devonoessere forniti ad un comando che richieda argomenti sono sempre racchiusi fraparentesi graffe mentre gli argomenti facoltativi opzionali se sono presentisono sempre racchiusi fra parentesi quadre Le parentesi acute della descrizionedella grammatica servono solo per questa descrizione e non vanno effettivamenteintrodotte quando il comando viene usato

42 Lrsquoinizio del file sorgenteIl comando documentclass egrave il primo che deve essere dato allrsquoinizio di un file(o nel primo file di un gruppo) da trattare con LATEX

La 〈classe〉 indica il tipo di documento che si intende comporre le classistandard del sistema sono book per comporre libri report per comporrerapporti lsquotecnicirsquo e article per comporre articoli esistono ovviamente altreclassi non standard ma queste tre sono le piugrave note sotto ogni aspetto

Per questo libro egrave stato usato il comando

documentclass[a4paper]book

e con questa dichiarazione iniziale si egrave detto che si vuole comporre un libro e chelo si vuole stampare su carta ISO-UNI A4 (210 mmtimes 297 mm)

61

62 CAPITOLO 4 LATEX PRIME NOZIONI

Lrsquoinizio del file sorgente prosegue facoltativamente con una serie di speci-ficazioni per rendere piugrave agevole la scrittura del file sorgente per scegliere lalingua o le lingue da usare nel documento per scegliere la codifica di default deifont da usare per comporre il documento per estendere i comandi di default conistruzioni non standard al fine di ottenere risultati particolari

Questo insieme di dichiarazioni preliminari si chiama preambolo non egrave ne-cessario che il preambolo contenga qualche cosa ma in pratica il preambolo inItalia e per i documenti in italiano contiene almeno la specificazione dellrsquousodella lingua italiana e probabilmente la specifica dei font a 256 caratteri checontengono le lettere accentate questo vale praticamente in ogni paese trannequando la lingua da usare egrave solamente lrsquoinglese che per LATEX egrave la lingua didefault e la sua scrittura non contiene lettere accentate Per questo libro la primaparte del preambolo comincia (nella versione 00 cominciava) cosigrave

documentclass[a4paper]bookusepackage[latin1]inputencusepackage[T1]fontencusepackage[italian]babelusepackageguit

authorGuITtitleIntroduzione allrsquoarte

della composizione tipografica con~LaTeXdateVersione 00

Come vi si puograve leggere in chiaro in questo preambolo si ordina a LATEX di usareun certo numero di pacchetti di estensione mediante il comando usepackagein ordine gli si ordina di usare il pacchetto per gestire lrsquoimmissione del testospecificandogli come opzione che i caratteri immessi corrispondono alla codificalatin1 poi gli si ordina di usare il pacchetto per gestire la codifica (encoding)per i font di composizione del documento mediante la sigla T1 che corrispondealla codifica standard di LATEX per poter usare i caratteri latini accentati (vedilrsquoappendice D) poi gli si comanda di usare il pacchetto babel per gestire linguediverse dallrsquoinglese e come opzione gli si specifica lrsquoitaliano poi infine gli siordina di usare il pacchetto guit per poter avere a disposizione il comando GuITper comporre la sigla del Gruppo degli Utilizzatori Italiani di TEX volendo sipotrebbe usare anche il logo del gruppo

I primi tre pacchetti sono pressocheacute obbligatori per ogni documento compostoin italiano e anche specificando un diverso nome della lingua per comporredocumenti in qualunque lingua diversa dallrsquoinglese si possono specificare anchediverse lingue mediante una lista di nomi (in inglese) separati da virgole e senzaspazi inclusi lrsquoultima delle quali egrave quella usata di default nel documento

Alcuni suggeriscono di usare la codifica utf8 invece di latin1 altri per lemacchine Windows suggeriscono la codifica ansinew altri ancora suggerisconola codifica latin9 per le macchine Macintosh lsquovecchiottersquo (con sistema operativoprecedente al Mac OS X) egrave preferibile la codifica applemac Questa questionedella codifica verragrave sviluppata piugrave avanti nellrsquoappendice D per ora si preferiscala codifica latin1 che va abbastanza bene per tutte le macchine ed egrave adatta perscrivere in italiano

Per il file di uscita lrsquoopzione T1 egrave senzrsquoaltro consigliabile per scrivere initaliano direi quasi obbligatoria Lrsquoalternativa egrave di non specificare nulla la

43 IL DOCUMENTO 63

differenza passeragrave inosservata al principiante ma dopo un porsquo di esperienzaanche il neofita si accorge che senza specificare nulla o specificando lrsquoopzioneOT1 le lettere accentate del file di ingresso o non appaiono per nulla oppureappaiono con gli accenti non perfettamente centrati sulla lettera di base e chele parole contenenti lettere accentate tendono a produrre una giustificazionepeggiore delle righe a causa del fatto che la divisione in sillabe egrave meno efficientecon la codifica OT1

Dopo la riga vuota (o bianca) si specifica che lrsquoautore di questo libro egrave il guItstesso si specifica il titolo del libro e invece della data si specifica il numerodella versione 00 egrave il valore iniziale ma egrave probabile che il documento che stateleggendo abbia un numero successivo che non sia cioegrave la versione lsquozeresimarsquo

Il preambolo di questo libro contiene altre cose che verranno descrittepiugrave avanti Finito il preambolo comincia la composizione vera e propria deldocumento

43 Il documentoCome egrave facile prevedere il documento comincia con

begindocument

e altrettanto prevedibilmente finisce con

enddocument

Tutto ciograve che egrave racchiuso fra queste due righe viene composto o viene usatoper controllare la composizione Egrave opportuno notare che tutto ciograve che nel filecompare dopo enddocument non viene stampato ma puograve essere usato perscrivere dei commenti relativi al file allo stato di avanzamento della composizionedel documento o ad altro che possa interessare il compositore per sua futuramemoria

In questo libro il documento comincia (nella versione 00 cominciava) cosigrave

begindocumentfrontmattermaketitletableofcontents

chapterPresentazione

dove il primo comando dichiara che si stanno componendo le pagine preliminariil secondo comando serve per comporre la pagina del titolo usando le scarneinformazioni circa lrsquoautore il titolo e la versione fornite nel preambolo il terzocomando ordina di comporre lrsquoindice generale la riga bianca non conta nientema ha un effetto visivo di separazione nel file sorgente in generale essa serve permarcare la fine di un capoverso ma in questo punto non ci sono capoversi dinessun genere da comporre

Il comando chapter serve per comporre un capitolo non numerato lrsquoa-sterisco indica che non si vuole la numerazione i capitoli non numerati noncompaiono nellrsquoindice a meno che non lo si voglia espressamente indicare me-diante comandi appositi che per ora esulano da questa descrizione Lrsquoargomentodi questo comando indica il titolo da dare a questo capitolo non numerato

64 CAPITOLO 4 LATEX PRIME NOZIONI

Come si vede il mark-up contiene unrsquounica piccola difficoltagrave per coloro chenon hanno nessun rudimento di inglese cioegrave che tutti i comandi sono in inglese ilbuono egrave che non contenendo abbreviazioni questi comandi sono immediatamentecomprensibili senza bisogno di ricorrere a elenchi di comandi criptici

44 La fine del documentoQuando il testo del documento egrave stato completamente introdotto nel file sorgentenon resta che dichiararne la fine chiudendo lrsquoambiente document mediante ilcomando

enddocument

Dopo questa riga e questa istruzione potete scrivere quello che volete ma nonverragrave mai composto questa egrave la dichiarazione che il documento egrave terminato nonche il file egrave terminato

45 Un semplice esercizioEsercizio 41 Copiate dal testo precedente i comandi illustrati a partire dal

comando documentclass dopo chapter introducete un qualun-que testo con capoversi sufficientemente lunghi magari un capoverso initaliano uno in inglese uno in francese (non dovrebbe essere troppo difficiletrovare dei libri o dei giornali che contengano delle frasi anche in linguastraniera da copiare se la propria fantasia e la propria conoscenza dellelingue straniere non fosse sufficiente) Alla fine del documento ricordatevidi dichiararne la fine sembra lapalissiano ma talvolta ce ne dimentichiamoSalvate il file scritto rigorosamente in formato testuale (meglio se facendouso di uno shell editor adatto allrsquouso di LATEX) per esempio con il nomeesempio1tex (il nome non egrave importante ma lrsquoestensione deve essere tex(o se proprio volete ltx)Lanciate LATEX se state lavorando con uno shell editor cliccate sullrsquoop-portuna icona se non state lavorando con un shell editor aprite la finestracomandi o terminal o xterm o console comunque si chiami sul vostrocalcolatore quella finestra nella quale potete inserire i cosiddetti comandiin linea scrivendo esplicitamente i nomi dei programmi da lanciare e delfile su cui devono operare in questo esempio scriverete

latex esempio1

senza specificare lrsquoestensione tex se aveste usato questa estensione oppureesplicitando lrsquoestensione diversa da tex che avete usato per il vostro fileSe nella finestra comandi o nellrsquoopportuna finestra dello shell editor com-paiono messaggi drsquoerrore rivedete il testo percheacute gli unici errori che poteteavere fatto consisterebbero in errori di battitura rivedete con particolareattenzione di aver usato le parentesi graffe dove ci vogliono le graffe leparentesi quadre dove ci vogliono le quadre e che tutte le parentesi siaccoppino correttamente cioegrave che ad ogni parentesi aperta segua una pa-rentesi chiusa dello stesso tipo come in matematica quindi apertandashchiusa

45 UN SEMPLICE ESERCIZIO 65

apertandashchiusa oppure aperta aperta ndash chiusa chiusa Questo egrave unodegli errori piugrave comuni inoltre i comandi devono essere scritti corretta-mente rivedetene lrsquoortografia ricordandovi che il correttore ortografico delvostro editor di solito non rileva e non corregge gli errori di battitura deicomandiSe le ultime righe di quel che compare nella finestra dicono che il file egravestato correttamente salvato nel file esempio1dvi1 lanciate il previeweradatto a quel formato potragrave essere YAP se avete il sistema MiKTEX saragravexdvi se state operando su Linux ecceteraAmmirate la vostra composizione sullo schermo e osservate se il testo ininglese eo in francese egrave stato composto bene in particolare se le cesure infin di riga sono corrette

Questo semplice esercizio vi permette di rilevare quanto sia semplice usareLATEX specialmente se state usando uno shell editor con questrsquoultimo potetepremere un solo pulsante che vi attiva lrsquoesecuzione di LATEX e se non ci sonoerrori vi attiva anche il previewer ad ogni successiva compilazione generalmentela finestra del previewer viene automaticamente aggiornata per cui avete unacompilazione quasi sincrona vi consiglio di compilare sovente e di verificaresovente sul previewer che non ci siano errori grossolani di composizione peresempio potreste aver dimenticato lrsquoeffetto di una dichiarazione e quindi potrestescoprire che da un certo punto in avanti state componendo con un font percheacutevi siete scordati di ripristinare il font precedente Questi sono errori grossolaniche conviene correggere prima di avere composto le settecento pagine del libroche volete scrivere

Gli errori piugrave fini vanno ricercati nelle successive revisioni delle bozze cheper fortuna non richiedono di stampare su carta una serie di bozze dietro lrsquoaltrama possono essere riviste direttamente sullo schermo

Va notato che molti sistemi TEX permettono di eseguire sia la forward searchsia la reverse search Queste operazioni prevedono una interazione fra lrsquoeditore il previewer in modo che azionando opportuni pulsanti dellrsquoeditor mentre ilcursore si trova in una certa posizione nel testo del file sorgente nella finestradel file compilato il cursore viene collocato se non nella stessa posizione qualcheparola piugrave avanti o piugrave indietro questa egrave la forward search Analogamente conil cursore nella finestra del previewer in una certa posizione cliccando su unapposito pulsante o premendo una opportuna combinazione di tasti il cursoresi sposta nella finestra dellrsquoeditor praticamente nella stessa posizione parolapiugrave parola meno questa egrave la reverse search Grazie a questa interazione fraeditor e previewer la correzione delle bozze procede spedita in quanto la finestradellrsquoeditor e quella del previewer sono praticamente sincronizzate

Egrave probabile che le parti di testo scritte in lingue diverse dallrsquoitaliano risultinoavere alcune parole divise in sillabe in fin di riga (la cesura) in modo erratoquesto dipende dal fatto che nel preambolo dellrsquoesempio si egrave invocato il pacchettoper il trattamento delle lingue e gli si egrave specificato di voler comporre in italianoEgrave ovvio che la sillabazione delle altre lingue egrave diversa da quella dellrsquoitaliano edegrave altrettanto ovvio che scrivendo in lingue diverse dallrsquoitaliano egrave possibile chealcune cesure risultino errate

1Se state usando TEXShop su un Mac il file viene salvato in formato PDF e il previewerviene aperto automaticamente

66 CAPITOLO 4 LATEX PRIME NOZIONI

Avete probabilmente usato specialmente per il francese molte lettere accen-tate avrete quindi sfruttato a fondo le possibilitagrave del vostro editor per inserire icaratteri accentati diversi da quelli che vi compaiono giagrave sulla vostra tastieracome per esempio lsquoocircrsquo di lsquodiplocircmersquo molto probabilmente il file composto visua-lizzato nel previewer vi mostreragrave il segno giusto Se state lavorando con unamacchina Windows questo fatto potrebbe non succedere e per ovviare a questoinconveniente sostituite la dichiarazione della codifica latin1 con la dichiarazioneansinew

46 I caratteri specialiPer scrivere il mark-up secondo LATEX bisogna ricordare che alcuni caratterihanno un significato speciale essi sono i seguenti

$ ^ _ amp ~

Il carattere chiamato backslash in inglese e barra inversa in italiano servecome iniziatore di un comando o istruzione come lo si preferisce chiamare unaistruzione egrave sempre costituita dal segno seguito senza spazi interposti da unastringa di lettere minuscole eo maiuscole e questa stringa termina quando egraveseguita da un carattere non alfabetico oppure una istruzione egrave formata dalcarattere seguito da un solo carattere non alfabetico oppure essa egrave costituitada un carattere attivo Nella lista di caratteri speciali illustrata sopra il carattere~ egrave un carattere attivo ed egrave lrsquounico carattere attivo definito da LATEX Se nepossono avere altri ma questo si puograve ottenere solo con pacchetti di estensioneper esempio con lrsquoopzione per la lingua italiana di babel il carattere egrave anchrsquoessoattivo come lo egrave per quasi tutte le lingue con la notevole eccezione dellrsquoinglese

I caratteri e sono molto particolari percheacute servono per delimitare gliargomenti dei comandi ma svolgono anche altre funzioni di cui si parleragrave inseguito

Il carattere svolge il compito di inizio di un commento come in tutti ilinguaggi di programmazione esiste una maniera per inserire dei commenti inlinea con il codice cosigrave anche con il sistema TEX lrsquoinserzione del carattere inuna riga ordina al motore TEX di trascurare tutti i caratteri che seguono sullastessa riga fino al primo carattere diverso da uno spazio (noto anche con il nomedi blank) nella riga successiva

Il carattere $ serve come lsquointerruttorersquo per ordinare a TEX di passare dalmodo testo al modo matematico o viceversa Quando lrsquointerprete TEX egrave in modotesto interpreta i caratteri del file drsquoentrata in una certa maniera mentre quandoegrave in modo matematico li interpreta come segni matematici Per esempio lo stessocarattere - in modo testo indica un trattino lsquo-rsquo mentre in modo matematicorappresenta il segno negativo lsquominusrsquo e si vede chiaramente che si tratta di duesegni diversi un analogo diverso modo di interpretare i caratteri del file dientrata viene usato da TEX per gestirli appropriatamente quando esso egrave in modomatematico

Il segno ^ viene usato solo in matematica e indica che quanto segue even-tualmente racchiuso fra parentesi graffe rappresenta un esponente o un apicePer usarlo come accento circonflesso nel testo basta farlo precedere da un back-slash per indicare un accento circonflesso in modo matematico bisogna usare ilcomando hat

47 ORGANIZZAZIONE DEI FILE SORGENTE 67

Il segno _ serve in matematica per indicare un deponente o un pedice Perusarlo come lsquounderscorersquo sia nel testo sia in matematica basta farlo precederedal backslash

Il segno amp serve per separare fra di loro i brevi testi o le brevi espressionimatematiche che entrano nelle celle di una tabella o di una matrice Precedutodal backslash serve per comporre lrsquo lsquoe commercialersquo ampersand in inglese

Infine il segno serve per marcare il numero progressivo dellrsquoelenco deiparametri nella definizione di una nuova istruzione preceduto dal backslash serveper comporre il number sign oppure hash sign in italiano chiamato gergalmentelsquocancellettorsquo

Per scrivere questi caratteri in un brano di testo senza che svolgano il lorocompito normale bisogna farli precedere dal backslash Ecco quindi che peresprimere un ammontare di denaro in dollari bisogna usare $ nel file sorgenteper cui $23499 diventa $23499 Analogamente per indicare un incrementodel 10 bisogna scrivere 10 nel file sorgente Lrsquounico carattere che non egravestampabile ricorrendo al segno egrave proprio questo stesso segno Per stamparlobisogna ricorrere al comando textbackslash Siccome nel testo questo segnonon si usa quasi mai il fatto di dover ricorrere ad un comando cosigrave lungo noncostituisce un vero problema Generalmente sono disponibili anche i comanditextasciicircum e textunderscore che servono per inserire i rispettivi segnidurante la composizione del testo Esistono anche i comandi textdollar etextasciitilde questrsquoultimo per inserire una tilde invece di uno spazio nonseparabile come avviene usando il carattere attivo ~

47 Organizzazione dei file sorgenteQuesto paragrafo andrebbe scritto in fondo a questo testo ma tutto sommato egravelogicamente connesso con il materiale esposto in questo capitolo Allrsquooccorrenzapotete saltarne la lettura salvo poi tornare a questo paragrafo quando dovretegestire la composizione di un lungo testo molto strutturato

I semplici esercizi che si possono fare ora e con il contenuto dei primi capitoliche seguono comportano la scrittura di brevi file sorgente che raramente unavolta compilati superano il paio di pagine di testo composto

Il file sorgente non richiede quindi una particolare organizzazione percheacutela sua suddivisione naturale in lsquopreambolorsquo e lsquocorpo del documentorsquo egrave piugrave chesufficiente

Tuttavia si immagini di dover scrivere un testo diviso in numerosi capitoliappendici indici e glossari prefazioni e postfazioni eccetera Il file sorgentemonolitico rischierebbe di diventare enorme senza contare lrsquoorganizzazione deifile da includere come i file che contengono le immagini o i file che convienepredisporre a parte percheacute richiedono una paziente messa a punto del contenuto

In questo caso lrsquoorganizzazione monolitica non egrave consigliabile e infatti LATEXoffre diversi strumenti per spezzare il file sorgente in file di minori dimensioniLATEX infatti offre due insiemi di comandi per questo scopo input e includeassieme a includeonly oltre al comando includegraphics per immettere nelflusso di informazioni da elaborare i file contenenti le immagini Per questrsquoultimocomando si veda piugrave avanti il capitolo 8 Per gli altri comandi la sintassi egrave laseguente

68 CAPITOLO 4 LATEX PRIME NOZIONI

input〈file〉

includeonly〈lista di file〉include〈file〉

Lrsquoinformazione 〈file〉 egrave solamente il nome di un singolo file mentre 〈lista difile〉 egrave un elenco di nomi di file separati da virgole senza spazi prima o dopo levirgole Per tutti i nomi dei file lrsquoestensione tex egrave sottintesa e quindi questa deveessere specificata se si vuole inserire un qualunque altro file con una estensionediversa compresa lrsquoestensione ltx che in teoria dovrebbe essere lrsquoestensione didefault per tutti i file scritti con il mark-up del linguaggio LATEX

Merita invece osservare che quasi tutti i sistemi operativi ammettono chei nomi dei file possano contenere anche spazi e altri punti oltre a quello chesepara lrsquoestensione Un nome di file del tipo parte IItex oppure parte2texegrave perfettamente lecito con moltissimi sistemi operativi Ma egrave altrettanto ovvioche gli spazi e i punti come anche gli altri caratteri che in TEX hanno unsignificato particolare ma sono leciti nei nomi dei file possono produrre guaiseri Si sconsiglia per esempio di usare la linea ribassata (underscore in inglese)ldquo_rdquo percheacute per TEX quel segno indica i pedici in matematica ed egrave illegale inmodo testo Oggi spesso questo segno viene gestito correttamente se egrave presentein un nome di file tuttavia se ne sconsiglia lrsquouso e se si desidera avere unldquoallontanamentordquo visivo delle parti del nome del file si preferisca il trattinonormale -

Perograve si evitino assolutamente i punti se ci si riferisce al file parte2tex il〈file〉 potrebbe essere parte2 ma TEX potrebbe scambiare 2 per lrsquoestensione elamentarsi che non trova il file

Si potrebbe racchiudere il nome del file fra doppi apici parte II oppureparte2 ma crsquoegrave il problema che il doppio apice in quasi tutte le lingue invocatecon babel italiano compreso egrave definito come carattere attivo cioegrave egrave definito inmodo che si comporti come una istruzione non come un segno grafico per questomotivo nel momento in cui si vuole leggere un file esterno mediante input oinclude lrsquoistruzione corrispondente al doppio apice viene eseguita e TEX siritrova confuso e non sa che cosa leggere cosiccheacute emette dei messaggi drsquoerroreche talvolta sono difficili da associare al file che TEX non riesce a leggere

Ci si ricordi infine che in molti sistemi operativi le lettere maiuscole eminuscole sono ldquodiverserdquo al fine di identificare e distinguere i file Per i sistemiUNIX e Linux i file PartePrimatex e parteprimatex sono due file diversinei sistemi Windows quei due nomi identificano lo stesso file Sui Macintosh ladistribuzione MacTEX egrave fatta in modo tale da non distinguere le lettere maiuscoleda quelle minuscole nei nomi dei file sebbene il sistema operativo le distinguabenissimo

Per evitare gli inconvenienti menzionati sopra si consiglia di usare nomi di fileformati da una sola parola alfanumerica senza punti e spazi inclusi seguita dallaestensione opportuna possibilmente scritti completamente con lettere minuscoleIn questo modo non bisogna ricorrere a nessun espediente per gestire questinomi durante lrsquoesecuzione di una compilazione ma ancora piugrave importante nonsi generano inconvenienti quando si scambiano i propri file con collaboratori chelavorano con altre macchine eo con altri sistemi operativi La portabilitagrave egrave unbene prezioso che gli utenti del sistema TEX apprezzano moltissimo

47 ORGANIZZAZIONE DEI FILE SORGENTE 69

Il comando input ordina a LATEX di leggere il 〈file〉 specificato il flusso didati che viene letto viene inserito nel flusso complessivo del documento comese fosse inserito esattamente al posto di input che questo 〈file〉 contenga unasola parola o un intero paragrafo o capitolo non ha nessuna importanza il suocontenuto viene letto incondizionatamente ed elaborato immediatamente

Questo comportamento del comando input si mantiene anche se egrave contenutodentro altri file a loro volta inseriti nel flusso di elaborazione dati mediantealtri comandi input o anche comandi include non esiste un limite teoricoal numero di file che possono essere inclusi richiamandosi in catena salvo lalimitazione ovvia delle dimensioni finite della macchina di elaborazione e delnumero di canali di ingresso che possono essere aperti contemporaneamentequesto numero massimo di canali egrave di sedici unitagrave ma alcuni di questi canali sonogiagrave impegnati per altre funzioni di servizio per cui si puograve contare su una decina dicanali effettivamente disponibili questo numero dovrebbe essere sovrabbondanterispetto a qualunque esigenza insolita di immissioni a catena mediante comandiinput

Il gioco di includeonly e include egrave invece piugrave complesso innanzi tuttoin assenza di includeonly e della sua 〈lista di file〉 include agisce quasicome input lrsquounica differenza egrave che prima di elaborare il contenuto del fileincluso LATEX ordina di eseguire un salto di pagina cioegrave di iniziare una nuovapagina Questo permette di capire subito che include non egrave usabile al postodi input proprio a causa di questo salto di pagina Il comando include egravepiugrave adatto per includere un intero capitolo (che comincia sempre su una paginanuova) piuttosto che per immettere semplicemente del testo da elaborare nelpunto in cui compare il comando

Ma tutto diventa piugrave interessante e utile se si fanno agire includeonlyed include assieme infatti in questo modo include include solo i 〈file〉 checompaiono nella 〈lista di file〉 perograve se lrsquoargomento di include egrave un 〈file〉 chenon compare nella 〈lista di file〉 include ordina a LATEX di leggere solo il fileaux cioegrave il file 〈file〉aux che contiene le informazioni relative ai riferimentiincrociati e al contenuto dei vari contatori che interessano LATEX cosiccheacute anchese il file 〈file〉tex non viene elaborato le sue informazioni utili sono tenute inconto e tutto procede agli effetti esterni come se il file fosse stato elaborato Vada seacute che se questo file 〈file〉tex non egrave mai stato elaborato prima non esistenemmeno il file 〈file〉aux ma include non protesta percheacute si limita a scrivereun avvertimento nel file log privo di qualunque conseguenza sul buon fine dellacompilazione

Un file incluso mediante include puograve contenere a sua volta comandi inputi file dei quali a loro volta Va da seacute perograve che se un file non viene incluso percheacuteil suo nome non compare nella 〈lista di file〉 non vengono elaborati nemmeno glieventuali file subalterni richiamati dai comandi input

Al contrario di input i comandi include non possono essere innestatilrsquouno dentro lrsquoaltro ed egrave del tutto logico che sia cosigrave

Tutto questo puograve sembrare oltremodo complicato mentre un esempio per-mette di rendersi conto che non solo egrave semplicissimo ma egrave anche molto logicoSi pensi ad un lungo saggio che si ritiene di suddividere nei file seguenti

1 premessetex che contiene le informazioni per comporre tutto il materialeiniziale dallrsquoocchiello fino alla prefazione inclusi tutti gli indici che sivogliono creare

70 CAPITOLO 4 LATEX PRIME NOZIONI

2 introduzionetex che contiene un capitolo introduttivo

3 statodellartetex che contiene una dettagliata descrizione della situa-zione pertinente prima della teoria esposta nel saggio

4 motivazionitex dove si descrivono le motivazioni che portano allo svi-luppo della nuova teoria descritta nel saggio

5 sviluppotex dove si discute lo sviluppo della nuova teoria

6 risultatitex dove si discutono i risultati alla luce della nuova teoria

7 confrontitex dove si discutono e si confrontano i nuovi risultati conquelli che si potevano ottenere applicando le teorie precedenti Magariquesto file contiene anche le considerazioni conclusive

8 appendicitex dove si raccolgono tutte le informazioni dalla biblio-grafia alle informazioni accessorie allo sviluppo della nuova teoria finoeventualmente agli indici analitici e ai glossari

Si procederagrave allora a predisporre un lsquomaster filersquo nuovateoriatex nel qualesi mettono solo il preambolo e i comandi per lrsquoinclusione dei vari file

file nuovateoriatexdocumentclass[〈opzioni〉]〈classe〉〈preambolo che contiene tutti i comandi per i pacchetti da usare le definizioni dinuovi comandi e si conclude con〉includeonlypremesseintroduzionestatodellartemotivazionisvilupporisultaticonfrontiappendici Qui finisce il preambolo e comincia il documentobegindocument

includepremessemainmatterincludeintroduzioneincludestatodellarteincludemotivazioniincludesviluppoincluderisultatiincludeconfrontibackmatterincludeappendici

47 ORGANIZZAZIONE DEI FILE SORGENTE 71

enddocument

Se si elabora il file nuovateoriatex cosigrave come egrave presentato sopra LATEXlegge se ci sono tutti i file dichiarati come argomento ai vari comandi includeMa si osservi come egrave scritta la 〈lista di file〉 che costituisce lrsquoargomento diincludeonly ogni file della lista egrave scritto allrsquoinizio di una nuova riga la qualeegrave terminata dal segno di commento al fine di non lasciare spazi spuri nella listaIn questo modo crsquoegrave la possibilitagrave di inserire un segno di commento allrsquoinizio dellerighe che contengono i nomi dei file che non desideriamo elaborare

Allrsquoinizio della scrittura dellrsquointero documento si cominceragrave presumibilmentecon il file premessetex si metteragrave allora un segno di commento davanti al nomedi tutti gli altri file quando poi si passa a scrivere introduzionetex si toglie ilsegno di commento davanti al nome di questo file e lo si inserisce invece davantial nome di premessetex Via via che si procede si compone un file alla volta ese ne controlla il risultato attraverso il programma di visualizzazione adeguatoal tipo del file di uscita Ogni volta la compilazione ha luogo su un solo file edegrave particolarmente veloce nello stesso tempo i riferimenti incrociati a elementicontenuti nei capitoli precedenti vengono tutti risolti correttamente Anche lebozze se le si volesse stampare hanno le pagine numerate correttamente Soloalla fine a lavoro quasi terminato si tolgono tutti i segni di commento davantiai nomi dei file della 〈lista di file〉 e si esegue la composizione dellrsquointero testo inun unico file di uscita

Se lo shell editor lo richiede (e quasi tutti gli shell editor lo richiedono) bisognasolo specificare allrsquoeditor il nome del lsquomaster filersquo affincheacute quando si compila elrsquoeditor ha aperto solo uno dei file da includere esso possa lanciare LATEX sullsquomaster filersquo e non sul file correntemente aperto

Questo tipo di organizzazione del file drsquoentrata diventa piugrave comodo da usarevia via che si acquisisce pratica e se ne apprezzano i vantaggi

Vale la pena di sottolineare che la divisione in capitoli da includere con ilcomando include va benissimo con i capitoli Il comando input serve per gliscopi indicati ma lrsquoesperienza insegna a servirsene con il massimo profitto indiverse altre circostanze per esempio lo scrivente ha sviluppato lrsquoabitudine dicomporre grandi tabelle in file a se stanti da includere con input Questo mododi procedere deriva dalla constatazione che le grandi tabelle sono complesse dacomporre ed egrave facile commettere errori Inserite in file a se stanti e creato ununico piccolo lsquomaster filersquo che ordini la lettura solo del file contenente la tabellaogni tabella viene composta e corretta per suo conto e non crsquoegrave pericolo che gravierrori particolarmente difficili da individuare fermino la compilazione di ungrosso file in un punto che non ha nulla a che vedere con la posizione dellrsquoerrorecome ahimegrave talvolta succede

Dalla versione 009 anche i file che compongono questo testo sono gestiticon il meccanismo di include e includeonly Questrsquoultimo collocato nelpreambolo egrave formato cosigrave

includeonlypreliminaripresentazionesincrona-asincronanozioni-tipografiainstallazioneprime-nozionitesti-speciali

72 CAPITOLO 4 LATEX PRIME NOZIONI

tabellefigureimportazione-figurematematica1matematica2caratteripresentazionifilologiaclassibibtexindici-glossarinuovi-comandimicrogiustificazionelayoutortografiapdfarchiviabiledocumentazionesimbologiadivisione-sillabesintassi-riepilogoindanalitico

e come si vede ogni capitolo numerato o non numerato e ogni appendice vieneelencata nella 〈lista di file〉 nella speciale maniera descritta sopra Successivamenteil corpo del testo egrave formato dal blocco

begindocumentfrontmatterincludepreliminariincludepresentazionemainmatterpagestyleheadingsincludesincrona-asincronaincludenozioni-tipografiaincludeinstallazioneincludeprime-nozioniincludetesti-specialiincludetabelleincludefigureincludeimportazione-figureincludematematica1includematematica2includecaratteriincludepresentazioniincludefilologiaincludeclassi

48 GESTIONE DEGLI ERRORI 73

includebibtexincludeindici-glossariincludenuovi-comandiincludemicrogiustificazioneincludelayoutincludeortografiaincludepdfarchiviabile

cleardoublepage

appendix

includedocumentazioneincludesimbologiaincludedivisione-sillabeincludesintassi-riepilogoincludeindanaliticoenddocument

I comandi frontmatter e mainmatter specificano lrsquoinizio dei preliminari elrsquoinizio del corpo del testo e sono presenti anche se gli eventuali file che dovrebberovenire inclusi di fatto non lo sono percheacute eliminati con segni di commento dallalista dei file di includeonly invece di backmatter si egrave usata solo la specificaappendix che ordina che da quel punto in poi i capitoli sono da trattare comeappendici non si egrave usato backmatter percheacute chi ha predisposto la classe bookha ritenuto che le appendici facessero parte del corpo del testo e non delle partifinali

48 Gestione degli erroriPurtroppo talvolta i file sorgente contengono errori in queste circostanze lrsquoin-terprete TEX procede ad interpretare il flusso di informazioni che via via leggedai file sorgente fincheacute riesce a dare loro un qualche significato poi si fermacon un messaggio drsquoerrore Quasi sempre si tratta di un comando scritto con unerrore di ortografia sullo schermo appare allora il messaggio drsquoerrore con unaqualche frase esplicativa e la linea dove TEX si egrave bloccato scritta lsquospezzatarsquo incorrispondenza dellrsquoultimo oggetto che TEX ha letto Se si tratta di un erroredi ortografia in un comando appare appunto il comando errato alla fine delprimo moncone della riga presentata e la riga del flusso drsquoentrata non ancorasottoposto al processo di interpretazione appare subito sotto Il primo monconedi riga egrave anche preceduto dal numero della riga del file sorgente

Le risposte possibili ad un messaggio drsquoerrore sono quelle di introdurre unadelle seguenti lettere x h i e eventualmente seguita da un stringa di testox serve per terminare subito la compilazione successivamente si puograve dare il

comando allo shell editor di collocare il cursore nella riga contenente lrsquoerrorein modo da poterlo correggere e riprendere la compilazione

h serve per chiedere aiuto i messaggi informativi che LATEX fornisce sulloschermo talvolta permettono di capire di che errore si tratti talvolta

74 CAPITOLO 4 LATEX PRIME NOZIONI

sono troppo generici e bisogna armarsi di pazienza e di ragionamentoinvestigativo per trovare che cosa crsquoegrave che non va

e serve per uscire dal programma di compilazione e di ritornare immediatamenteallo shell editor con il cursore giagrave messo nella riga con lrsquoerrore questaoperazione ha esito felice se crsquoegrave una perfetta integrazione fra compilatore eshell editor ma talvolta non riesce percheacute lo shell editor non egrave configuratocorrettamente

i serve per introdurre una stringa di testo al posto dellrsquoultimo oggetto lettodallrsquointerprete per esempio se si scrivesse iput TEX si fermerebbe dopoaver letto questo oggetto a cui non sa dare un significato percheacute egrave uncomando scritto male al prompt di TEX (costituito da un punto interroga-tivo) basta scrivere iinput e poi premere il tasto di invio TEX sostituisceinput allrsquooggetto ignoto iput e procede nella compilazione si noti cheil file sorgente non egrave stato toccato da questa operazione quindi lrsquoerroreesiste ancora e bisogna correggerlo bisogna cioegrave ritornare allo shell editore chiedergli di collocarsi alla riga che contiene lrsquoerrore

Se si ha lrsquoaccortezza di lanciare LATEX abbastanza sovente ogni possibile erroreanche difficilissimo da trovare puograve trovarsi solo nel testo sorgente introdotto frala penultima e lrsquoultima volta che si egrave eseguita la compilazione se questa vieneeseguita sovente il testo introdotto egrave relativamente corto e quindi risulta piugravefacile trovare lrsquoerrore

Per errori piugrave complessi bisogna ricorrere a pacchetti oppure a comandispecifici la cui discussione egrave fuori luogo in questo capitolo introduttivo desti-nato alle prime nozioni Per comprendere meglio certi errori e certi avvisi dicattiva composizione (Overfull hbox e altri avvisi simili) conviene leggerelrsquoappendice E Il trattamento degli errori piugrave gravi e gli strumenti disponibilicon il sistema TEX sono trattati nellrsquoappendice F

Capitolo 5

LATEX testi speciali

I testi speciali sono quelli che devono venire composti in modo diverso dal restodel testo in particolare sono speciali quei testi da comporre interrompendo iltesto principale o quelli da scrivere in parti della pagina diverse da quelle dovesi troverebbero normalmente

I testi che interrompono la composizione normale si chiamano fuori testo oin inglese in display I brani di testo fuori sequenza sono generalmente costituitidalle note a piegrave di pagina da quelle a margine e da quelle alla fine del documentoo di una suddivisione importante del documento come per esempio alla finedei capitoli

Anche la matematica puograve essere composta in display ma di questo si parleragravepiugrave avanti

51 Che cosa sono i testi in displayI testi in display sono quelli lsquoin vetrinarsquo quelli messi in evidenza in qualche modoo per il loro contenuto o per quello che rappresentano si distinguono

bull le citazioni

bull gli elenchi

bull le descrizioni

bull le liste bibliografiche

e verranno ora descritti una categoria alla volta

52 Le citazioniLATEX offre tre ambienti per mettere in evidenza dei testi citati

1 le citazioni brevi

2 le citazioni lunghe

3 le poesie

75

76 CAPITOLO 5 LATEX TESTI SPECIALI

521 Le citazioni breviUna citazione di un testo altrui che consista in poche parole puograve essere eseguitaallrsquointerno del testo racchiudendola fra virgolette Le virgolette si indicano coni segni lsquolsquo per le virgolette aperte e con rsquorsquo per le virgolette chiuse Siccome latastiera italiana manca del tasto per segnare lrsquoaccento grave bisogna appoggiarsialle potenzialitagrave dello shell editor per inserire questi segni mancanti oppurebisogna conoscere i codici immissibili nel file drsquoentrata mediante apposite combi-nazioni di tasti Le virgolette caporali sono piugrave facili da immettere quando si usala codifica T1 per il font di composizione del documento (vedi lrsquoappendice D)basta scrivere ltlt per i caporali aperti e gtgt per i caporali chiusi si ottiene laquo raquoSolo che i caporali sono usati meno frequentemente per le citazioni ma sono usatipiugrave frequentemente per i dialoghi1

A questo proposito va segnalato che le virgolette aperte ldquo e quelle chiuse rdquosono asimmetriche in tipografia non bisogna mai usare le doppie virgolettesimmetriche anche se noti word processor lo fanno Per questo motivo nonbisogna mai usare il segno per inserire le virgolette Anzi con lrsquoopzione perlrsquoitaliano di babel il segno egrave attivo e quindi si comporta come una istruzionePrecisamente se esso egrave seguito da un qualunque carattere alfabetico esso inserisceun punto di possibile cesura e questa possibilitagrave torna molto comoda per indicaredove andare a capo in quelle parole composte dove si vuole evitare la sillabazionefonetica prescritta dalle grammatiche e dalle norme tipografiche ma si vuoleusare la sillabazione etimologica se si scrive macroistruzione le due parolemacro e istruzione sono trattate separatamente ai fini della sillabazione mauna eventuale cesura viene esplicitata allrsquooccorrenza anche fra la lsquoorsquo e la lsquoirsquo se lacesura in fin di riga lo richiede Allo stesso modo consente di andare a capodopo la barra quando si scrive per esempio modulazionedemodulazione cheviene composto come modulazionedemodulazione in fin di riga modulazionedemodulazione

Tornando alle virgolette siccome con la tastiera italiana lrsquoinserzione dellevirgolette aperte egrave problematica se si usa babel con lrsquoopzione per lrsquoitalianobasta scrivere per ottenere ldquo2

522 Le citazioni lungheLe citazioni piugrave lunghe anche consistenti in qualche riga di testo ma complessi-vamente senza superare la lunghezza di un capoverso possono essere evidenziatemediante lrsquoambiente quote in questo modo

beginquote〈breve testo da citare〉endquote

1Con lrsquoopzione italian di babel indipendentemente dalla codifica usata per il testo di uscitasi puograve ricorrere alle funzionalitagrave del carattere attivo e scrivere lt per i caporali aperti egt per i caporali chiusi Inoltre si puograve scrivere per sfruttare le potenzialitagrave del carattereattivo che introduce in questo caso le doppie virgolette alte aperte ldquo come se si fossero potutiintrodurre da tastiera due accenti gravi in sequenza

2In generale sarebbe preferibile usare sempre una tastiera con il layout dei tasti corrispon-dente alla versione USA e poi usare le comode personalizzazioni per scrivere le lettere accentatemancanti dalla tastiera USA La stessa tecnica serve anche per le lettere maiuscole (ldquoEgrave arrivatordquoinvece di ldquoErsquo arrivatordquo) e per inserire gli accenti che non si usano in italiano ma sono necessariper scrivere anche solo poche parole in altre lingue

52 LE CITAZIONI 77

Il testo viene composto mettendolo in evidenza fra margini ristretti rispetto altesto normale

Per le citazioni piugrave lunghe si usa lrsquoambiente quotation la sintassi egrave

beginquotation〈testo lungo da citare〉endquotation

La differenza rispetto allrsquoambiente quote egrave che in questo caso la citazione puogravecontenere diversi capoversi questi a loro volta oltre ad essere composti framargini ristretti vengono composti con la prima riga rientrata del solito rientrodi capoverso

I versi sono una forma particolare di citazione nel senso che viene compostoun testo scritto da altri tuttavia si tratta di un testo strutturato in versi e strofelrsquoambiente verse richiede che alla fine di ogni verso sia indicato lrsquoordine di andarea capo mediante il comando e che ogni strofa sia trattata come un capoversocioegrave che venga lasciata una riga bianca fra una strofa e la successiva

La sintassi egrave la seguente

beginverse〈verso〉〈verso〉 〈verso〉

〈verso〉〈verso〉 〈verso〉endverse

Ecco per esempio il famoso sonetto di Dante Alighieri3

Tanto gentil e tanto onesta parela donna mia quandrsquoella altrui salutachrsquoogne lingua deven tremando mutae li occhi no lrsquoardiscon di guardareElla si va sentendosi laudarebenignamente drsquoumiltarsquo vestutae par che sia una cosa venutada cielo in terra a miracol mostrareMostrasi sirsquo piacente a chi la mirache darsquo per li occhi una dolcezza al coreche rsquontender non la puorsquo chi no la provae par che de la sua labbia si movauno spirito soave pien drsquoamoreche va dicendo a lrsquoanima Sospira

3La mancanza di accenti sostituiti con gli apostrofi di troncamento sembra che sia unacaratteristica dei manoscritti piugrave accreditati Probabilmente quegli apostrofi marcano la cadutadi una o piugrave lettere finali (aferesi) rispetto alla versione latineggiante umiltarsquo al posto diumiltade sirsquo al posto di sic puorsquo al posto di puote

78 CAPITOLO 5 LATEX TESTI SPECIALI

viene composto con i comandi seguenti

beginverseTanto gentil e tanto onesta parela donna mia quandrsquoella altrui salutachrsquoogne lingua deven tremando mutae li occhi no lrsquoardiscon di guardare

Ella si va sentendosi laudarebenignamente drsquoumiltarsquo vestutae par che sia una cosa venutada cielo in terra a miracol mostrare

Mostrasi sirsquo piacente a chi la mirache darsquo per li occhi una dolcezza al coreche rsquontender non la puorsquo chi no la prova

e par che de la sua labbia si movauno spirito soave pien drsquoamoreche va dicendo a lrsquoanima Sospiraendverse

Un tipo di citazione o di messa in evidenza di un testo egrave quello che serve perpresentare brani di programmazione come succede spesso in questo libro Questotipo di composizione richiede che nessun carattere sia speciale che il font usatosia tale da rendere chiaro il fatto che il testo citato egrave un brano di programmazionedove gli spazi e le rientranze possono avere un importanza particolare dove lelinee troppo lunghe vanno a capo ma senza dividere in sillabe nessuna parola edove anche gli lsquoa caporsquo devono essere rispettati senza preoccuparsi di giustificareil testo Questo risultato si ottiene ricorrendo allrsquoambiente verbatim4 Lrsquounicacosa che non si puograve riprodurre egrave proprio costituito dalla stringa di caratteriendverbatim percheacute questa stringa nella sua interezza serve per riconoscerela fine dellrsquoambiente Questo testo abbonda di esempi di brani di programmazioneil piugrave recente egrave quello usato per rappresentare il codice della poesia citata pocosopra La sintassi dellrsquoambiente verbatim egrave la seguente

beginverbatim〈testo da riprodurre verbatim〉endverbatim

53 Gli elenchiGli elenchi sono generalmente di tre tipi (a) in linea con il testo come questoelenco (b) in display con gli oggetti elencati distinti per mezzo di una numerazioneper cui questo tipo di elencazione si chiama enumerazione e (c) in display doveperograve ogni elemento egrave evidenziato mediante un simbolo grafico ma questo simbolonon egrave distintivo del particolare oggetto elencato per cui questa egrave una elencazionesemplice

4La parola latina lsquoverbatimrsquo significa lsquoalla letterarsquo

53 GLI ELENCHI 79

531 Le elencazioni in lineaLe elencazioni in linea sono quasi sempre composte come lrsquoelencazione precedentedove il segno distintivo di ogni oggetto elencato egrave una lettera in corsivo racchiusafra parentesi tonde Lrsquoelenco non egrave particolarmente evidenziato e la presenza dellelettere corsive egrave lrsquounico elemento che fa capire che si tratta di una elencazionenon egrave frequente ma queste lettere corsive possono essere usate per richiamarelrsquooggetto identificato nel qual caso devono essere riportate anche le parentesicome quando ci si vuol riferire al caso (a)

532 Le enumerazioniGli elenchi numerati sono molto piugrave strutturati anche in relazione alla possibilitagravedi annidare un elenco dentro un altro Le enumerazioni vengono realizzatericorrendo allrsquoambiente enumerate con la seguente sintassi

beginenumerateitem[〈opzione〉] 〈oggetto testuale〉item[〈opzione〉] 〈oggetto testuale〉 endenumerate

Perciograve

1 Lrsquoenumerazione viene composta dentro un ambiente enumerate come erafacile prevedere

2 ogni oggetto da enumerare viene introdotto con il comando item

3 se per questo comando non si specifica nessuna opzione (e quindi non siscrivono nemmeno le parentesi quadre) lrsquooggetto viene numerato con unlsquonumerorsquo progressivo

4 questo lsquonumerorsquo puograve essere qualsiasi oggetto appartenente ad un sequenzaordinata di oggetti tipicamente

(a) dei numeri arabi o(b) dei numeri romani oppure(c) delle lettere dellrsquoalfabeto latino minuscolo o(d) delle lettere dellrsquoalfabeto latino maiuscolo

La classe del documento specifica quale tipo di numerazione viene eseguitoper ogni livello di enumerazione annidata Di default LATEX con la suaclasse book usa i numeri arabi le lettere minuscole i numeri romani lelettere maiuscole

5 Se invece viene espressa lrsquoopzione fossrsquoanche una opzione lsquonullarsquo allorainvece del lsquonumerorsquo viene scritta lrsquoopzione perciograve

si puograve fare riferimento simbolico agli elementi numerati per davvero manon si puograve fare riferimento per esempio a questo elemento percheacute non egravenumerato

80 CAPITOLO 5 LATEX TESTI SPECIALI

6 Come tutte le elencazioni esse possono essere annidate una dentro lrsquoaltrama non si possono usare piugrave di tre elencazioni annidate una dentro lrsquoaltradentro una elencazione principale non tanto percheacute la cosa sia tecnicamenteimpossibile ma percheacute la struttura diventerebbe troppo complicata e illettore ne rimarrebbe confuso

533 Le elencazioni sempliciLe elencazioni semplici sono in display come le enumerazioni ma ogni elementoelencato egrave solamente contrassegnato con un simbolo grafico uguale per tutti glielementi dello stesso livello di elencazione Lrsquoambiente si chiama itemize e vale lasintassi seguente

beginitemizeitem[〈opzione〉] 〈oggetto testuale〉item[〈opzione〉] 〈oggetto testuale〉 enditemize

Perciograve

bull il primo livello di elencazione viene contrassegnato con dei pallini neri ma

se viene espressa una opzione come in questo caso il contrassegno egrave quantoviene specificato come opzione

bull Le elencazioni semplici possono essere annidate lrsquouna dentro lrsquoaltra e ilcontrassegno cambia secondo il livello di annidamento per esempio

ndash in questo secondo livello il contrassegno egrave costituito da un lineatomedio

ndash si possono cambiare questi contrassegni agendo sulle definizioni chesono contenute nel file di classe

bull In ogni caso si ricorre a queste elencazioni semplici quando gli oggetti daelencare non sono logicamente sequenziali

534 Alcune osservazioni relative alle elencazioniNei paragrafi precedenti si sono descritte alcune elencazioni la domanda ricor-rente egrave la seguente Quale tipo di punteggiatura viene usato fra un elemento e ilsuccessivo

Per le elencazioni in linea si suppone che gli oggetti elencati siano brevi frasicostituite al massimo da un solo periodo quindi il punto e virgola sembra essereil segno di interpunzione piugrave appropriato Se non fosse cosigrave allora sarebbe megliocostruire una elencazione in display

Per le elencazioni in display semplici o numerate la punteggiatura puograveancora essere un punto e virgola se gli oggetti sono brevi frasi o frazioni difrase ma se sono costituiti da periodi completi o da piugrave periodi egrave necessariousare la punteggiatura che si userebbe anche senza evidenziare lrsquoelencazione Nonnecessariamente ogni oggetto elencato deve finire con la stessa punteggiatura

54 LE DESCRIZIONI 81

anzi negli elenchi precedentemente usati a titolo di esempio si sono terminatialcuni oggetti senza punteggiatura ma con una congiunzione

Nelle enumerazioni egrave possibile inserire il comando label dentro gli oggettia cui si vuole fare riferimento in modo simbolico per esempio si puograve inserirenellrsquoultimo elemento dellrsquoenumerazione usata come esempio

item labeleleannidatoCome tutte le elencazioni

cosigrave che qui vi si possa fare riferimento mediante lrsquouso dei comandi ref epageref scrivendo

lrsquoelemento~refeleannidato nella pagina~pagerefeleannidato

ottenendo ldquolrsquoelemento 6 nella pagina 80rdquo

54 Le descrizioniLe descrizioni possono essere viste come elencazioni particolari nelle quali ilsegno distintivo non egrave neacute un numero neacute un simbolo ma egrave una parola o unalocuzione di cui si fornisce una descrizione o una spiegazione nel resto del testodellrsquooggetto la sintassi dellrsquoambiente description egrave la seguente

begindescriptionitem[〈locuzione〉] 〈descrizione〉item[〈locuzione〉] 〈descrizione〉 enddescription

Bencheacute la 〈locuzione〉 sembri facoltativa essa in effetti egrave logicamente necessa-ria percheacute non avrebbe nessun senso dare una 〈descrizione〉 di nulla

Questo ambiente egrave particolarmente indicato per dare una serie di definizionioppure per scrivere un glossario

Esercizio 51 Continuando lrsquoesercizio 41 si cominci un nuovo capitolo senzaspecificare lrsquoasterisco ma dandogli un titolo a piacere si componga poi unambiente description nel quale si danno le definizioni di avanzamento diriga di corpo e di interlinea

55 Le liste bibliograficheLe liste bibliografiche sono dei particolari elenchi numerati dove i riferimentibibliografici sono etichettati con numeri che possono essere richiamati simbolica-mente nel corso del testo Va subito detto che qui si parla dellrsquoelenco bibliograficostandard cioegrave quello che si ottiene utilizzando lrsquoambiente thebibliography con lasintassi seguente per comporre lrsquoelenco dei riferimenti bibliografici

beginthebibliography〈stringa〉bibitem[〈richiamo〉]〈chiave〉 〈riferimento bibliografico〉bibitem[〈richiamo〉]〈chiave〉 〈riferimento bibliografico〉 endthebibliography

82 CAPITOLO 5 LATEX TESTI SPECIALI

dove

〈stringa〉 egrave una stringa di caratteri generalmente una stringa di cifre ma ilsignificato numerico egrave irrilevante serve allrsquoambiente per prendere le misureper la lunghezza del campo da lasciare sul margine sinistro dellrsquoelenco alfine di incolonnare correttamente tutte le voci della bibliografia

〈richiamo〉 egrave una parola o una stringa di lettere e numeri che permette diidentificare il particolare riferimento bibliografico allrsquointerno del testo oltreche nel campo identificativo dellrsquoelenco se non si specifica niente (nemmenole parentesi quadre) il riferimento di default egrave costituito da un numeroprogressivo allrsquointerno dellrsquoelenco racchiuso fra parentesi quadre Questo egraveil modo di citazione piugrave frequente negli articoli scientifici che si riferisconoa scienze nelle quali si fa un grande uso del linguaggio matematicoNelle discipline umanistiche egrave piugrave frequente il modo di citazione lsquoautore-annorsquo per cui il 〈richiamo〉 egrave appunto costituito dal cognome del (primo)autore seguito dallrsquoanno di pubblicazione dellrsquoopera citata e in caso diambiguitagrave da una lettera progressiva Ecco allora che la possibilitagrave di sta-bilire con precisione il nome dellrsquoautore e lrsquoanno di pubblicazione dellrsquooperacitata diventa un ottimo modo per specificare il 〈richiamo〉

〈chiave〉 egrave il nome simbolico da usare sia nellrsquoeventuale database bibliografico siacome argomento obbligatorio del comando bibitem sia come argomentodel comando cite che serve per citare il lavoro allrsquointerno del documento

Lrsquoambiente thebibliography nella classe book provvede a iniziare una nuovapagina a scrivere una intestazione di capitolo non numerato ma intitolataBibliography oppure Bibliografia oppure a seconda della lingua di default

Se questo ambiente contenesse una voce del genere

bibitemLamp94 textscLeslie LamporttextitA document preparation system --- LaTeX ---Userrsquos guide and reference manual Addison WesleyReading Mass 2nd ed 1994

nella bibliografia apparirebbe una voce[12] Leslie Lamport A document preparation system mdash LATEX mdash Userrsquos guideand reference manual Addison Wesley Reading Mass 2nd ed 1994e lrsquoopera citata verrebbe citata con citeLamp94 per ottenere nel testo lsquo[12]rsquo

Se invece nellrsquoelenco bibliografico si fosse scritto

bibitem[textscLamport-94]Lamp94 textscLeslie LamporttextitA document preparation system --- LaTeX ---Userrsquos guide and reference manual Addison WesleyReading Mass 2nd ed 1994

nella bibliografia apparirebbe una voce[Lamport-94] Leslie Lamport A document preparation system mdash LATEX mdashUserrsquos guide and reference manual Addison Wesley Reading Mass 2nd ed1994e lrsquoopera citata sempre con la stessa chiave citeLamp94 apparirebbe neltesto come lsquo[Lamport-94]rsquo

56 I RIFERIMENTI INCROCIATI 83

Facendo ricorso a pacchetti di estensione da richiamare con usepackage nelpreambolo egrave possibile comporre questi elenchi in modo stilisticamente diversonon solo ma egrave possibile estrarre da un database bibliografico le informazioni neces-sarie mediante il programma BIBTEX cosigrave da avere un risultato compositivamenteomogeneo oltre che semanticamente completo

56 I riferimenti incrociatiCome si egrave visto nei paragrafi precedenti egrave possibile riferirsi simbolicamente aqualunque oggetto numerato e alla pagina in cui compare se questo tipo diinformazione egrave sensato

I comandi per ottenere questi riferimenti sono i seguenti e soddisfano allasintassi qui di seguito indicata

label〈chiave〉ref〈chiave〉pageref〈chiave〉

bibitem[〈riferimento〉]〈chiave〉cite[〈informazioni aggiuntive〉]〈chiavi〉

La 〈chiave〉 egrave una etichetta simbolica possibilmente mnemonica (compostacon qualunque sequenza di caratteri esclusa la virgola) con la quale si vuoleidentificare un oggetto Come si egrave visto negli esempi precedenti io compongo lachiave con una breve sigla che ricorda il tipo di oggetto per esempio fig peruna figura ese per un esempio cap per un capitolo equ per una equazioneeccetera seguito da un nome mnemonico che mi ricordi di che cosa si tratti

Il comando label con la sua 〈chiave〉 va inserito nel file sorgente dopo ilcomando che assegna un numero allrsquooggetto i comandi ref e pageref conle loro chiavi vanno scritti nel testo nei punti dove si vuole fare riferimentoallrsquooggetto una precauzione utile dal punto di vista tipografico egrave quella di farprecedere i comandi ref e pageref da una tilde che in LATEX ha il significato dispazio non separabile cosigrave che durante la composizione il motore TEX non spezzila riga o non cambi pagina fra il nome che precede il riferimento e il riferimentostesso Si scriveragrave per esempio nellrsquoequazione~refequPitagora cosigrave cheTEX non spezzi la riga fra la parola lsquoequazionersquo e il numero che esso sostituiragravealla 〈chiave〉 lsquoequPitagorarsquo

Facendo uso del pacchetto di estensione varioref (da richiamare mediante ilcomando usepackage nel preambolo) egrave possibile avere i riferimenti incrociaticompleti di numero e pagina in locuzioni del tipo lsquola figura 513 nella paginaseguentersquo oppure lsquola figura 514 nella pagina 215rsquo a seconda della distanza delrichiamo dal punto in cui lrsquooggetto compare nel documento

Per i riferimenti bibliografici il comando bibitem come si egrave visto consentedi definire una chiave e facoltativamente un richiamo Il comando cite accettanon solo una chiave ma diverse chiavi separate da virgole si potrebbe per esem-pio scrivere citelamp94TexComp e ritrovarsi scritto nel testo lsquo[12 13]rsquo cioegravela citazione di entrambe le opere identificate mediante i loro numeri progressiviallrsquointerno dellrsquoelenco bibliografico

84 CAPITOLO 5 LATEX TESTI SPECIALI

Il comando cite accetta anche un argomento facoltativo (che ha sensoquando si cita una sola chiave) per indicare un posto preciso dellrsquoopera citataper esempio se si scrive cite[cap~4]Lamp94 si ottiene lsquo[12 cap 4]rsquo

Il vantaggio che questo metodo di citazione simbolico offre egrave che in casodi correzioni per esempio cancellazioni o inserimenti di parte del testo non egravenecessario correggere tutte le citazioni ma ci pensa LATEX a correggere tuttii valori che risultano modificati bisogna solo lanciare LATEX un paio di voltefincheacute nei messaggi finali non compare piugrave il messaggio che lsquoalcuni riferimentipotrebbero essere stati modificatirsquo

57 Altri testi in displayTalvolta egrave necessario mettere in evidenza separandolo dal resto del testo unbrano composto senza giustificazione o meglio solo allineato a sinistra oppuresolo allineato a destra oppure centrato

Per questo scopo sono disponibili i tre ambienti flushleft flushright e center Si ricorda che il testo giustificato solo a sinistra egrave piugrave facilmente leggibile di

quello giustificato solo a destra e del testo in stile epigrafico con le righe centrateTuttavia per i titoli per esempio lo stile con le righe centrate egrave quasi sempre piugraveindicato che non lo stile giustificato solo da un lato o giustificato da entrambi ilati

Questi tre ambienti compongono il testo che essi racchiudono nella manieraspecifica di ciascuno ma tutti e tre hanno la caratteristica che il testo cosigravecomposto risulta distanziato sopra e sotto mediante lrsquoequivalente di una rigabianca (vuota)

In certe circostanze non egrave questo quello che si desidera ma si vuole cambiaretemporaneamente il tipo di giustificazione senza lasciare spazi bianchi prima odopo il testo cosigrave composto

Esistono i tre comandi (dichiarazioni) raggedright raggedleft e natu-ralmente centering che ottengono lo scopo desiderato siccome non esiste uncomando justify che permetta di tornare al testo giustificato da entrambi ilati egrave necessario limitare lrsquoeffetto di questi tre comandi mediante lrsquouso di ungruppo un gruppo egrave una parte di testo intercalato a comandi racchiuso (a) fradue parentesi graffe oppure (b) fra i comandi bgroup ed egroup oppure(c) fra i comandi begingroup e endgroup oppure (d) allrsquointerno di ambientidelimitati da begin e end

Tuttavia bisogna ricordare che lrsquointerprete TEX esegue la composizione diciascun capoverso e quindi la sua giustificazione specifica solo alla fine delcapoverso stesso per indicare esplicitamente la fine di un capoverso allrsquointernodi un gruppo egrave meglio fare uso del comando par (iniziale di paragraph che ininglese indica il capoverso) che specifica proprio la fine di un capoverso Perciogravescrivere

Andando lungo la strada egli vide una iscrizioneche annunciava[1ex]centering Qui visse Torquato Tasso durante il suosoggiorno del 1605[1ex] ma la cosa gli sembravastrana poicheacute ricordava che il Tasso era vissuto nel~rsquo500

egrave sbagliato percheacute produce

57 ALTRI TESTI IN DISPLAY 85

Andando lungo la strada egli vide una iscrizione che annunciavaQui visse Torquato Tasso durante il suo soggiorno del 1605ma la cosa gli sembrava strana poicheacute ricordava che il Tasso era vissutonel rsquo500

senza centrare il messaggio lapidarioInvece scrivendo

Andando lungo la strada egli vide una iscrizioneche annunciavaparvspace1excentering Qui visse Torquato Tasso durante il suosoggiorno del 1605parvspace1exnoindent ma la cosagli sembrava strana poicheacute ricordava che ilTasso era vissuto nel~rsquo500

si ottiene correttamente

Andando lungo la strada egli vide una iscrizione che annunciavaQui visse Torquato Tasso durante il suo soggiorno del 1605

ma la cosa gli sembrava strana poicheacute ricordava che il Tasso era vissutonel rsquo500

Nellrsquoesempio precedente oltre allrsquoillustrazione dellrsquouso di centering e delcomando par vengono usati diversi altri comandi non ancora descritti ma chevale la pena di commentare qui

serve per andare a capo sia nel mezzo di un testo sia quando si compongo-no matrici matematiche o tabelle questo comando accetta un argomentofacoltativo racchiuso fra parentesi quadre che indica quanto spazio verti-cale lasciare dopo essere andati a capo [1ex] vuol dire lsquovai a capo elascia uno spazio verticale pari a 1 ex cioegrave pari allrsquoaltezza di una lettera lsquoxrsquonel font correntersquo Esiste anche la variante che continua ad accettarelrsquoargomento facoltativo dove lrsquoasterisco impone a TEX di non andare apagina nuova con la nuova rigaVale la pena di sottolineare che serve per andare a capo alterando lagiustificazione di quella riga allrsquointerno di un capoverso egrave errato lasciareuna riga vuota e cominciare una altro capoverso con noindent che soload un occhio distratto sembra produrre lo stesso effetto egrave altrettantoerrato al contrario cominciare un altro capoverso scrivendo indentpercheacute si produce la rientranza (indent in inglese) ma non si cominciaaffatto un nuovo capoverso Con certi stili grafici eo certi ambienti larientranza potrebbe essere nulla con certi altri stili grafici eo ambientila separazione fra i capoversi non egrave indicata dalla rientranza ma da unavisibile interlineatura

vspace serve per inserire uno spazio verticale dopo la fine di un capoverso odetto in termini piugrave tecnici quando TEX egrave in modo verticale Lrsquoargomentoindica quanto spazio lasciare siccome questo spazio viene perso allrsquoiniziodi una pagina la forma asteriscata vspace consente di mantenere lospazio specificato anche allrsquoinizio della pagina

86 CAPITOLO 5 LATEX TESTI SPECIALI

CBeccari

ndashpi

ctur

e testo precedente

Figura

Didascalia 1 Uso di centering

Testo seguente

testo precedente

Figura

Didascalia 2 Uso di center

Testo seguente

Figura 51 Effetto dellrsquouso del comando centering rispetto allrsquoambiente center

noindent serve per evitare il rientro allrsquoinizio di un capoverso

Attenzione Sarebbe desiderabile non fare mai uso dei comandi appena de-scritti questi non sono parte del mark-up ma del disegno grafico sonocomandi prescrittivi non comandi descrittivi Lrsquoautorecompositore do-vrebbe attenersi al mark-up descrittivo la maggior parte del tempo Egravecostretto a ricorrere a questi lsquosotterfugirsquo quando la situazione non prevedequalche ambiente che gli consenta di ottenere la composizione nella manieradesiderata Piuttosto egli farebbe meglio a definire un nuovo ambiente conle caratteristiche desiderate ma questo egrave un argomento che verragrave vistomolto piugrave avanti

Nota bene Al contrario egrave opportuno usare centering allrsquointerno degli am-bienti figure e table per centrare lrsquoinclusione dellrsquoillustrazione o della tabellada flottare non occorre servirsi di par percheacute quegli ambienti contengonogiagrave tutte le informazioni per poter gestire questa situazione Se si usasseinvece lrsquoambiente center per centrare lrsquoillustrazione o la tabella questo am-biente inserirebbe dellrsquoulteriore spazio bianco prima e dopo la sua aperturae la sua chiusura per cui lrsquooggetto flottante risulterebbe poi precedutoe seguito da troppo spazio bianco eo la didascalia risulterebbe troppospaziataInfatti lrsquouso di centering per specificare la collocazione orizzontale dellefigure e delle tabelle allrsquointerno dei loro rispettivi ambienti flottanti consentedi evitare lrsquoinserimento di spazi bianchi in eccesso per lrsquouso dettagliato diquesti ambienti flottanti si rimanda al paragrafo 72 qui li si simuleragrave permostrare la differenza fra il risultato ottenibile con il comando centeringrispetto a quello ottenibile con lrsquoambiente center in entrambi i casi vengonocollocati due filetti orizzontali per marcare la differente spaziatura verticaleCome si vede nella figura 51 lrsquooggetto (rappresentato in questo esempioda un semplice rettangolo) viene inserito fra il testo precedente e il testoseguente insieme alla sua didascalia distanziato dagli spazi previsti dalfile di classe quando si usa centering Quando invece si usa lrsquoambientecenter questo inserisce ulteriori spazi e lrsquooggetto e la sua didascalia risultanocontornati da troppo spazio bianco

58 LE NOTE 87

58 Le noteLATEX consente di scrivere due tipi di note quelle a piegrave di pagina e quellecomposte nel margine della pagina Per scrivere note raccolte assieme alla finedi un capitolo di un articolo di un libro bisogna ricorrere al pacchetto esternoendnotes5

581 Le note in calcePer scrivere una nota in calce basta usare il comando footnote con la seguentesintassi

footnote[〈richiamo〉]〈testo〉

Il 〈richiamo〉 di default egrave un numero collocato in posizione di apice talvolta puograveessere un simbolo come un asterisco una spada una doppia spada eccetera lanumerazione delle note normalmente ricomincia da 1 con lrsquoinizio di un nuovocapitolo ma la cosa dipende dalla classe del documento Il 〈testo〉 della nota nonrichiede commenti salvo che si tratta di un lsquoargomento mobilersquo e quindi certicomandi lsquofragilirsquo non possono essere usati allrsquointerno del 〈testo〉 Il lettore non sipreoccupi dei comandi fragili e degli argomenti mobili sono cose abbastanza rarequando si scrive un documento lsquonormalersquo in questo testo che descrive i comandidi LATEX alcune cose non sono lsquonormalirsquo proprio percheacute si tratta di comandiperciograve quando alcuni comandi comparivano nelle note si egrave dovuto ricorrere atrucchetti vari per poterli scrivere alla lettera senza farli eseguire

Le note sono testi speciali percheacute vengono composte e trattenute in memoriafino a quando non viene composta la pagina nella quale esse devono comparireLATEX fa il possibile affincheacute le note non siano spezzate fra pagine successive eche ognuna sia collocata al piede della pagina nella quale compare il richiamoEgrave abbastanza raro che LATEX non riesca a sistemare la nota in calce senzaspezzarla ma puograve succedere Non egrave colpa di LATEX ma del testo nel quale lanota egrave richiamata e del testo della nota Talvolta cambiando lrsquouno o lrsquoaltro ilproblema si risolve da solo

Egrave possibile attribuire una etichetta ad una nota mediante il comando labele a questa etichetta si puograve fare riferimento per citare la stessa nota in puntidiversi del testo

Allrsquooccorrenza si puograve fare uso di un comando separato per inserire il richiamoe per scrivere il testo i comandi seguono la sintassi seguente

footnotemark[〈richiamo〉]footnotetext[〈richiamo〉]〈testo〉

nei quali il 〈richiamo〉 egrave facoltativo se si fa uso dellrsquoargomento facoltativo sia inquesti comandi sia in footnote non viene incrementato il contatore delle notee quindi lrsquoattribuzione di una etichetta mediante label non funziona

Questi due comandi sono prescrittivi non descrittivi percheacute scendono neldettaglio di come fare apparire le note nel testo composto Questi comandi anchese in generale egrave bene che siano evitati tuttavia possono essere necessari quandoil procedimento normale di composizione di LATEX non egrave adeguato al compito

5Non si confonda il pacchetto endnotes formato dal file endnotessty con il fileendnotetex che egrave un file di estensione per Plain TEX non per LATEX

88 CAPITOLO 5 LATEX TESTI SPECIALI

Per esempio non egrave possibile mettere note dentro alle tabelle esistono pacchettidi estensione per superare questi limiti ma se non capita sovente di inserire notenelle tabelle puograve valere la pena di usare footnotemark specificando il richiamodentro una casella della tabella e di usare footnotetext con lo stesso richiamodopo il comando caption per comporre la didascalia

Pertanto le note da attribuire alle tabelle vanno composte come mostrato nelseguente modello Ci si ricordi di specificare una 〈larghezza〉 adatta a contenerela tabella Nello stesso tempo non si perda di vista la possibilitagrave di specificaregli argomenti facoltativi sia di footnotemark sia di footnotetext percheacuteessi devono venire composti con lo stile che LATEX usa allrsquointerno delle minipage(richiami mediante apici letterali in corsivo) ma che essendo lrsquoambiente tabularcomposto dentro una scatola potrebbero non venire stampati correttamenteEsistono ovviamente pacchetti che consentono di eseguire quanto esemplificatoqui in modo lsquoautomaticorsquo ma anche Lamport consiglia nel suo manuale diricorrere allrsquouso di footnotemark e footnotetext proprio in questi casibegintablebeginminipage〈larghezza〉centeringbegintabular amp amp amp amp footnotemark endtabularcaption〈didascalia〉label〈chiave〉footnotetext〈testo della nota〉endminipageendtable

582 Le note marginaliSe i margini del documento sono abbastanza ampi questi possono accogliere lenote a margine talvolta chiamate in latino marginalia Il comando per produrleegrave marginpar e segue la sintassi

marginpar[〈nota di sinistra〉]〈nota di destra〉

Anche le note marginali sono testi che vengono trattenuti in memoria fincheacute lapagina in cui compaiono non viene completamente composta a seconda del tipodi documento della classe dello stile grafico dellrsquoampiezza dei margini la notamarginale puograve venire collocata nel margine esterno o in quello interno se perograveviene collocata a destra del testo viene composto il testo della 〈nota di destra〉altrimenti il testo della 〈nota di sinistra〉 se egrave stato specificato altrimenti iltesto della 〈nota di destra〉 viene usato anche per la 〈nota di sinistra〉

Si osservi che se si compone a due colonne le note relative alla colonna disinistra vengono collocate a sinistra della colonna e corrispondentemente lenote relative alla colonna di destra vengono collocate a destra della colonnaComponendo ad una colonna le note vengono collocate sempre nel margineesterno quindi a destra del testo nelle pagine di destra e a sinistra del testo nellepagine di sinistra Sembra complicato ma a pensarci bene egrave del tutto logico Egrave

58 LE NOTE 89

vero che con lrsquoapposito comando reversemarginpar questo comportamentopuograve venire scambiato ma in generale si suppone che questa scelta sia fatta nelfile di classe e il compositore non debba preoccuparsene

Le note marginali vengono composte in colonne strette con una giustezza cheraramente supera i 40mm con una giustezza cosigrave piccola egrave possibile che la com-posizione a pacchetto (giustificata da entrambi i lati) produca una composizionecon ampi spazi bianchi fra le parole e con parole difficili da dividere in sillabeche sporgono fuori dalla giustezza In questi casi sarebbe meglio specificare perla nota di destra una composizione giustificata solo a sinistra basta usare ilcomando raggedright Per le note di sinistra per una questione di simme-tria sarebbe quindi desiderabile specificare un testo giustificato solo a destramediante il comando raggedleft La cosa egrave evidentemente possibile se si fauso dellrsquoargomento facoltativo descritto nella sintassi di marginpar Tuttaviala lettura di un testo giustificato solo a destra puograve risultare meno agevole di untesto giustificato solo a sinistra ecco percheacute pur essendo possibile raramente sispecifica una composizione giustificata solo a destra anche se i testi delle notemarginali sono solitamente molto brevi e quindi non sono faticosi da leggereanche se fossero giustificati solo a destra

Le note marginali sono collocate nel margine che compete loro mantenendo Questa egrave una nota marginaleche si sviluppa su piugrave righela loro prima riga allineata con la riga del testo alla quale esse si riferiscono

se due note marginali compaiono troppo ravvicinate e ci fosse il rischio che si Questa egrave una seconda notamarginale troppo vicina allanota precedente

sovrappongano allora LATEX provvede a spostare in basso le note che potrebberointerferire con le note precedenti assicurando uno spazio di separazione speci-ficato nel file di classe come si vede nelle due note qui a margine la secondaspecificata nella riga dove si dice ldquocompaiono troppo ravvicinate rdquo risultatroppo ravvicinata alla prima ed egrave stata leggermente abbassata

Le note marginali vengono usate spesso negli scritti letterari specialmentese si tratta di note brevi e frequenti egrave raro incontrare note marginali in scrittitecnici

Capitolo 6

LATEX tabelle

61 IntroduzioneLe tabelle sono oggetti strutturati contenenti testo o formule o espressionimatematiche formati da un certo numero di celle ordinate in senso orizzontale ein senso verticale queste celle possono essere riquadrate mediante filetti spessociascuna colonna di celle ha una prima cella che descrive il contenuto delle cellesottostanti

Comporre questo insieme di celle egrave sempre stato un grosso problema anche aitempi in cui la composizione veniva eseguita a mano ora i vari word processore text processor consentono di lavorare con piugrave facilitagrave ma senzrsquoaltro la com-posizione delle tabelle specialmente delle tabelle ben composte richiede moltapazienza e molta preparazione iniziale se il compositore si fa uno schizzo anchegrossolano della tabella sa giagrave in anticipo dove sorgeranno i maggiori problemie quindi sa predisporre gli accorgimenti adeguati

Qui si parleragrave di tabelle lsquotestualirsquo quelle con contenuto prevalentementematematico si chiamano in generale matrici e verranno viste nel capitolo 10

Distinguiamo subito due casi cioegrave quello delle tabelle che non occupanopiugrave di una pagina e le tabelle lunghe che occupano piugrave pagine Le tabellelsquobrevirsquo nonostante la loro brevitagrave sono oggetti ingombranti perciograve egrave meglio cheil programma di elaborazione del testo LATEX nel nostro caso sposti la tabellanel documento composto dove crsquoegrave sufficiente posto per collocarla talvolta nellastessa pagina o persino nel punto stesso dove egrave stata definita piugrave spesso allrsquoinizioo alla fine della pagina successiva talvolta alla fine di un capitolo o dellrsquointerodocumento

Per consentire questo trattamento LATEX deve conservare in memoria latabella composta per poi scaricarla nel file di uscita alla prima occasione buona

Questo modo di procedere implica due cose

1 le tabelle devono essere numerate per farvi riferimento mediante i loronumero

2 le tabelle troppo grandi possono bloccare la memoria percheacute vi vengonotrattenute in quanto LATEX non trova mai lrsquooccasione buona per scaricarlenel file di uscita

91

92 CAPITOLO 6 LATEX TABELLE

Il fatto che le tabelle siano numerate e che debbano essere fatte lsquoflottarersquo finoal punto piugrave idoneo richiede un ambiente specifico di lsquoflottaggiorsquo e implicano uncomando per eseguire la didascalia anche una semplice didascalia composta dalsolo titolino

62 Come far flottare una tabellaLrsquoambiente di flottaggio si chiama table e richiede la seguente sintassi

begintable[〈codici di posizionamento〉]〈didascalia e tabella vera e propria〉endtable

I 〈codici di posizionamento〉 sono i codici con i quali viene descritto il modo dicollocare la tabella nel testo di default questi codici sono t b e p i codici sonocomplessivamente i seguenti

h poni la tabella qui (here in inglese)t poni la tabella in testa alla pagina (top)b poni la tabella al fondo della pagina (bottom)p poni la tabella in una pagina di soli oggetti flottanti (page) poni la tabella dove prescritto dagli altri codici di posizione senza

essere troppo rigoroso con i parametri di posizionamento

Per maggiori dettagli si veda il paragrafo 72 dove sono illustrati vari metodiper controllare la posizione degli oggetti flottanti e dove si descrivono alcunipacchetti che consentono di modificare gli ambienti standard e di definire nuoviambienti flottanti

63 Le didascalieQuanto segue vale per tutte le didascalie anche per quelle delle figure Didefault seguendo la tradizione nordamericana LATEX chiede che la didascaliasia posta sotto alle tabelle in Europa viene invece raccomandato di inserire ladidascalia prima della tabella a cui si riferisce Invece per le figure sia la tradizioneeuropea sia quella nordamericana preferiscono la didascalia dopo lrsquoillustrazioneOvviamente questa egrave una affermazione generale visto che le didascalie possonotrovare diverse posizioni a seconda del tipo di illustrazioni o di tabelle e del tipodi didascalie

La didascalia viene composta mediante il comando caption secondo laseguente sintassi

caption[〈didascalia breve〉]〈didascalia〉label〈etichetta〉

La 〈didascalia〉 egrave il testo a cui egrave stato premesso il titolino lsquoTabellarsquo o lsquoTablersquo olsquoTableaursquo o a seconda della lingua in uso seguito dal numero progressivodella tabella questa parte viene inserita di default il resto della didascalia puograveanche essere omesso ma non sarebbe una buona idea Il resto della didascaliapuograve essere composto con un titolo seguito da un capoverso descrittivo Questo

64 COME COMPORRE LA TABELLA VERA E PROPRIA 93

capoverso puograve mancare se crsquoegrave viene terminato con il punto fermo Se non crsquoegrave iltitolo viene terminato senza punto fermo come tutti i titoli

Non egrave il caso che lrsquointera 〈didascalia〉 vada a finire nellrsquoelenco delle tabelle almassimo ci andragrave il titolo ma non certo il capoverso descrittivo Ecco quindiche la 〈didascalia breve〉 torna utile per essere inserita nellrsquoelenco delle tabel-le eventualmente abbreviando ulteriormente il titolo inserito nella didascaliacompleta

Lrsquo〈etichetta〉 introdotta con il comando label serve per poter fare riferi-mento al suo numero (assegnato automaticamente da LATEX) mediante un nomesimbolico egrave opportuno quindi che lrsquo〈etichetta〉 sia scelta con qualche criteriomnemonico in modo che essa richiami il contenuto della tabella piuttosto cheunrsquoaltra caratteristica qualsiasi Nel corso del testo la tabella viene richiamataper numero mediante lrsquouso del comando ref eo per numero di pagina mediantelrsquouso del comando pageref secondo la sintassi seguente

ref〈etichetta〉pageref〈etichetta〉

Egrave opportuno fare uso del segno di legatura ~ per non staccare il riferimento dellatabella dal nome che lrsquoaccompagna si scriveragrave pertanto

la tabella~reftabpopolazione mostra che

per riferirsi alla tabella etichettata con tabpopolazione con la certezza chenon potragrave avvenire un fine riga o un fine pagina fra la parola lsquotabellarsquo e il suoriferimento numerico

Per modificare lo stile compositivo delle didascalie esiste lrsquoottimo pacchettodi estensione caption mediante il quale si possono modificare tutti i possibiliparametri che presiedono alla loro composizione

64 Come comporre la tabella vera e propriaLa tabella vera e propria viene composta mediante lrsquoambiente tabular che richiedela seguente sintassi

begintabular[〈posizione〉]〈descrittori delle colonne〉〈prima cella〉amp〈seconda cella〉amp 〈prima cella〉amp〈seconda cella〉amp 〈prima cella〉amp〈seconda cella〉amp endtabular

Crsquoegrave anche la versione asteriscata tabular che obbedisce alla sintassi seguente

begintabular〈larghezza〉[〈posizione〉]〈descrittori delle colonne〉〈prima cella〉amp〈seconda cella〉amp 〈prima cella〉amp〈seconda cella〉amp 〈prima cella〉amp〈seconda cella〉amp endtabular

94 CAPITOLO 6 LATEX TABELLE

Descrittore Spiegazione

l Cella col contenuto allineato a sinistrac Cella con il contenuto centrator Cella con il contenuto allineato a destrap〈larghezza〉 Cella contenente un blocco di testo

giustificato e largo 〈larghezza〉| Filetto verticale〈espressione〉 -espressionevline Filetto verticale da sostituire a | dentro

una -espressione〈numero〉〈descrittori〉 Ripetizione di 〈numero〉 volte la stessa

sequenza di 〈descrittori〉

Tabella 61 Descrittori delle colonne per le tabelle

Per lrsquoambiente tabular si vedano i dettagli nel paragrafo 65 qui per oraconcentreremo lrsquoattenzione sullrsquoambiente tabular ma ricordiamo che quasi tuttoquello che verragrave detto qui vale anche per le tabelle dellrsquoambiente tabular

641 I descrittori delle colonneI descrittori delle colonne sono esposti nella tabella 61

Mentre tutto il resto sembra ovvio egrave necessario spiegare che cosa sia una-espressione questa egrave una sequenza di comandi di descrittori di elementitestuali da mettere fra due celle adiacenti al posto del normale spazio fra lecolonne Anche il descrittore | potrebbe essere visto come un separatore fracolonne adiacenti (e lo egrave) ma non egrave una -espressione questa sostituisce anchelo spazio di separazione fra le celle adiacenti e quindi fra le colonne Per esempiosi puograve notare che la tabella 61 ha i filetti orizzontali che sporgono un pocofuori dei limiti della cella di sinistra e di destra Generalmente lrsquoeffetto esteticoegrave gradevole ma potrebbe essere necessario eliminare tale spazio serve allorainserire come primo descrittore di colonna e come ultimo descrittore di colonnauna -espressione lsquovuotarsquo

Esercizio 61 Una -espressione potrebbe essere usata per ripetere come separa-tore di colonna uno stesso segno in una tabella che riportasse una colonnacon valori numerici fratti e si volesse incolonnare questi numeri in modo cheil separatore decimale sia incolonnato fra tutte le celle indipendentementedal numero delle cifre prima e dopo la virgola si potrebbe usare la virgolacome testo allrsquointerno della -espressione spezzando la colonna in duecolonne adiacenti e incolonnare la parte intera in una colonna allineata adestra e la parte decimale in una colonna allineata a sinistraPredisporre una tabella con una colonna di testi descrittivi per ogni rigae una lsquocolonnarsquo di numeri decimali incolonnata sulle rispettive virgoledecimali

Lrsquoesercizio precedente egrave utile per capire il meccanismo per fortuna il pacchettodi estensione array consente giagrave mediante un nuovo descrittore di incolonnare inumeri fratti sulla base del loro separatore decimale Le estensioni che questo

64 COME COMPORRE LA TABELLA VERA E PROPRIA 95

Opera BranoI promessi sposi Quel ramo del lago di Como che volge a mezzogiorno

tra due catene non interrotte di monti tutto a senie a golfi a seconda dello sporgere e del rientrare diquelli vien quasi a un tratto

Tabella 62 Tabella la cui colonna di destra egrave specificata con p80mm

pacchetto consente sono tali e tante che converrebbe richiamarlo costantementeper ogni documento da comporre Si rinvia alla documentazione di quel pacchettoper maggiori dettagli

Il descrittore p come giagrave detto permette di comporre il contenuto di unacella come un piccolo capoverso giustificato a pacchetto (da entrambi i lati)dato che le celle hanno una larghezza limitata e certamente minore di quelladellrsquointero testo talvolta egrave consigliabile specificare raggedright oppure menofrequentemente raggedleft Ci si ricordi che il comando serve sia perandare a capo in un capoverso sia per terminare la riga di una tabella Bisognaquindi stare attenti quando si usa il descrittore p per quale scopo si usa ilcomando se serve per andare a capo dentro il capoverso si evita ogni fastidiose si usa al suo posto newline che non consente opzioni ma che certamentenon egrave ambiguo Si osservi infine nella tabella 62 lrsquoallineamento dei contenutidelle celle quando si usi il descrittore p

642 Il raggruppamento delle celleLe tabelle possono avere alcune celle adiacenti raggruppate a formare unrsquounicacella LATEX di per seacute consente di raggruppare le celle solo orizzontalmentemediante il pacchetto di estensione multirow egrave possibile raggrupparle ancheverticalmente ma il pacchetto egrave per cosigrave dire ancora in evoluzione per cuibisogna supplire a certe piccole manchevolezze con un porsquo di tentativi e dicorrezioni successive In generale perograve una tabella ha un aspetto piugrave professionalese non contiene celle raggruppate verticalmente

Si usa il comando multicolumn con la sintassi seguente per raggrupparealcune celle orizzontalmente

multicolumn〈numero〉〈descrittore〉〈contenuto〉

Il 〈numero〉 specifica quante celle bisogna raggruppare il 〈descrittore〉 contiene icodici di allineamento e di separazione necessari per descrivere lrsquounica grandecella frutto del raggruppamento il 〈contenuto〉 egrave il testo contenuto nellrsquounicagrande cella

Bisogna fare attenzione ad un dettaglio i separatori di colonna da inserirenel 〈descrittore〉 riguardano solo il lato destro dellrsquounica cella a meno che lacella non sia la prima della serie di celle in una riga in questo unico caso bisognaesplicitare anche il descrittore da inserire nel lato sinistro della cella

Per esempio se si avesse una tabella in cui il campo dei descrittori fosse ilseguente

begintabular|6c|

96 CAPITOLO 6 LATEX TABELLE

e si volessero raggruppare le celle 3 4 e 5 in unrsquounica grande cella presente inuna sola riga (per esempio la riga di intestazione) bisognerebbe specificare nellaposizione della cella 3

multicolumn3c|Intestazione 3

mentre se si volessero raggruppare le celle 1 e 2 sarebbe necessario specificare

multicolumn2|c|Intestazione 2

Per cui la prima riga della tabella verosimilmente sarebbe descritta dal seguentecodice

multicolum2|c|Intestazione 2ampmulticolum3c|Intestazione 3ampIntestazione 1

Nei precedenti esempi si noti che il numero di celle da raggruppare egrave formatoda una sola cifra quindi non ha bisogno di essere racchiuso fra parentesi graffequesta egrave una regola generale quando un argomento obbligatorio egrave formato daun solo oggetto (token nel gergo di TEX) non ha bisogno delle parentesi graffele quali invece sono necessarie ogni volta che lrsquoargomento egrave costituito da diversitoken ovviamente non egrave vietato usare le graffe anche quando lrsquoargomento egravecostituito da un solo token ma omettendole si scrive un porsquo di meno e non sicorre il rischio di dimenticare la graffa chiusa

643 I separatori verticaliPer separare verticalmente le righe di celle generalmente non serve nulla le tabellesono piugrave professionali se non contengono filetti o se ne contengono pochissimi

In ogni caso LATEX consente di separare le celle con dei filetti o degli spaziaggiuntivi

il comando serve per terminare una riga di celle perograve esso consente anchedi specificare uno spazio verticale da aggiungere alla normale spaziaturasi scrive allora per esempio [15ex] per terminare la riga e aggiungereuno spazio ulteriore di 15 ex fra il fondo della riga corrente e lrsquoinizio dellariga seguente Si faccia attenzione che allrsquoinizio della prima cella di ogniriga di qualunque tabella egrave inserito un oggetto invisibile che si chiamastrut (pilastrino in italiano) esso serve per garantire una altezza e unaprofonditagrave minima ad ogni riga in modo che le righe sembrino distanziateuniformemente indipendentemente dai loro ascendenti e discendenti secome argomento facoltativo di si specifica uno spazio troppo piccoloquesto potrebbe risultare assorbito dalla profonditagrave dello strut della rigacorrente

hline serve per tracciare un filetto orizzontale attraverso tutta la tabella duecomandi hline di seguito lrsquouno allrsquoaltro producono due filetti distanziatidi un paio di punti tipografici che rendono maggiormente evidente laseparazione verticale Il comando hline deve essere specificato o primadella prima riga di celle o dopo un comando

cline serve per tracciare un filetto orizzontale sotto alcune colonne adiacentiche devono venire specificate mediante la sintassi

64 COME COMPORRE LA TABELLA VERA E PROPRIA 97

cline〈colonna iniziale〉-〈colonna finale〉

Si noti che si possono ripetere due comandi cline di seguito specificandole stesse colonne iniziale e finale ma non si ottiene un filetto doppio percheacute idue filetti si sovrappongono si possono invece inserire due specificazioni concolonne diverse per mettere due filetti di seguito uno allrsquoaltro in orizzontale

Esercizio 62 Si predisponga una tabella a piugrave colonne e si inseriscano contenutiqualsiasi nelle celle ma si specifichino tutti e tre i tipi di separatori verticalidescritti in questo paragrafo osservando bene che cosa succede quando lospazio che costituisce lrsquoargomento facoltativo del comando egrave di pochipunti Ripetere la spaziatura con diversi valori di quello spazio

644 Come rendere le tabelle un poco piugrave aperteNonostante la presenza di uno strut nella prima cella di ogni riga talvoltasembra che questo strut non sia abbastanza grande cosiccheacute i filetti orizzontalisembrano toccare le lettere maiuscole o i discendenti delle minuscole

Si puograve usare il parametro arraystretch con la seguente sintassi

renewcommandarraystretch〈fattore〉

Il 〈fattore〉 egrave un numero decimale generalmente maggiore di uno che rappresentail fattore di scala con cui si vuol ingrandire verticalmente ogni spazio prodottodagli strut e quindi con il quale si vuole ingrandire lrsquointera tabella Per esempiosi puograve dichiarare

begintablerenewcommandarraystretch11begintabularendtabularendtable

In questo modo il valore unitario di default del parametro arraystretch vieneaumentato del 10 e tutte le righe della tabella risultano del 10 piugrave alte epiugrave profonde Il fatto di cambiare il valore di arraystretch allrsquointerno di unambiente table in questo caso confina la modifica allrsquointerno dellrsquoambiente

Attenzione cosigrave facendo si ingrandiscono verticalmente tutte le righe dellatabella anche quelle che non sono precedute o seguite da filetti orizzontali

Puograve darsi che questo sia quello che si desidera specialmente se si sta usandoun fattore di scala non tanto superiore a uno Tuttavia potrebbe essere unascelta non conveniente Quando si vogliono ingrandire solo le celle precedute eoseguite da filetti orizzontali non resta che inserire direttamente un altro strutnelle righe che interessano Il pilastrino che il compositore puograve usare si ottienecon il comando rule e la sua sintassi egrave la seguente

rule[〈innalzamento〉]〈base〉〈altezza〉

Questo rule definisce un riga verticale larga 〈base〉 e alta 〈altezza〉 innalzatarispetto alla linea di base del testo di 〈innalzamento〉 Per rendere questa riga

98 CAPITOLO 6 LATEX TABELLE

invisibile basta specificarne la base nulla per lrsquoaltezza si specifica quello chesi vuole e si puograve innalzare o abbassare (innalzamento negativo) questa riga diquanto si vuole

Personalmente io uso queste definizioni

begintabledefUrule0pt3exdefDrule[-05ex]0pt0ptdefVUDbegintabularendtabularcaptionlabelendtable

e inserisco U nella prima cella di una riga preceduta da un filetto inserisco Dnella prima cella di una riga seguita da un filetto inserisco V nella prima celladi una riga preceduta e seguita da un filetto

Il comando def appartiene al linguaggio base di TEX e sarebbe meglio nonusarlo mai quando si scrive con LATEX Infatti questo comando definisce unanuova istruzione e per sbaglio si potrebbe ridefinire una istruzione interna diLATEX percheacute non viene eseguita nessuna verifica della liceitagrave di questa defini-zione Tuttavia in questo caso le tre istruzioni U D e V non corrispondono anessunrsquoaltra definizione interna a LATEX ma quello che piugrave conta la definizionemediante def rimane valida solo allrsquointerno dellrsquoambiente table per cui allrsquouscitadallrsquoambiente dopo endtable quei comandi riprendono il significato cheavevano prima di entrare nellrsquoambiente table

Cosigrave egrave stato fatto in tutte le tabelle esposte finora e cosigrave saragrave fatto in tutte leprossime tabelle

Esiste la possibilitagrave di usare il pacchetto booktabs questo contiene le defini-zioni per i tre filetti toprule midrule e bottomrule da mettere rispettiva-mente sopra la riga di intestazione sotto la riga di intestazione e sotto lrsquoultimariga della tabella Il primo e lrsquoultimo sono giagrave leggermente piugrave spessi del filettointermedio Ovviamente tutti i parametri stilistici sono configurabili Questifiletti assicurano uno spazio adeguato in modo che risultino sufficientementedistanziati dal contenuto delle celle adiacenti Sono incompatibili con i filettiverticali quindi lsquoobbliganorsquo a comporre le tabelle in modo professionale perciogravequesto pacchetto viene sempre fortemente consigliato Perograve bisogna ricordareche questi filetti danno dei piccoli problemi se si decide di mettere uno sfondocolorato alla tabella a singole celle o a unrsquointera colonna o unrsquointera riga

Per evitare questi piccoli problemi bisogna ricorrere ai pilastrini esposti sopraanche se questo richiede una maggiore attenzione da parte del compositoretastierista per non dimenticare nessun elemento compositivo da introdurre amano

65 Le tabelle di larghezza specificataLa tabella generata con lrsquoambiente asteriscato prevede che sia di larghezzaspecificata proprio mediante lrsquoargomento 〈larghezza〉

65 LE TABELLE DI LARGHEZZA SPECIFICATA 99

Per ottenere quella larghezza egrave necessario che le singole celle possano allargarsiquanto basta percheacute la tabella complessiva raggiunga il valore desiderato

A questo scopo LATEX dispone di una specificazione di una lunghezza lsquoelasticarsquodetta anche lsquogommarsquo che internamente egrave caratterizzata da tre valori la lunghezzanaturale lrsquoallungamento e lrsquoaccorciamento se lrsquoallungamento e lrsquoaccorciamentocorrispondono a valori nulli essa non si distingue da una lunghezza rigida che egraveun altro tipo di lunghezza usato internamente da LATEX

Se invece lrsquoallungamento e o lrsquoaccorciamento corrispondono a valori lsquoinfinitirsquosi egrave in presenza di una lsquogomma infinitamente allungabile o accorciabilersquo

Nel caso delle tabelle si predispone allora una -espressione che al suo internooltre agli altri eventuali elementi contenga anche la seguente espressione

extracolsepfill

Questa espressione inserisce una lunghezza infinitamente allungabile in tutti isuccessivi separatori di colonna e questa gomma appare a destra degli altriseparatori giagrave presenti ad esempio

begintabulartextwidthextracolsepfillvlinehspacetabcolsepl|3c|

permette di definire una tabella con quattro colonne delle quali la prima abbiatutte le celle con il loro contenuto allineato a sinistra e le altre tre abbiano lecelle con il loro contenuto centrato le quattro celle di ogni riga quindi le quattrocolonne sono contornate da filetti verticali la prima cella inclusi i separatori hale sue dimensioni naturali mentre le celle successive hanno lo spazio a sinistra diogni contenuto allargato di quanto basta per far sigrave che lrsquointera tabella sia largaquanto specificato

Purtroppo questo modo di procedere va abbastanza bene per tabelle chequasi raggiungono naturalmente la larghezza desiderata cosiccheacute lo spazio cheegrave necessario aggiungere sia otticamente trascurabile rispetto alla spaziaturanormale Invece se le celle hanno un contenuto abbastanza corto e la tabelladeve essere allargata molto il risultato egrave tuttrsquoaltro che ottimale Si vedano letabelle 63 e 64 per rendersi conto di quanto affermato

Famiglia

Rossi Mario Maria Elisabetta FilippoMastrodomenico Giovanni Battista Marta Elena BeatricePapadopoulos Filolaos Penelopi Irini

Tabella 63 Tabella di larghezza pari alla giustezza del testo ottenuta allargandopoco le singole celle

Ci sono diverse soluzioni a questo problema una consiste nel richiamare ilpacchetto di estensione tabularx alla cui documentazione si rinvia il lettore

Unrsquoaltra soluzione consiste nel definire un nuovo ambiente che calcoli lalarghezza naturale delle singole celle e distribuisca omogeneamente lo spaziomancante a sinistra e a destra di ogni separatore di colonna in modo che lospazio bianco necessario per ottenere il risultato desiderato sia distribuito piugraveuniformemente Nella tabella 64 si osserverebbe allora che le colonne 2 3 e 4

100 CAPITOLO 6 LATEX TABELLE

Cognome Etagrave Peso Altezza

Rossi 50 85 182Mastrodomenico 65 72 175Papadopoulos 47 75 160

Tabella 64 Tabella di larghezza pari alla giustezza del testo ottenuta allargandotroppo le singole celle

avrebbero davvero il loro materiale centrato ma anche la colonna 1 avrebbemargini un poco piugrave ampi cosigrave da ridurre lo spazio bianco nelle colonne di destrasi osservi il risultato nella tabella 65

Cognome Etagrave Peso Altezza

Rossi 50 85 182Mastrodomenico 65 72 175Papadopoulos 47 75 160

Tabella 65 Tabella di larghezza pari alla giustezza del testo ottenuta allargandolo spazio fra le singole celle

In ogni caso ci si ricordi che la presenza dei filetti verticali peggiora solamentelrsquoeffetto visivo se bisogna davvero forzare un poco la composizione per cuiegrave quanto mai opportuno cercare di evitare lrsquoinserimento dei filetti in primisquelli verticali possibilmente anche quelli orizzontali accettando solo quelli chedelimitano la tabella e il filetto sotto alla prima riga che contiene le intestazionidelle colonne Questa egrave la raccomandazione stilistica contenuta in moltissimimanuali di tipografia egrave giusto che LATEX consenta di inserire tutti i filetti chesi vogliono ma sta al compositore scegliere se metterli quali mettere e dovemetterli

Confesso ho barato un pochino dicendo che basta usare un ambiente checalcoli la larghezza naturale delle singole celle e distribuisca omogeneamente lospazio mancante a sinistra e a destra di ogni separatore di colonna Egrave vero altroveho generato e usato un simile ambiente (pacchetto widetable) ma nellrsquoesempiodella tabella 65 ho provato alcune volte modificando ad occhio il valore dellospazio di separazione intercolonna mi sono bastati quattro o cinque tentativi perarrivare a definire che detto spazio tabcolsep deve valere 89mm in questomodo senza ricorrere a nessuna acrobazia di programmazione in linguaggio TEXla tabella 65 egrave stata composta con i comandi

begintable[ht]defVrule[-1ex]0pt35exdefSrule0pt35exsetlengthtabcolsep89mm lt---- spazio intercolonnabegintabular|l|3c|hlineCognomeV amp Etagrave ampPeso amp Altezza hlineRossiS amp 50 amp 85 amp 182

66 PROBLEMI COMPOSITIVI DELLE TABELLE 101

endtabularendtable

Si noti che non si egrave usato lrsquoambiente tabular ma il semplice ambiente tabular la larghezza egrave stata ottenuta modificando lo spazio intercolonna fincheacute lrsquoocchioha confermato che la tabella era larga quanto la giustezza

66 Problemi compositivi delle tabelleLe tabelle sono difficili da comporre non tanto percheacute i comandi necessari sianocomplessi quanto percheacute esse devono venire progettate con anticipo non devonoessere composte sperando che vada tutto bene

Ma anche con una buona impostazione il contenuto delle celle richiedeaggiustamenti che non possono essere previsti in automatico dal programma madevono essere valutati con attenzione dal compositore

Ecco quindi che nei prossimi paragrafi si daranno indicazioni per rimediaread alcuni problemi che talvolta si presentano questi suggerimenti perograve servanoanche come stimolo per trovare autonomamente le soluzioni piugrave consone ad altriproblemi specifici che potrebbero manifestarsi

661 Tabelle troppo larghePuograve darsi che una tabella sia cosigrave larga da fuoriuscire dalla giustezza ma in questocaso si puograve rimediare in diversi modi a seconda che lrsquoeccesso di larghezza rispettoalla giustezza sia di pochi punti di pochi millimetri o invece sia abbastanzaconsistente

Nei primi due casi si possono mettere due -espressioni lsquovuotersquo come deli-mitatori a sinistra della prima cella e a destra dellrsquoultima cella cosigrave facendo sieliminano le sporgenze dei filetti (se ci sono) fuori della giustezza della tabella

Se ciograve non bastasse si potrebbe ancora ridurre lo spazio fra le colonne questospazio egrave dato da tabcolsep che di default vale 6 pt Si noti questo spazio egravequello che viene messo a sinistra e rispettivamente a destra di ogni separatoreverticale quindi i contenuti delle celle sono separati dal doppio vale a dire da12 pt Non si perde molto nella composizione della tabella se si imposta il valoredi tabcolsep ad un valore di 3 o 4 pt a seconda del numero delle colonne sipossono recuperare diversi millimetri di larghezza

Unrsquoaltra soluzione puograve consistere nel ridurre il corpo dei font con cui egravecomposta la tabella passando a small o a footnotesize spesso si risolvonoproblemi importanti Basta procedere cosigrave

begintablesmall oppure footnotesizebegintabularendtabularcaptionlabeltabendtable

102 CAPITOLO 6 LATEX TABELLE

Se il problema non egrave molto grave sarebbe meglio evitare di scendere al corpocorrispondente a footnotesize

Simile a questa soluzione esiste la possibilitagrave di ricorrere al pacchetto graphi-cx che fornisce il comando resizebox questa soluzione egrave piugrave flessibile percheacuteconsente di scegliere il fattore di scala praticamente con continuitagrave Il suo unicodifetto egrave che si puograve usare questa soluzione solo quando il file finale deve esserein formato PostScript oppure PDF percheacute solo questi formati sono capaci discalare con fattori di scala qualunque gli oggetti che contengono Il file DVIinvece non egrave in grado di scalare gli oggetti che contiene

Resta il terzo caso dove la larghezza della tabella nonostante le cure descrittenei capoversi precedenti continua ad eccedere la giustezza del testo se si tratta diuna decina di millimetri al massimo secondo il giudizio estetico del compositorela si puograve collocare centrata lasciandola sporgere metagrave a sinistra e metagrave a destraLrsquooperazione egrave molto semplice percheacute basta racchiudere tutta la tabella dentrouna scatola di larghezza specificata il comando makebox che esegue questaoperazione agisce secondo la seguente sintassi

makebox[〈larghezza〉][〈collocazione〉]〈testo〉

dove 〈larghezza〉 rappresenta la larghezza vera o apparente della scatola cosigravecreata la 〈collocazione〉 specifica se il 〈testo〉 va collocato al centro oppureaccostato a sinistra o a destra dentro la scatola Il 〈testo〉 puograve essere effettivamentedel testo comune ma puograve anche essere una tabella o qualunque altro oggetto giagravecomposto e trattato come un solo oggetto anche una figura o un diagramma puograveessere usato come 〈testo〉 La 〈larghezza〉 egrave una larghezza vera se il 〈testo〉 ha unalarghezza nominale inferiore a quella specificata mentre essa egrave una larghezzaapparente nel caso opposto in altre parole se il 〈testo〉 egrave piugrave largo di quantospecificato lo si fa apparire largo esattamente come 〈larghezza〉

Per centrare una tabella un pochino piugrave larga della giustezza corrente bastadunque inserirla dentro una scatola larga quanto linewidth specificandone laposizione al centro della scatola (cioegrave non specificando nessuna 〈collocazione〉visto che la posizione centrata egrave quella di default) Un costrutto del tipo

begintablemakebox[linewidth] Inizio scatola

begintabularendtabular

Fine scatolacaptionlabeltabendtable

risolve il problemaTuttavia puograve ancora succedere che la tabella non possa essere lsquoaggiustatarsquo con

nessuno dei trucchi sopra esposti Allora puograve succedere che lrsquoeccesso di larghezzarispetto alla giustezza sia ancora dominabile con una rotazione di 90deg in sensoantiorario Attenzione la rotazione deve sempre avvenire in senso antiorarioindipendentemente dal fatto che la tabella venga poi fatta flottare in un rectoinvece che in un verso Questo implica che per leggere la tabella il documentodebba venire ruotato sempre in verso orario di 90deg

67 TABELLE TROPPO LUNGHE 103

Per eseguire questa rotazione tenendo conto che la rotazione coinvolge anchela didascalia egrave opportuno usare il pacchetto di estensione rotating e al suoambiente sidewaystable alla cui documentazione si rinvia per reperire le necessarieinformazioni drsquouso

67 Tabelle troppo lungheCon lsquotabella lungarsquo si intende una tabella che non stia in una pagina In questocaso ci sono diverse soluzioni la prima delle quali egrave domandarsi se la tabellasia stata concepita bene potrebbe darsi che scambiando le righe con le colonnela tabella diventi piugrave larga e meno lunga vale quindi la pena di ripensare allapossibilitagrave di sistemare la tabella con questo semplice artificio

Se la tabella dovesse risultare troppo larga ma tale da poter stare in unasola pagina si possono adottare i rimedi esposti nel paragrafo precedente

Ma se la tabella egrave veramente lunga bisogna ricorrere a pacchetti di estensionei piugrave noti dei quali sono longtable e supertabular alla cui documentazione sirinvia visto che questo tipo di composizione richiede un approccio abbastanzadelicato

Concettualmente il problema egrave semplice si tratta di spezzare una lungatabella in monconi tali da poter essere sistemati ciascuno in una pagina solaper ovvie ragioni estetiche le colonne devono mantenersi della stessa larghezzain tutti i monconi ma bisogna anche ripetere le intestazioni delle colonne pernon dover sfogliare pagine indietro per sapere se nella terza colonna compare ladensitagrave relativa oppure la massa volumica delle sostanze elencate nella tabella

Egrave opportuno anche che in ogni moncone della tabella che prosegue nellapagina successiva sia inserita una specie di intestazione di piegrave di pagina chespecifica che la tabella continua analogamente in ogni moncone della tabellaeccetto il primo conviene mettere una intestazione dalla quale si capisca che siegrave nel cuore della tabella non allrsquoinizio neacute alla fine questo puograve ottenersi ancheripetendo la didascalia alla fine della quale sia scritto lsquocontinuarsquo possibilmentefra parentesi e in corsivo cosigrave da separare bene questa informazione dal restodella didascalia Ovviamente il contatore della tabella non deve aumentare diuna unitagrave ad ogni moncone

Quando si sono ben afferrati questi concetti per altro abbastanza sempliciallora diventa abbastanza facile comprendere la documentazione dei due pacchettisopra indicati per potersi regolare al meglio e comporre una tabella professionale

Un suggerimento non guasta Conviene inserire il codice della lunga tabellain un file TEX a parte solo il codice senza documentclass e senza lrsquoambientedocument Conviene fare uso del pacchetto afterpage e servirsi del comandoafterpage Infatti bencheacute una lunga tabella non sia flottabile egrave opportuno cheil primo moncone della tabella cominci allrsquoinizio di una nuova pagina medianteafterpage pertanto diventa quasi spontaneo scegliere una posizione adeguataper dare il comando di leggere e di assorbire usando il comando input il fileche contiene il codice per la compilazione della tabella questa automaticamentecomincia allrsquoinizio della prima pagina disponibile finisce qualche pagina dopo eil testo ricomincia subito dopo Come si capisce bene egrave estremamente importantescegliere il punto giusto per lrsquoinserimento della lunga tabella non necessariamentequesto punto corrisponde alla fine di un capitolo dipende dal genere di testoche si sta componendo Se il codice per la lunga tabella egrave contenuto nel file

104 CAPITOLO 6 LATEX TABELLE

tabellalungatex memorizzato nella cartella file-inclusi allora quantodetto sopra corrisponde semplicemente a dare il comando

afterpageinputfile-inclusitabellalunga

Nellrsquoappendice B si egrave fatto appunto cosigraveSi noti ancora che con le tabelle che si sviluppano su piugrave pagine egrave necessario

mettere la didascalia prima della tabella per questo a differenza dellrsquouso ameri-cano rispecchiato in questo libro composto con la classe book alla quale nonsi sono apportate modifiche sarebbe opportuno mettere sempre la didascaliaprima di qualsiasi tabella non solo prima di quelle lunghe Per questo scopo alfine di non dover aggiustare le cose a mano per ogni tabella che si compone egravepossibile avvalersi del pacchetto topcapt che mette a disposizione del composi-tore il comando topcaption da usare esattamente come caption esso usa lespaziature giuste per mettere la didascalia sopra invece che sotto un qualunqueoggetto flottante si useragrave quindi topcaption per le didascalie delle tabelle ecaption per le didascalie delle figure

Nel prossimo paragrafo saragrave mostrato un esempio drsquouso delle potenzialitagrave deipacchetti di estensione per le tabelle descrivendo quanto si egrave fatto per comporrele lunghe tabelle dellrsquoappendice B

68 Pacchetti di estensione per le tabelleOltre ai giagrave citati pacchetti tabularx longtable e supertabular conviene ri-prendere il discorso del pacchetto array appena menzionato in relazione allrsquoinco-lonnamento basato sul separatore decimale Per dirla tutta questo lavoro vieneeseguito da una piccola estensione del pacchetto array che ne sfrutta appienole potenzialitagrave si tratta del pacchetto dcolumn che egrave in dotazione standard diogni distribuzione del sistema TEX

Questo pacchetto definisce una colonna di nuovo tipo e con il codice D maaccetta diverse personalizzazioni che egrave meglio esaminare nella documentazione

Qui si vuole richiamare lrsquoattenzione del lettore sul fatto che il pacchetto arraymette a disposizione del compositore due nuovi descrittori di colonna simili ap si tratta di m e b Agiscono nello stesso modo nel senso chetutti e tre i descrittori richiedono una larghezza di colonna al posto dei puntinila differenza egrave che il contenuto della scatola di testo prodotto con p ha lasua prima riga allineata con la prima o unica riga delle celle adiacenti b hainvece la sua ultima riga allineata con le celle adiacenti infine m egrave centratocon la sua riga mediana rispetto alle celle adiacenti

Esercizio 63 Che cosa succederebbe alla tabella 62 se si usasse il descrittorem80mm oppure il descrittore b80mm al posto del descrittore p80mm

Questi tre descrittori sono utilissimi in particolare lo scrivente ha notatoche secondo i suoi gusti e il tipo di tabelle che compone le celle con il blocco ditesto centrato verticalmente sono piugrave gradevoli rispetto a quando sono allineatesulla base della prima o dellrsquoultima riga Ripeto si tratta di una questione digusti e principalmente del tipo di tabelle che si desidera comporre in ogni casoegrave opportuno poter disporre di una scelta

Egrave molto utile che il pacchetto array definisca il comando arraybackslash selrsquoultima colonna ha il descrittore che esplicitamente o implicitamente contiene una

68 PACCHETTI DI ESTENSIONE PER LE TABELLE 105

delle dichiarazioni centering raggedright oppure raggedleft lrsquoambientedi tabulazione non sa se un comando serva per andare a capo dentro la cella o seserva per terminare la composizione di una riga di celle questo egrave particolarmenteimportante se si fa uso delle dichiarazioni di colonna introdotte con la sintassidescritta qui di seguito Ecco allora che la dichiarazione arraybackslashintrodotta per esempio dopo centering permette di stabilire che il prossimocomando indica la terminazione della composizione della riga di celle

Il pacchetto array consente anche di comporre tabelle miste in cui alcunecolonne sono testuali ed altre puramente numeriche anzi la caratteristica diarray egrave quella di inserire una dichiarazione allrsquoinizio di tutte le celle della stessacolonna e di porre una corrispondente dichiarazione alla fine di ciascuna di questecelle

I descrittori delle colonne possono diventare particolarmente complessi mase si fa attenzione a descrivere con ordine ciascuna colonna la cosa non egrave affattocomplicata

I nuovi lsquocomandirsquo per inserire queste dichiarazioni iniziali e finali in tutte lecelle di una stessa colonna sono gt e lt Essi seguono la sintassi seguente

gt〈dichiarazioni iniziali〉〈descrittore di colonna〉lt〈dichiarazioni finali〉

Val piugrave un esempio per descriverne lrsquoazione che non tante parole1 predispo-niamo una piccola tabella con le colonne allineate a sinistra al centro e a destrama dove la prima colonna deve avere tutti gli elementi in grassetto la secondadeve contenere una descrizione in corsivo la terza deve contenere un numeroche rappresenta un prezzo e quindi deve essere presente lrsquounitagrave monetaria latabella 66 egrave stata composta con i seguenti comandi

begintablecenteringbegintabulargtbfserieslgtitshapecrltenspacetexteuromulticolumn3ctextsfbfseries PrezziariohlinePantaloni amp alla zuava amp 3500 Pantaloni amp corti amp 1250 Camicie amp a scacchi amp 2275 Camicie amp botton down amp 3120 Calze amp di lana amp 833 Calze amp di cotone amp 500 Calze amp collant amp 1570endtabularcaptionlabeltabarraypackendtable

e si vede quanto sia conveniente lrsquouso dei descrittori iniziali e di quelli finali perla composizione di colonne omogenee

Ma una delle cose piugrave utili del pacchetto array egrave costituito dalla possibilitagravedi definire nuovi descrittori di colonna che possono ulteriormente semplificare lacomposizione delle tabelle

Infatti il pacchetto array mette a disposizione il comando newcolumntypecon la seguente sintassi

1In questo stesso paragrafo si vedragrave piugrave avanti come egrave stata composta la tabella B8 facendouso di questi descrittori speciali

106 CAPITOLO 6 LATEX TABELLE

PrezziarioPantaloni alla zuava 3500 euroPantaloni corti 1250 euroCamicie a scacchi 2275 euroCamicie botton down 3120 euroCalze di lana 833 euroCalze di cotone 500 euroCalze collant 1570 euro

Tabella 66 Tabella composta con le estensioni del pacchetto array

newcolumntype〈descrittore〉〈specifiche〉

Il 〈descrittore〉 egrave formato da una sola lettera minuscola o maiuscola che nonsia giagrave stata usata per i descrittori esistenti e le 〈specifiche〉 sono costituiteda un descrittore completo delle sue specificazioni particolari descritte median-te i comandi gt eo lt estendendo il concetto il 〈descrittore〉 puogravecorrispondere a delle 〈specifiche〉 che fanno uso di piugrave descrittori

Per esempio nella tabella 66 sono stati usati per le tre colonne i descrittori

gtbfserieslgtitshapecrltenspacetexteuro

Facendo uso del comando appena descritto si sarebbero potuti definire tre nuovidescrittori

newcolumntypeLgtbfserieslnewcolumntypeCgtitshapecnewcolumntypeErltenspacetexteuro

e poi si sarebbe potuto descrivere il comando di apertura della tabella con

begintabularLCE

Egrave chiaro che se questi tipi di colonne vengono usati spesso egrave conveniente eseguirele definizioni dei nuovi tipi di colonne una volta per tutte nel preambolo e poiusarli regolarmente nelle varie tabelle che si intendono comporre

Al limite se diverse tabelle usano la stessa sequenza di descrittori di colonnaquesta puograve essere inclusa in un unico descrittore per esempio

newcolumntypeTLCEbegintabularT

Anche nelle lunghe tabelle dellrsquoappendice B si egrave fatto nello stesso modoPer comoditagrave del lettore si riporta qui lrsquoinsieme delle dichiarazioni usate

per comporre la tabella B8 compreso lrsquoinizio e la fine della tabella ma senza ilcontenuto per ovvi motivi di brevitagrave

newcommandhstrutrule0pt3exhskip 0spnewcolumntypeBgtbfseriescnewcolumntypeMgt$displaystyleclt$newcolumntypeRgtraggedrightp35textwidthnewcolumntypeSgthstrutp45textwidthltvspace1ex

68 PACCHETTI DI ESTENSIONE PER LE TABELLE 107

newlengthstretchandshrinksetlengthstretchandshrink0pt plus 1fil minus 1filbegingroupsetlengthLTleft0ptsetlengthLTright0ptbeginlongtableextracolsepstretchandshrinkMRS

captionSimboli matematicilabeltmatnoalignsmallskiphrulemedskipmulticolumn1BSimboloampmulticolumn1BSignificatoampmulticolumn1BNotenoalignsmallskiphrulemedskip

endfirstheadmulticolumn3lemphContinua tabella thetablenoalignsmallskiphrulemedskipmulticolumn1BSimboloampmulticolumn1BSignificatoampmulticolumn1BNotenoalignsmallskiphrulemedskip

endheadnoalignsmallskiphrulesmallskipmulticolumn3remphcontinua

endfootnoalignsmallskiphrule

endlastfoot amp amp qui comincia la tabella vera e propriaendlongtable

Come si vede caption permette di comporre la didascalia della lunga tabellaal punto giusto prima della tabella endfirsthead termina la descrizione ne-cessaria per comporre le intestazioni delle colonne nel primo moncone endheadtermina la descrizione necessaria per comporre lrsquointestazione delle colonne neimonconi successivi al primo nello stesso tempo esso contiene anche lrsquoinformazio-ne che la tabella che compare nella pagina corrente egrave una continuazione di unatabella iniziata in pagine precedenti e il riferimento thetable serve appuntoper ripetere il numero della tabella senza incrementarne il contatore endfoottermina la descrizione necessaria per comporre la fine di ogni moncone trannelrsquoultimo endlastfoot termina la descrizione necessaria per comporre la finedellrsquoultimo moncone I comandi per queste composizioni vengono memorizzati edeseguiti ogni volta che ce ne sia la necessitagrave percheacute lrsquoambiente longtable provvededa solo a spezzare la tabella dove egrave necessario

Fra i comandi usati si notano alcuni comandi primitivi come noalignche serve per inserire qualcosa dentro ad una tabella senza tenere conto deidescrittori delle colonne hrule indica un filetto orizzontale che attraversa tuttala tabella medskip indica di inserire uno spazio verticale medio (circa mezzariga) smallskip indica di inserire uno spazio verticale piccolo (circa di unterzo di riga) emph serve per evidenziare una parola o una breve locuzione nelsenso che se essa va evidenziata allrsquointerno di un brano composto in tondo essoevidenzia il suo argomento componendolo in corsivo al contrario esso evidenzia

108 CAPITOLO 6 LATEX TABELLE

in tondo allrsquointerno di un brano in corsivo La prima colonna egrave composta inmodo matematico e in stile displaystyle la seconda colonna egrave compostain bandiera allineata a sinistra con una giustezza di 035 volte la giustezzadella pagina la terza colonna egrave composta con una giustezza pari a 045 volte lagiustezza della pagina ma solo dopo aver inserito un pilastrino definito comeuno strut alto 3 ex seguito da uno spazio nullo2 questo spazio nullo rappresentaun trucchetto per assicurare che quanto segue sia eventualmente divisibile insillabe (vedi appendice C) Il comando thetable serve per scrivere il contenutodel contatore table

Va ancora commentata lrsquoimpostazione delle due lunghezze LTleft a sinistradella tabella e LTright alla sua destra esse sono collocate allrsquoesterno dellatabella e aggiustandone i valori egrave possibile o lasciare alla tabella la sua lar-ghezza naturale (basta che lrsquouna eo lrsquoaltra rappresentino lunghezze elastiche diallungabilitagrave ldquoinfinitardquo) sia impostandone valori rigidi allargare o restringereun pochino la tabella purcheacute almeno una colonna sia allargabile o accorciabile apiacere egrave quello che si egrave fatto nelle due lunghe tabelle dellrsquoappendice B ed egrave perquesto che il primo separatore delle colonne egrave indicato con una -espressioneche contiene come argomento del comando extracolsep una larghezza elasticastretchandshrink di valore nominale nullo ma di allungabilitagrave e di accorciabi-litagrave infinite (di primo ordine) percheacute questo Percheacute in questo modo la tabellapuograve allargarsi o restringersi a piacere

Lrsquoambiente longtable scrive nel file ausiliario le larghezze delle colonne diogni moncone e richiede di comporre la tabella almeno tre volte per essere sicuriche tutti i monconi abbiano le colonne con le stesse larghezze siccome ognidocumento viene composto sempre diverse volte se non altro per controllarele versioni in bozza prima di comporre la versione finale questa necessitagrave dicomporre la tabella diverse volte in realtagrave egrave un prezzo piccolissimo da pagareper ottenere il risultato voluto Inoltre egrave bene sapere che longtable non iniziamai una pagina nuova se non alla fine di una riga della tabella quindi non puogravesuccedere che il testo di una cella risulti diviso fra due pagine consecutive

Nel paragrafo 1793 sono esposti alcuni altri argomenti particolari relativi alletabelle e alle figure inserite in alcune celle Vi si definiscono dei nuovi comandied egrave per questo che lrsquoargomento egrave rinviato a quel paragrafo

Nonostante il LATEX3 Team abbia giagrave predisposto i diversi pacchetti diestensione descritti sopra che consentono di migliorare la composizione delletabelle e delle matrici egrave opportuno segnalare una piccola lista che non esauriscetutte le possibilitagrave disponibili negli archivi internazionali ma che vale la pena ditenere presente in ogni caso

Innanzi tutto i pacchetti amsmath e soci prodotti dalla American Mathe-matical Society estendono complessivamente le varie maniere di incolonnareoggetti con riferimento specifico alle equazioni o a espressioni matematiche divario genere per questo pacchetto si rinvia la descrizione al capitolo 10

LrsquoInstitution of Electrical and Electronics Engineers ha prodotto le sue classiper comporre gli articoli da pubblicare nelle sue riviste ma ha messo a disposi-zione dei suoi autori anche un pacchetto separato IEEEtrantools che contienediversi comandi e ambienti speciali fra i quali gli ambienti per costruire tabelle ematrici in modo molto avanzato e non vincolato in modo cosigrave stretto alla sintassi

2Lrsquounitagrave di misura sp indica la frazione 1216 di un punto tipografico la notazione inbase 2 egrave chiarissima per un calcolatore mentre la notazione decimale 165536 non egrave altrettantosignificativa

68 PACCHETTI DI ESTENSIONE PER LE TABELLE 109

tradizionale di LATEX questa infatti serve per lsquomascherarersquo la complicazione dellacreazione della riga modello necessaria al comando primitivo halign che egrave quelloche effettivamente esegue poi la composizione delle tabelle e delle matrici La do-cumentazione si trova in doclatexIEEEtranIEEEtrantools_doctxtma egrave preferibile leggerne le specifiche e gli esempi drsquouso nel documento doclatexIEEEtranIEEEtran_HOWTOpdf

Un altro pacchetto molto interessante egrave quello scritto (insieme ad altri utilipacchetti) da Mark D Wooding mdwtab con il suo corollario mathenv chepermettono di fare piugrave o meno le stesse cose che si possono avere usando assiemei pacchetti amsmath e array Alcune cose possono portare a risultati miglioriche non con quei pacchetti conservando perograve una grande versatilitagrave e omogeneitagravedi comportamento in modo che con un unico ambiente per le tabelle si possonocomporre sia tabelle vere e proprie sia matrici matematiche sia incolonnamentidi colonne miste per le matrici vere e proprie sono disponibili ambienti appositiin un certo senso piugrave versatili di quelli ottimi messi a disposizione dal pacchettoamsmath

Allo stesso tempo si possono garantire spaziature migliori sopra e sottoi filetti in modo che diventa veramente facile produrre tabelle o matrici confiletti attorno a tutte o a molte caselle con le spaziature giuste e senza che ifiletti si interrompano o che i lsquopilastrinirsquo siano inefficaci Egrave vero che i filetti nondovrebbero essere usati per niente eccettuati quelli che delimitano superiormentee inferiormente una tabella e il filetto che stacca le celle di intestazione dallealtre tuttavia talvolta egrave necessario produrre tali tabelle magari per replicaretabelle altrui anche nello stile compositivo e i pacchetti di Wooding sono moltoversatili

Va notato comunque che per tabelle matrici e sistemi di equazioni Woodingridefinisce i comandi ordinari di LATEX cosigrave che in effetti non crsquoegrave da documentarsitroppo se non per imparare le infinite varianti e possibilitagrave offerte dai suoipacchetti

Capitolo 7

LATEX figure

71 Le figure e le immaginiCon LATEX egrave opportuno distinguere bene fra lsquofigurarsquo e lsquoimmaginersquo o lsquodisegnorsquo olsquograficorsquo la figura egrave un oggetto non verbale (fotografia disegno grafico schemadiagramma eccetera) dotato di un numero e di una didascalia che LATEX devesistemare in qualche posto dove ci sia abbastanza spazio visto che generalmentelrsquooggetto egrave di dimensioni relativamente grandi

Invece lrsquooggetto grafico che viene trattato da LATEX come una figura puograveavere le forme piugrave disparate e puograve avere anche le origini piugrave diverse Potrebbeessere prodotto con una macchina fotografica con un software da disegno con icomandi stessi di LATEX e dei suoi pacchetti di estensione potrebbe anche esserecostituito da codice di programmazione che verragrave tradotto in grafico dal driverche rende leggibile agli umani il documento

In questo capitolo si parleragrave solo dellrsquoambiente figure e dei modi di produrremateriale grafico con LATEX stesso accennando appena ai disegni eseguibili con ipacchetti di estensione

72 Lrsquoambiente figure

Lrsquoambiente figure egrave del tutto analogo allrsquoambiente table serve per rendereflottante un oggetto e per dargli una didascalia il cui primo termine egrave il nomelsquoFigurarsquo o lsquoFigurersquo o lsquoAbbildungrsquo o a seconda della lingua in uso seguitodal suo numero progressivo e dalla didascalia vera e propria composta comesempre da un titolo e da una spiegazione (facoltativa)

La sintassi egrave simile a quella dellrsquoambiente table

beginfigure[〈posizione〉] endfigure

e i parametri di 〈posizione〉 h t b p e sono gli stessi dellrsquoambiente tableFin qui la differenza rispetto allrsquoambiente table consiste solo nel fatto che

viene scritto nel titolino la parola lsquoFigurarsquo invece della parola lsquoTabellarsquo In realtagraveil contatore delle figure egrave diverso da quello delle tabelle cosigrave come la coda delle

111

112 CAPITOLO 7 LATEX FIGURE

figure o meglio la gestione della coda delle figure egrave diversa e distinta da quelladelle tabelle

Le figure possono venire separati dal testo che precedono o che seguonoda appositi filetti topfigrule botfigrule o dblfigrule descritti meglionellrsquoappendice G Normalmente questi filetti sono assenti ma possono essereresi visibili e contribuiscono non poco alla separazione del testo dalla didascaliaspecialmente per le figure collocate in testa alla pagina

721 Controllo dei grandi oggetti flottantiCi si ricordi solo che oggetti troppo grandi siano essi figure o tabelle possonobloccare il deflusso degli oggetti della stessa specie dalla rispettiva coda e questopotrebbe portare non solo allo lsquoscaricorsquo di tutti questi oggetti alla fine del capitoloo del documento ma potrebbe portare anche alla saturazione delle code e quindiad una situazione di stallo nella esecuzione della compilazione del documento

Un modo di evitare questo stallo egrave quello di usare il pacchetto esternoafterpage al quale si egrave giagrave fatto cenno nel capitolo precedente esso mette adisposizione del compositore il comando afterpage con la seguente sintassi

afterpage〈azione〉

dove 〈azione〉 rappresenta il comando da eseguire alla fine della pagina correntequando cioegrave la pagina corrente viene accodata al file di uscita In quel momen-to subito dopo lrsquoaccodamento LATEX puograve eseguire lrsquo〈azione〉 nella fattispecielrsquo〈azione〉 prescritta potrebbe essere clearpage che oltre a terminare la paginacorrente (giagrave terminata) serve anche per scaricare le code Se si specifica spesso

afterpageclearpage

si ottiene il risultato di non accumulare troppo materiale nelle code delle figuree delle tabelle magari durante la revisione delle bozze si puograve decidere se e comemodificare figure o tabelle per rendere il deflusso dalle code un poco piugrave ordinatoin modo che non sia necessario ricorrere ad afterpage

722 Modifica degli ambienti flottantiLa rete e gli archivi ctan contengono una moltitudine di pacchetti di estensioneche consentono di gestire o di creare nuovi oggetti flottanti

Il pacchetto principale per questo scopo egrave float la cui documentazione sitrova in doclatexfloatfloatpdf Esso tra le altre cose consente diusare un nuovo codice di posizionamento H che impone a LATEX di collocare lsquoquirsquolrsquooggetto lsquosenza fare tante storiersquo Sembra che la possibilitagrave di poter controllarela posizione precisa degli oggetti flottanti sia un desiderio fortissimo degli utentidi LATEX in realtagrave salvo pochi rari casi egrave meglio lasciare fare a LATEX il suolavoro anche se puograve sembrare un porsquo rigido nelle scelte che esso compie nelcollocare gli oggetti flottanti per capirne meglio il meccanismo conviene riferirsiallrsquoappendice G10 dove egrave descritto in dettaglio il meccanismo seguito da LATEXper trovare la posizione corretta degli oggetti flottanti Agendo sui parametriche controllano queste posizioni si puograve fare molto meglio che non specificando ilparametro H

73 LrsquoAMBIENTE PICTURE 113

Ma quel che piugrave conta egrave che il pacchetto float consente di modificare lecaratteristiche stilistiche degli ambienti flottanti e di definirne di nuovi peresempio per esporre brani di programmazione per descrivere degli algoritmiinsomma per collocare fuori testo qualunque cosa che possa essere reperita conun nome un numero e una didascalia Ognuno di questi ambienti flottanti puogravedare luogo a nuove listeindici di oggetti flottanti alla stessa maniera con laquale si stampano gli elenchi delle figure e delle tabelle rispettivamente con icomandi listoffigures e listoftables

Una ulteriore utile estensione egrave costituita dal pacchetto floatrow la cuidocumentazione si trova in doclatexfloatrowfloatrowpdf questopacchetto consente di fare tutte le cose che si possono fare con il pacchetto floate molte altre ancora al punto che se si usa floatrow non si deve caricare neacute floatneacute rotfloat (questrsquoultimo dedicato alla composizione di oggetti flottanti rotatidi 90deg) percheacute il codice di questi pacchetti egrave stato giagrave incorporato in floatrowQuestrsquoultimo consente anche di collocare diversi (piccoli) oggetti flottanti ognunocon la sua didascalia in fila uno accanto allrsquoaltro (da cui il nome del pacchetto)e consente persino di inserire un (piccolo) oggetto flottante insieme al testo chelo affianca o che lo circonda

Va detto che egrave giusto poter disporre delle possibilitagrave descritte sopra ma questistrumenti devono essere usati con molta cautela percheacute il risultato tecnicamenteperfetto potrebbe avere una estetica molto discutibile Per esempio se si voglionoinserire due figure ognuna con la sua didascalia in un unico ambiente flottanteegrave bene che esse abbiano le stesse dimensioni e che le didascalie abbiano lo stessonumero di righe se cosigrave non fosse lrsquoaspetto complessivo delle due figure affiancatesarebbe esteticamente assai dubbio

73 Lrsquoambiente picture

LATEX dispone di un meccanismo per produrre disegni al tratto semplici schemia blocchi semplici diagrammi e simili disegnini mediante lrsquoambiente picture

Lrsquoambiente picture sta a figure come tabular sta a table forse questo paragoneserve a comprendere meglio la differenza fra figura e immagine

Lrsquoambiente originale nato insieme al vecchio LATEX209 era molto limitatonella scelta delle linee che potevano essere tracciate percheacute venivano usati deisegmentini tratti da una polizza di font specialmente predisposti per questoscopo per quanto potessero essere ben disegnati questi segmentini erano pursempre in numero limitato

Dal 2003 esiste lrsquoestensione standard pict2e di LATEX che non egrave ancoradirettamente incorporata nel nucleo di LATEX ma che dovrebbe diventarlo in nonmolto tempo questa estensione egrave progettata per eliminare tutte le limitazionidel vecchio ambiente e per aggiungere prestazioni nuove ed egrave per questo che nelseguito ci riferiremo solo a quanto si puograve fare con questo pacchetto Si invocheragravequesta estensione mettendo nel preambolo il codice seguente

usepackage[〈opzioni〉]pict2e[20090601]

dove 〈opzioni〉 puograve essere una o piugrave fra le opzioni disponibili la maggior partedelle quali serve per definire il tipo di driver che verragrave usato per tradurre ilrisultato in una forma comprensibile agli umani Per lo piugrave servono solo in casiparticolarissimi e rari ma ci sono altre tre opzioni interessanti

114 CAPITOLO 7 LATEX FIGURE

original serve a impostare pict2e in modo che sia perfettamente equivalente alvecchio LATEX evidentemente serve solo per compatibilitagrave con il passato

ltxarrows serve per specificare a pict2e che le punte delle frecce devono esseredisegnate come vengono disegnate da LATEX in modo di compatibilitagrave conil passato siccome quelle frecce con punta triangolare leggermente concavesono molto gradevoli il compositore puograve decidere di usare tali punte difreccia anche se non introducono nessun elemento di novitagrave nello stile deldisegno

pstarrows serve invece a disegnare le punte delle frecce come un aereo stealthcioegrave come un aereo con le ali a V questa egrave la maniera di disegnare le frecceusata anche dal pacchetto PSTricks eccellente pacchetto di estensioneche si affida completamente al driver dvips per produrre un file di tipoPostScript

Se non si specificano opzioni il pacchetto cerca se esiste il file di configurazionepict2ecfg e sceglie le opzioni che quel file riesce a definire in base al programmaeseguito inoltre sceglie di default le frecce tradizionali di LATEX

A parte questi preliminari lrsquoambiente picture definisce uno spazio grafico incui lrsquounitagrave di misura egrave definita dal parametro unitlength che di default vale1 pt Specificando un valore diverso egrave facilissimo scalare il disegno in modo daingrandirlo o da rimpicciolirlo Come trucco personale io preferisco definire perogni ambiente figure prima di aprire lrsquoambiente picture una unitagrave di misuradipendente dal font in uso per esempio 1 ex cosigrave che cambiando il corpo delfont anche il disegno viene scalato proporzionalmente In altre circostanze scelgocome unitagrave di misura un centesimo della giustezza in questo modo sono sicuroche se non supero il valore di 100 unitagrave in orizzontale il disegno certamente nonesce fuori dei margini La sintassi da usare per impostare lrsquounitagrave di misura egrave

setlengthunitlength〈lunghezza〉

Dopo questa prima operazione lrsquoambiente picture con le sue dimensioni appa-renti e il suo offset noncheacute ogni distanza o lunghezza a cui si faccia riferimentoallrsquointerno di questo ambiente egrave indicata mediante un numero senza specificarele unitagrave di misura percheacute queste egrave sottinteso sono identificate da unitlength

La sintassi di apertura dellrsquoambiente picture egrave la seguente

beginpicture(〈base〉〈altezza〉)(〈x-offset〉〈y-offset〉) endpicture

Si notino le parentesi tonde per specificare i multipli dellrsquounitagrave di misura chesi intendono usare la prima coppia di parentesi tonde contiene le dimensionidella base e dellrsquoaltezza lsquoapparentirsquo del disegno apparenti significa che il disegnoverragrave inserito dentro un rettangolo di quelle dimensioni ma alcune parti deldisegno potrebbero fuoriuscire da quel rettangolo al punto che sarebbe possibile(e di fatto lo egrave) dichiarare entrambe le dimensioni pari a zero La seconda coppiadi parentesi egrave facoltativa se crsquoegrave essa indica la posizione dello spigolo inferioresinistro del suddetto rettangolo rispetto allrsquoorigine degli assi x e y questi sono gliassi rispetto ai quali vengono specificate le coordinate degli oggetti da collocarenel disegno

73 LrsquoAMBIENTE PICTURE 115

Ogni oggetto da collocare nel disegno viene collocato mediante il comandoput se lrsquooggetto deve essere collocato un certo numero di volte in posizioniregolarmente spaziate si puograve usare il comando multiput le sintassi sono leseguenti

put(〈x〉〈y〉)〈oggetto〉multiput(〈x-ini〉〈y-ini〉)(〈x-step〉〈y-step〉)〈numero〉〈oggetto〉

Le coordinate 〈x-ini〉 e 〈y-ini〉 sono le coordinate del primo punto le coor-dinate 〈x-step〉 e 〈y-step〉 sono gli incrementi da dare ad x e ad y ogni voltache si deve inserire una nuova istanza dellrsquooggetto il 〈numero〉 indica il numerototale di istanze dellrsquooggetto infine 〈oggetto〉 egrave lrsquooggetto grafico da collocare neldisegno

Gli oggetti collocabili sono linee vettori (frecce) cerchi dischi testi semplicio riquadrati con linee continue o tratteggiate i testi possono essere collocatiintelligentemente rispetto al rettangolo ideale che li contiene Possono poi esserecollocati degli lsquoovalirsquo cioegrave dei rettangoli con gli spigoli arrotondati dentro ai qualipuograve essere collocato del testo possono essere fatti semplici disegni tracciandodelle curve mediante lrsquouso di curve di Beacutezier di secondo o di terzo grado Lasintassi che descrive ognuno di questi oggetti egrave la seguente

line(〈x-pend〉〈y-pend〉)〈lunghezza〉vector(〈x-pend〉〈y-pend〉)〈lunghezza〉circle〈diametro〉circle〈diametro〉makebox(〈base〉〈altezza〉)[〈posizione〉]〈testo〉framebox(〈base〉〈altezza〉)[〈posizione〉]〈testo〉dashbox〈lung-trattino〉(〈base〉〈altezza〉)[〈posizione〉]〈testo〉oval[〈raggio〉](〈base〉〈altezza〉)[〈parte〉]

I nomi dei parametri dovrebbero essere abbastanza chiari ma vanno specificatealcune cose particolari

La lunghezza dei segmenti e dei vettori egrave la componente orizzontale cioegravela proiezione sullrsquoasse x del segmento o del vettore se questo egrave completamenteverticale allora e solo allora la lunghezza coincide con quella del segmento o delvettore

I coefficienti di pendenza dei segmenti e dei vettori rappresentano le proiezionilungo lrsquoasse x e y rispettivamente di un tratto di segmento o di vettore siccomequeste proiezioni non possono essere numeri arbitrariamente grandi e siccomedevono essere numeri interi il cui valore assoluto non superi 999 egrave evidente checonviene scegliere i valori piugrave piccoli conformi con queste limitazioni arrotondandoai valori interi piugrave vicini Per un vettore verticale che ha la punta della frecciain alto questi coefficienti formeranno la coppia (01) ma si potrebbe indicareanche (0999) con il medesimo risultato per ovvi motivi sarebbe meglio usarela prima scrittura Per i segmenti che non hanno una punta di freccia che neindichi la direzione questa va intesa come la direzione del segmento dal suoestremo collocato con put allrsquoaltro estremo in altre parole il comando putcolloca alla sua coordinata il primo punto del segmento da cui parte il segmentocon la pendenza specificata

Il comando circle specifica una circonferenza completa di cui si specificail 〈diametro〉 il suo punto di riferimento messo in posizione con put egrave il suo

116 CAPITOLO 7 LATEX FIGURE

centro Il comando circle specifica invece un disco completo non solo ilcontorno quindi disegna un cerchio lsquonerorsquo con il 〈diametro〉 specificato

I comandi makebox framebox e dashbox definiscono tre scatole la primasenza che ne venga disegnato il contorno la seconda con il contorno disegnato laterza con il contorno tratteggiato con trattini lunghi 〈lung-trattino〉 Il comandoput mette in posizione il loro punto di riferimento cioegrave lo spigolo inferioresinistro Allrsquointerno di questi rettangoli o scatole puograve essere posto del testo cheviene collocato rispetto ai bordi ideali disegnati o tratteggiati conformementeai parametri di 〈posizione〉 questi sono le solite lettere t b l r e c con ilrispettivo significato di lsquotoprsquo lsquobottomrsquo lsquoleftrsquo lsquorightrsquo e lsquocenterrsquo per ogni oggettosi possono specificare al massimo due parametri di posizione1 ricordando chelsquocenterrsquo egrave sempre il valore di default

Egrave particolarmente comodo il comando makebox con dimensioni di 〈base〉 e〈altezza〉 nulle percheacute il 〈testo〉 che vi viene inserito risulta collocato con precisio-ne rispetto allo spigolo inferiore sinistro ma senza spazio alcuno interposto nonha importanza che le dimensioni apparenti della scatola siano nulle egrave importanteche il testo sia collocato con un riferimento preciso indipendentemente dallapresenza di ascendenti o discendenti

Per il comando oval egrave possibile specificare il raggio minimo del quarto dicerchio che costituisce lo spigolo per altro le dimensioni di 〈base〉 e 〈altezza〉di questo speciale rettangolo a spigoli arrotondati si riferiscono al rettangolocompleto ma la specifica facoltativa di 〈parte〉 permette di scegliere quali angolimostrare o quale coppia di angoli adiacenti mostrare cosigrave che specificando raggiometagrave della base e metagrave dellrsquoaltezza uguali egrave possibile disegnare solo un quarto dicirconferenza oppure metagrave circonferenza al solito la 〈parte〉 egrave specificata con lelettere l t b e r (c non avrebbe senso) cosiccheacute t permette di disegnare solola metagrave di sopra tl solo il quarto in alto a sinistra

Nellrsquoambito dellrsquoambiente picture egrave possibile specificare due spessori predefinitiper le linee da tracciare thinlines e thicklines si puograve specificare un valoreassoluto di spessore (espresso con le unitagrave di misura) mediante

linethickness〈spessore assoluto〉

e questo comando modifica lo spessore sia delle linee rette e comunque inclinatesia delle linee curve siano esse archi di circonferenza oppure curve di Beacutezierquadratiche o cubiche

Infine i comandi qbezier e cbezier consentono di mettere in posizionedelle curve di secondo o di terzo grado rispettivamente dette spline di Beacuteziersenza bisogno di ricorrere ai comandi put o multiput La loro sintassi egrave laseguente

qbezier(〈x1〉〈y1〉)(〈x2〉〈y2〉)(〈x3〉〈y3〉)cbezier(〈x1〉〈y1〉)(〈x2〉〈y2〉)(〈x3〉〈y3〉)(〈x4〉〈y4〉)

Per la curva di secondo grado descritta da qbezier (x1 y1) rappresentanole coordinate del punto da cui la curva parte in direzione del punto aventele coordinate (x2 y2) invece (x3 y3) rappresentano le coordinate del punto diarrivo con la direzione che proviene da (x2 y2)

1Ovviamente non contrastanti Egrave ovvio che non si possono specificare simultaneamente t eb percheacute lo stesso oggetto non puograve essere collocato allo stesso tempo in testa e al piede dentrola scatola specificata

73 LrsquoAMBIENTE PICTURE 117

Per la curva di terzo grado descritta da cbezier questa parte da (x1 y1)in direzione (x2 y2) e arriva al punto (x4 y4) con la direzione proveniente da(x3 y3)

Scegliendo accuratamente i punti iniziali e finali noncheacute le direzioni delletangenti si possono facilmente disegnare semplici diagrammi come mostrato nellefigure 71 e 72 I punti guida delle curve di Beacutezier non compaiono percheacute cadonofuori dal rettangolo della figura

Va notato che nel 2009 il pacchetto pict2e egrave stato fortemente arricchito dinuove funzionalitagrave che non sono delle semplici aggiustatine agli stessi coman-di della versione tradizionale di LATEX ma sono delle estensioni decisamenteimportanti

Innanzi tutto egrave stata definita una nuova routine di divisione fra numeri frattiche permette di dividere numeri di qualsiasi grandezza (purcheacute inferiori in moduloa 16 384 sia dividendo sia divisore sia quoziente) per cui la restrizione sul fattoche inizialmente (nella versione di pict2e del 2004) i coefficienti di pendenza disegmenti e vettori dovessero essere rappresentati da numeri interi inferiori inmodulo a 1000 egrave stata rimossa ora si possono usare tranquillamente numerifratti e se per esempio si vuole una pendenza di 37 il cui coseno vale 079864 eil cui seno vale 060182 si possono usare direttamente questi due numeri senzadover ricorrere allrsquoartificio di moltiplicarli per 1000 e poi usare la sola parteintera arrotondata non cambia molto da un punto di vista pratico ma evita didover fare calcoli e arrotondamenti

Inoltre sono stati aggiunti altri comandi alcuni dei quali tracciano il lorodisegno quando siano messi come argomento di put e altri che sono assolutie cioegrave come per le curve di Beacutezier non hanno bisogno dellrsquointermediario delcomando put

Comandi da usare con putarc[〈〈angolo1〉〈angolo2〉〉]〈raggio〉arc[〈〈angolo1〉〈angolo2〉〉]〈raggio〉Comandi che non necessitano di putLine(〈x1〉〈y1〉)(〈x2〉〈y2〉)polyline(〈x1〉〈y1〉) (〈xn〉〈yn〉)polygon(〈x1〉〈y1〉) (〈xn〉〈yn〉)polygon(〈x1〉〈y1〉) (〈xn〉〈yn〉)

I comandi arc con o senza asterisco generano un arco con il centro nellacoordinata specificata dalle coordinate del comando put di raggio pari a〈raggio〉 che inizia nellrsquoangolo 〈angolo1 〉 e termina nellrsquoangolo 〈angolo2 〉 gliangoli sono specificati in gradi e con il segno positivo si indica la rotazione insenso antiorario La versione asteriscata riempie di colore (di default nero) ilsettore sotteso dallrsquoangolo

Il comando polyline genera una spezzata che collega in successione gli npunti (x1 y1) (x2 y2) (xn yn) il numero di punti egrave arbitrario percheacute ilcomando itera il proprio funzionamento fino ad esaurire la lista delle coordinate

Il comando polygon genera una spezzata chiusa nel senso che arrivato alpunto n-esimo aggiunge ancora un segmento fino il primo punto della lista Ilcomando polygon si comporta nello stesso modo ma riempie di colore (didefault nero) lrsquointerno del poligono

118 CAPITOLO 7 LATEX FIGURE

cm 1 2 3 4 5

carLLam

portndash

pict

ure

Figura 71 Il semplice disegno usatoda Leslie Lamport per descrivere lepotenzialitagrave dellrsquoambiente picture

CBeccari

ndashpi

ctur

e-20

090

601

Figura 72 Alcune curve di Beacutezierdi secondo e di terzo grado tracciatenellrsquoambiente picture

Inoltre sono stati definiti nuovi comandi per specificare come devono essereformati gli estremi dei segmenti (tagliati dritti o arrotondati) e come debbanoessere raccordati fra di loro i segmenti che formano le spezzate (se si prolunganofino ad incontrarsi i lati che delimitano i due segmenti da unire oppure se questoprolungamento viene troncato ad una certa distanza dal punto di intersezione deiloro assi) per i dettagli si veda la documentazione Si noti che con linee sottiliquesti dettagli sono virtualmente impercettibili ma con linee relativamente spesela differenza crsquoegrave e si vede Ricordiamoci che con pict2e si possono variare apiacere gli spessori di tutte le linee quindi non egrave difficile ottenere segmenti diun certo spessore semplicemente si cerchi di non dimenticare che una linea diuno spessore di circa mezzo millimetro (asymp 15 pt) egrave una linea nerissima si vedala figura 73

Usando i colori e i nuovi comandi di pict2e non egrave difficile disegnare ildiagramma della figura 73

Il codice per disegnare la figura 73 egrave il seguente

beginfigureunitlength=085cmcenteringbeginpicture(1111)(-1-1)linethickness035ptmultiput(00)(050)21line(01)10multiput(00)(005)21line(10)10linethickness05ptmultiput(00)(10)11line(01)10multiput(00)(01)11line(10)10linethickness07ptput(00)framebox(1010)put(0-05)makebox(00)[b]0put(1-05)makebox(00)[b]1put(2-05)makebox(00)[b]2put(3-05)makebox(00)[b]3put(4-05)makebox(00)[b]4put(5-05)makebox(00)[b]5put(6-05)makebox(00)[b]6put(7-05)makebox(00)[b]7put(8-05)makebox(00)[b]8

73 LrsquoAMBIENTE PICTURE 119

0 1 2 3 4 5 6 7 8 9 10

CBeccari

ndashpi

ctur

e-20

090

601

Tempo in secondi

0

10

20

30

40

50

60

70

80

90

100Sp

azio

inmetri

Figura 73 Moto uniformemente accelerato

put(9-05)makebox(00)[b]9put(10-05)makebox(00)[b]10put(5-1)makebox(00)[b]Tempo in secondiput(-0250)makebox(00)[r]0put(-0251)makebox(00)[r]10put(-0252)makebox(00)[r]20put(-0253)makebox(00)[r]30put(-0254)makebox(00)[r]40put(-0255)makebox(00)[r]50put(-0256)makebox(00)[r]60put(-0257)makebox(00)[r]70put(-0258)makebox(00)[r]80put(-0259)makebox(00)[r]90put(-02510)makebox(00)[r]100put(-095)rotatebox90makebox(00)[b]Spazio in metrilinethickness14ptcbezier(00)(450)(86)(1010)colorredput(00)circle02put(101)circle02put(204)circle02put(309)circle02put(416)circle02put(525)circle02

120 CAPITOLO 7 LATEX FIGURE

put(636)circle02put(749)circle02put(864)circle02put(981)circle02put(1010)circle02endpicturecaptionMoto uniformemente acceleratolabelfigmotoacceleratoendfigure

Vi sono molti aspetti un porsquo particolari come per esempio lrsquouso delle scatolemakebox con le dimensioni dichiarare nulle questo egrave un espediente che si usaspesso e serve per poter collocare il contenuto della scatola in una posizioneprecisa rispetto ai suoi bordi (invisibili) mantenendo nello stesso tempo uncompleto controllo sul punto di riferimento dellrsquooggetto da mettere in posizioneo anche da ruotare come la legenda della scala delle ordinate

Insomma lrsquoambiente picture egrave semplice ma con le estensioni introdotte nelpacchetto pict2e non egrave inferiore a molti altri software di disegno ma ha ilvantaggio che ogni informazione letterale o matematica che compare nel disegnoegrave eseguita con gli stessi caratteri del resto del testo Naturalmente non egrave lrsquounicomezzo per ottenere questo risultato come drsquoaltra parte si ricava da quantoesposto nel prossimo paragrafo

74 Il pacchetto pgfIl pacchetto di estensione pgf egrave ancora in evoluzione ma certamente le potenzialitagraveche ha oggi verranno sicuramente mantenute ad ampliate in futuro Lrsquoautore cercadi costruire una interfaccia utente che prescinda completamente dal particolarestrumento informatico che trasforma il codice in qualcosa comprensibile dagliumani Oggi si possono ottenere risultati ottimi con il pacchetto di estensionePSTricks ma il suo codice egrave interpretabile solo dal driver dvips per terminarecon un file in formato PDF egrave necessario procedere ad una ulteriore conversionedi formato2

Lrsquoacronimo PGF indica lsquoPortable Graphics Formatrsquo e vorrebbe poter un giornoessere altrettanto potente di PSTricks ma svincolato da questo o quel drivernel momento in cui il sorgente tex viene compilato il motore di compilazionedetermina con quale programma questa compilazione viene eseguita e sceglielrsquointerfaccia giusta in relazione a quella situazione se il file sorgente come succedespesso viene spedito per posta elettronica ad un conoscente che lavora con unapiattaforma diversa e una distribuzione del sistema TEX diversa o egrave abituato adusare un compilatore diverso ebbene la grafica deve risultare del tutto identicaa come riusciva allrsquoautore originale

Qui sarebbe fuori luogo scendere nei dettagli e si rinvia il lettore alla docu-mentazione del pacchetto pgf sappia comunque il lettore che questo pacchetto

2Questa limitazione che provoca una apparente incompatibilitagrave fra il compilatore LATEX eil compilatore pdfLATEX puograve essere aggirata attraverso il pacchetto pst-pdf alla cui documen-tazione si rinvia il lettore un altro pacchetto auto-pst-pdf offre una comoda interfaccia perlrsquouso di pst-pdf cosigrave che di fatto sia pure con un lieve rallentamento della compilazione ancheil compilatore pdfLATEX riesce a gestire file sorgente che fanno uso di PSTricks Il lettore inte-ressato puograve esplorare ctanmacroslatexcontribpst-pdf e ctanmacroslatexcontribauto-pst-pdf

74 IL PACCHETTO PGF 121

TTan

taundash

tikz

pict

ure

tikz[shading=ball]

foreach x cola in 0red1green2blue3yellow

foreach y colb in 0red1green2blue3yellow

shade[ball color=cola50colb] (xy) circle (04cm)

breakforeach

If this command is given inside a foreach command no further executions of the 〈commands〉 willoccur However the current execution of the 〈commands〉 is continued normally so it is probably bestto use this command only at the end of a foreach command

begintikzpicture

foreach x in 14

foreach y in 14

fill[red50] (xy) ellipse (3pt and 6pt)

ifnum xlty

breakforeach

fi

endtikzpicture

205

Figura 74 Un disegno a colori ottenuto con lrsquouso del pacchetto pgf e lrsquoambientetikzpicture

mette a disposizione un ambiente di disegno che si chiama tikzpicture allrsquointernodel quale la sintassi dei comandi egrave molto diversa dalla sintassi da usare nellrsquoam-biente picture ma sotto certi aspetti essa egrave piugrave intuitiva in ogni caso piugrave adattaalla moltitudine di oggetti linee colori nodi alberi strutture schemi di flussoeccetera che possono essere gestiti con quel pacchetto e quellrsquoambiente

Qui giusto per far venire lrsquoacquolina in bocca con un blando aperitivo simostra solo la figura 74 che mostra una figura a colori dove i colori delle sfere chegiacciono sulla diagonale secondaria (quella che va da SW a NE) sono mescolatifra di loro nelle posizioni fuori da quella diagonale mostrando sempre delle mezzesfere con gradienti di luce obliqua a simmetria circolare

Lrsquoambiente tikzpicture egrave estensibile con diversi altri ulteriori pacchetti peresempio circuitikz che permette di disegnare circuiti elettronici scegliendo lostile americano oppure quello europeo la figura 75 mostra un esempio tratto dalmanuale del pacchetto che si trova in doclatexcircuitikz Il manualeespone anche lrsquointera lista di componenti veramente immane con cui si possonodisegnare circuiti elettronici essendo ogni componente disegnato mediante unamacro non egrave difficile casomai ce ne fosse bisogno arricchire questa enormecollezione di ulteriori segni particolari

Lrsquoambiente tikzpicture e i comandi del pacchetto tikz possono venire usati perla definizione di diverse macro in questo testo esso egrave stato usato per definire lemacro che disegnano le icone che compaiono sui tasti di controllo della tastiera delportatile Mac Book Pro esse possono venire esaminate nel file MacroGuidasty

Un altro semplice esempio suggerito da Antonio Cervone egrave il disegno perdefinire una paginetta con lrsquoangolo superiore ripiegato ldquomorbidamenterdquo questodisegno appare nellrsquoArte di scrivere con LATEX [39] e che tanto attrae anche

122 CAPITOLO 7 LATEX FIGURE

MA

Redaellindash

tikz

pict

uree

circ

uiti

kz

micro

Ω

i1

Ω

Ωi1

minusminusminusminus

minusminusminus

minus

minus

e(t) Ω

Ω

a(t)

minusminus

minusminus minusminus

minusminusminusminus minusminus

Figura 75 Circuito elettronico disegnato usando lrsquoambiente tikzpicture avendocaricato lrsquoestensione circuitikz

i frequentatori del Forum del gruppo guIt Si egrave rielaborato il codice propostoda Antonio Cervone in modo da creare una macro che funziona solo con unaversione moderna di pdflatex percheacute vi vengono usate delle funzionalitagrave estese Ilcodice rielaborato egrave il seguente

newlengthpaginettaunit

newcommandpaginetta[2][5textwidth]countdefY=1000countdefYY=1001relaxsetbox0vboxhsize=1relax2relaxdimen0=1relaxdimen0=12dimen0relaxpaginettaunit=dimexprdimen0100relaxdimen0=ht0Y=numexprdimen0paginettaunitrelaxYY=-numexprY+40relaxY=-numexprY2+27relaxbegintikzpicture[thickx=paginettaunity=paginettaunit]draw[fill=blue10]

(00) [rounded corners=75] --(800) --(100-20) [rounded corners=0] --(100YY) --(0YY) --cycle

draw(750) controls (800) and (80-5) (80-20) controls (95-20) and (100-20) (100-25)

node at (50Y) box0endtikzpicture

e il risultato dellrsquouso del comando

paginetta[55textwidth]raggedright

75 VANTAGGI DEI PROGRAMMI NATIVI DEL SISTEMA TEX 123

CBeccari

eACervonendash

tikz

pict

ure

Questo egrave un testo composto da duecapoversiInfatti questo egrave il secondo capoverso

Figura 76 Una paginetta con lrsquoangolo ripiegato

Questo egrave un testo composto da due capoversi

Infatti questo egrave il secondo capoverso

appare nella figura 76

75 I vantaggi di usare programmi nativi del si-stema TEX

I vantaggi di usare i programmi nativi del sistema TEX (pgf funziona anche conPlain TEX e con ConTEXt) consistono nel fatto che questi sistemi consentono diusare direttamente gli stessi font che vengono usati per il testo Non si trascuriquesta possibilitagrave percheacute lrsquouso di font diversi talvolta incompatibili o non adattia quello che si sta scrivendo egrave un difetto cosigrave grave che salta allrsquoocchio anchedella persona piugrave inesperta

I disegni per esempio prodotti con famosi programmi interattivi di mate-matica possono essere salvati in formato PostScript tuttavia egrave poi necessariocorreggere questi file per poter cambiare i font specialmente quando alcunescritte che compaiono nei disegni sono costituite da formule e chiunque vedesubito che non sono composte con la stessa maestria di quelle composte conLATEX Esistono dei pacchetti per esempio psfrag che riescono ad eseguirealcune di queste trasformazioni ma resta sempre un lavoro maggiore da fare cherichiede una attenzione maggiore come succede sempre quando si eseguono dellecorrezioni

Non si trascuri quindi la possibilitagrave di disegnare semplici diagrammi ricorren-do anche al piugrave elementare ambiente da disegno costituito da picture Il vantaggiodellrsquouso dei font giusti supera qualunque fatica si debba fare per ottenere unrisultato grafico accettabile Se poi ci si prende il disturbo di imparare ad usarelrsquoambiente tikzpicture allora non si deve rinunciare proprio a niente

76 METAPOST

Qui si vuol dare un ulteriore suggerimento al lettore interessato egli puograve ricorrereal programma METAPOST per eseguire disegni al tratto sia bidimensionali siatridimensionali

124 CAPITOLO 7 LATEX FIGURE

CB

eccari

ndashM

ETA

PO

ST

O r

Figura 77 Un semplice esempio di figura geometrica composta con METAPOST

Il programma METAPOST egrave descritto abbastanza dettagliatamente nel do-cumento docmetapostbasempmanpdf egrave utile consultare anche il docu-mento docmetapostbasempintropdf in ogni caso METAPOST prevedela conoscenza di METAFONT quindi tutta lrsquooperazione di documentazione edapprendimento puograve sembrare piuttosto complessa A questo proposito vale lapena di rompere il ghiaccio con docenglishmetafpmetafppdf che egraveun testo introduttivo di Peter Wilson per iniziare ad usare sia METAFONT siaMETAPOST

Lrsquoutilitagrave di usare METAPOST per eseguire i disegni consiste nel fatto che sipossono usare i costrutti piugrave complessi che vengono elaborati da quel programmain modo che il file di uscita sia compatibile sia per il driver dvips sia per lrsquointerpretepdftex (in pratica pdfLATEX) cosiccheacute il disegno prodotto puograve essere utilizzatosia per comporre un documento in formato PostScript sia in formato PDF senzabisogno delle successive trasformazioni da un formato allrsquoaltro Si veda anche ilparagrafo 83

Un altro vantaggio dellrsquouso di METAPOST consiste nel fatto che tutte leindicazioni testuali e matematiche da inserire nel disegno vengono composte daLATEX o pdfLATEX stessi grazie ai comandi contenuti nel file sorgente METAPOSTlrsquouso dei font compatibili con quelli del testo composto egrave quindi assolutamentegarantito

A titolo di esempio si riporta il listato METAPOST del disegno che comparenella figura 77 I punti indicati con zi sono alcune coordinate del piano cherappresentano i punti di appoggio per circonferenze e segmenti le grandezze poute pin sono dei path cioegrave dei percorsi definiti tramite le precedenti coordinatee i comandi che li raccordano con curve di Beacutezier di terzo grado con concavitagravemodeste (sequenze di tre puntini) i comandi fill e draw fanno esattamentequello che dice il loro nome Interessanti sono i comandi per etichettare i puntidotlabeltop disegna un punto nero nel punto z0 e lo etichetta con quantoscritto fra parentesi Invece labeltop non disegna niente ma mette lrsquoetichettacontenuta fra parentesi a metagrave strada fra il punti z0 e z3 Entrambi questicomandi per etichettare scrivono in linguaggio TEX quanto egrave contenuto fra btexed etex vi si leggono infatti le specificazioni per due oggetti matematici (dacomporre con lo stile textstyle) uno egrave il nome del centro del cerchio esternoO e lrsquoaltro egrave lrsquoindicazione del raggio r

beginfig(1)u=1mm

77 USI INSOLITI DELLrsquoAMBIENTE PICTURE 125

path poutpinz1=(020u)z2=(20u40u)z3=(40u20u)z4=(20u20sqrt(2)u)z0=5[z1z3]pout= z1upz2rightdownz3pin= z3z2-z3z4leftz1-z2z1fill poutamppinampcycle withcolor 8whitez5=(20u0)draw poutz5leftcycledraw pindraw z1--z3draw z0--z5draw z5--z1draw z5--z3dotlabeltop(btex$O$etexz0)labeltop(btex$r$etex5[z0z3])endfigend

Se il breve listato precedente egrave contenuto nel file cerchimp e da linea dicomando si dagrave il comando3

mp cerchi

si ottiene il file cerchi001 a cui si puograve cambiare nome in cerchimps per poiimportarlo nel documento da comporre con il comando includegraphics dicui si parleragrave nel prossimo capitolo4

77 Usi insoliti dellrsquoambiente pictureLe tabelle come si egrave detto alla fine del capitolo 6 possono presentare deiproblemi e si egrave indicato come risolverli almeno in certi casi la tabella 71contiene sicuramente del materiale ordinato in celle giustapposte ma le grandiparentesi graffe certamente disturbano gli allineamenti percheacute si protraggonooltre i limiti delle celle che intendono raggruppare nelle varie colonne

Se si compone la tabella nellrsquoambiente picture invece che nellrsquoambiente tabularbisogna rinunciare agli automatismi che questrsquoultimo ambiente mette a disposizio-ne ma lrsquoambiente picture consente di collocare con precisione qualunque oggettofornendo le coordinate del suo punto di riferimento ma anche nascondendone ledimensioni reali

Perciograve con lrsquoambiente picture si possono parzialmente sovrapporre oggettipur di avere la pazienza di determinare le posizioni dei punti di collocamento conalcune prove La tabella 715 egrave stata composta con il codice seguente dove le

3Il comando per lanciare METAPOST puograve essere mp oppure mpost a seconda dellrsquoinstallazionedel sistema TEX

4Alternativamente si puograve usare il comando METAPOST outputtemplate descritto nellapagina 145

5Lrsquoesempio egrave stato suggerito da Enrico Bellino Universitagrave Cattolica del Sacro Cuore

126 CAPITOLO 7 LATEX FIGURE

1

Table 1 Classification of technical progress

Gravemente insufficiente(saltare un appello)

v lt 15

Insufficiente(puo ripetere lrsquoesame)

15 le v lt 18

Sufficiente

v ge 18

esame non superato

Sufficiente

18 le v le 20

Discreto

21 le v le 25

Buonoottimo

26 le v le 30

non si puo fare la tesi

Si puo chiederela tesi compilativa

26 le v le 27

Si puo chiederela tesi di ricerca

28 le v le 30

Tabella 71 Tabella insolita

coordinate da dare come argomento ai vari comandi put sono state determinatesperimentalmente

newcommandrBrace[1]makebox(00)[r]$leftrule0pt1right$

setlengthunitlength1exbeginpicture(8560)put(040)$leftparbox25unitlengthnull

Gravemente insufficientenewline (saltare un appello) [vlt15]Insufficientenewline (puograve ripetere lrsquoesame)[ 15 leq vlt18]Sufficiente [ vgeq 18]right$

put(3246)rBrace45baselineskipesame non superatoput(3225)$leftparbox25unitlengthnull

Sufficiente [18leq vleq 20 ]Discreto [ 21leq vleq 25]Buonoottimo [26leq vleq 30]right$

put(6040)rBrace7baselineskipnon si puograve fare la tesiput(60145)$leftparbox20unitlengthnull

Si puograve chiederenewline la tesi compilativa [26leq vleq 27]Si puograve chiederenewline la tesi di ricerca [28leq vleq 30]

right$

78 LINEE GUIDA PER LA GRAFICA 127

endpicture

La definizione che precede i tre puntini egrave nel preambolo essa definisce ilcomando rBrace che serve per comporre una parentesi graffa di semialtezzaspecificata con il punto di riferimento al suo centro ma racchiusa dentro unascatola di dimensioni nulle in questo modo la parentesi graffa puograve essere collocataovunque senza che causi nessun intralcio al posizionamento degli altri oggetti egravecome se non ci fosse

Successivamente prima di aprire lrsquoambiente picture (ma dentro allrsquoambientetable per rendere il tutto flottante e con il titolino della didascalia corretto)si assegna allrsquounitagrave di misura unitlength un valore dipendente dal font inuso 1 ex

Aperto lrsquoambiente picture si collocano i vari oggetti si notino le scatoledefinite mediante parbox che consentono di comporvi dentro del testo comese si trovasse dentro una colonna con la giustezza pari a quanto specificato nelprimo argomento Per altro il primo elemento che vi si compone egrave la scatola nullanull la quale impegna una riga del tutto bianca serve per bilanciare lo spazioche si trova in fondo alla scatola dopo lrsquoequazione centrata Il resto di quanto sitrova a formare il secondo argomento di parbox egrave codice senza sorprese

Si nota invece che le grandi parentesi graffe chiuse costruite mediante ilcomando rBrace e la semialtezza specificata non occupando nessuno spazionon alterano il collocamento del testo dellrsquounica riga che le accompagna

La tabella 71 non egrave il massimo dellrsquoeleganza ma talvolta egrave necessario costruiretabelle di questo genere usate abitualmente in certe discipline scientifiche Inqueste circostanze ricorrere allrsquoambiente picture sembra essere la soluzione piugravesemplice

78 Linee guida per la graficaPer creare della grafica ben fatta bisogna avere talento e seguire alcunelinee guida con il permesso dellrsquoautore Till Tantau qui si riproduceil capitolo 4 della prima parte del suo manuale [45] corredato di alcunicommenti messi in evidenza con il font di questo capoverso in modo chesi stacchino bene dal testo originale sia pure tradotto con un certa libertagrave

Si noti che nel seguito con la parola grafica si intende sia lrsquoattivitagraveconnessa con la produzione di disegni sia il prodotto di questa attivitagravecioegrave uno o piugrave disegni Con grafici si intendono i disegni in senso strettogeneralmente disegni al tratto quasi sempre privi di sfumature di coloree che possono avere caratteristiche molto diverse

I diagrammi sono disegni dellrsquoandamento di una o piugrave curve riferite adassi cartesiani nel piano meno frequentemente sono la proiezione sullacarta di diagrammi tridimensionali Gli schemi a blocchi o i diagrammi diflusso sono disegni di scatole rettangolari o altre forme geometriche chiusespesso con sfondi colorati collegati fra di loro da frecce che descrivono ilfluire delle informazioni da una scatola allrsquoaltra Gli istogrammi descrivonoin due dimensioni spesso con effetti tridimensionali distribuzioni statisti-che assai spesso non collegate ad una variabile indipendente misurabile Idiagrammi a torta analogamente descrivono delle distribuzioni statistiche

128 CAPITOLO 7 LATEX FIGURE

mediante la lunghezza di archi di una circonferenza o lrsquoarea di settori diun cerchio I cartogrammi rappresentano distribuzioni proiettate sul pianodi terreni o di aree geografiche distinte in modo che sia agevole risalire siaal loro perimetro sia alla loro superficie e includono le carte geografichein senso stretto le mappe e le planimetrie I pittogrammi possono averediversi aspetti e rappresentare le cose piugrave diverse mediante aggregazioni didisegnini che rappresentano cose animali o persone I disegni al tratto piugravegenerali non classificabili come descritto sopra possono essere delle rap-presentazioni schematiche o prospettiche della realtagrave dove il disegno privodi molta dellrsquoinformazione che potrebbe essere presente in una fotografiapermette di mettere in evidenza dei particolari anche in trasparenza chenon sarebbero altrimenti evidenziabili

In Italia la produzione di questi vari tipi di disegni egrave regolata dalle normeUNI [48] Ciograve non toglie che la scelta di un dato tipo di rappresentazionenon possa essere sottoposta ad ulteriori regole di carattere estetico o diqualitagrave della comunicazione

781 PreliminariQuesto paragrafo non riguarda in senso stretto neacute pgf neacute TikZ ma riguarda lelinee guida generali e i principi che presiedono alla grafica per le presentazioniscientifiche per gli articoli e per i libri

Le linee guida in questo paragrafo arrivano da diverse fonti Molte io le chia-merei semplicemente ldquobuon sensordquo alcune riflettono la mia esperienza personale(sebbene spero non le mie preferenze personali) alcune arrivano da libri ditipografia e di disegno grafico di cui purtroppo non ho composto la bibliografiaLa fonte piugrave importante egrave costituita dai libri di Edward Tufte Sebbene io nonsia drsquoaccordo con ogni cosa scritta in questi libri molte delle spiegazioni di Tuftesono cosigrave convincenti che ho deciso di riportarle fra queste linee guida [47]

La prima cosa che bisognerebbe domandarsi quando qualcuno propone unaserie di linee guida egrave ldquoDovrei davvero seguire queste linee guidardquo Questa egraveuna domanda importante percheacute esistono dei buoni motivi per non seguire lineeguida di carattere generale

bull La persona che ha scritto quelle linee guida potrebbe aver avuto degliobbiettivi diversi dai vostri Per esempio una linea guida potrebbe affermareldquousa il colore rosso per dare enfasirdquo Mentre questa linea guida potrebbeavere senso per esempio quando si predispone una presentazione daproiettare il ldquocolorerdquo rosso ha un effetto opposto allrsquo ldquoenfasirdquo quando vienestampato con una stampante in bianco e neroLe linee guida sono state quasi sempre scritte per affrontare una situazionespecifica Se non siete in quella situazione seguire una linea guida puograve farepiugrave male che bene

bull La regola base della tipografia dice che ldquoOgni regola puograve essere infrantase siete consapevoli di ciograve che state facendordquo Questa regola vale anche perla grafica Detto in modo equivalente la regola base dice che ldquoI soli erroriche si possono fare in tipografia sono le cose fatte per ignoranzardquoQuando conoscete una regola e quando ritenete che infrangere la regolaproduca lrsquoeffetto desiderato allora infrangete la regola

78 LINEE GUIDA PER LA GRAFICA 129

Perciograve prima di seguire una linea guida o di decidere di non seguirla fatevile seguenti domande

1 Questa linea guida riguarda davvero la mia situazione

2 Se faccio lrsquoopposto di quello che dice la linea guida i vantaggi sarannosuperiori agli inconvenienti che la linea guida si propone di evitare

782 Programmazione del tempo necessario per la crea-zione della grafica

Quando create un documento che contiene molta grafica il tempo necessario percreare questa grafica diventa un fattore importante Quanto tempo bisognerebbestimare per la creazione della grafica

Come regola generale supponete che la grafica vi richieda altrettanto tempodi quello necessario per produrre un testo della stessa lunghezza Per esempioquando io compongo un documento impiego circa unrsquoora per ogni pagina dellaprima bozza Poi per le revisioni impiego da due a quattro ore per ogni paginaPerciograve mi aspetto di avere bisogno di circa mezzrsquoora per creare la prima bozzadi un grafico che occupi mezza pagina Successivamente penso di avere bisognoancora di una o due ore prima che il grafico sia a posto

In molte pubblicazioni anche in ottime riviste gli autori e i revisori editorialihanno evidentemente investito molto tempo sul testo ma sembra che abbianospeso cinque minuti per creare tutta la grafica I disegni sembra che siano statiaggiunti in un secondo tempo senza un motivo particolare oppure sembranouna copia della schermata di qualunque cosa il software di statistica dellrsquoautoregli mostrasse Come verragrave spiegato piugrave avanti la grafica prodotta da programmicome gnuplot con le impostazioni di default sono di qualitagrave assai modesta

Creare grafici che convogliano in modo corretto la loro informazione al lettoree che nello stesso tempo sono coerenti con il testo egrave un processo lento e difficile

bull Trattate i disegni come elementi di prima categoria Essi meritano lo stessotempo e la stessa energia che richiede il testo

bull Presumibilmente la creazione di grafici richiede anche maggior tempo diquello richiesto dalla composizione del testo percheacute alla grafica si daragrave piugraveimportanza in quanto i disegni verranno osservati per primi

bull Pianificate di usare lo stesso tempo per la creazione e la revisione dei vostrigrafici quanto ne dedichereste ad un testo della stessa estensione

bull Grafici difficili con unrsquoalta densitagrave di informazione vi possono richiedereanche piugrave tempo

bull Grafici molto semplici vi possono richiedere meno tempo ma verosimil-mente voi non volete scrivere un documento con ldquografici molto semplicirdquoper lo meno non lo volete come non vorreste scrivere ldquotesti molto semplicirdquodella stessa estensione

130 CAPITOLO 7 LATEX FIGURE

783 Piano di lavoro per creare un graficoQuando scrivete un articolo (scientifico) probabilmente seguite questo schemaavete dei dati o dei risultati da comunicare La creazione dellrsquoarticolo tipicamentecomincia con la predisposizione di una scaletta Poi le varie sezioni vengonoriempite con il testo per creare la prima bozza Questa bozza subisce diverserevisioni e spesso dopo revisioni sostanziali finalmente diventa lrsquoarticolo finaleTipicamente in un buon articolo per una rivista non crsquoegrave una sola frase che arrivialla fine senza aver subito qualche modifica

Creare la grafica segue lo stesso percorso

bull Decidete dapprima che cosa il grafico deve comunicare al lettore prendeteconsapevolmente questa decisione cioegrave domandatevi ldquoQuesto grafico checosa deve dire al lettorerdquo

bull Preparate uno schema grossolano del grafico con la sua forma e i suoipunti essenziali spesso va bene farlo con carta e matita Spesso egrave utileabbozzare il disegno su carta millimetrata o almeno quadrettata

bull Inserite i successivi dettagli per produrre la prima bozza

bull Revisionate il grafico via via che rivedete il testo

784 Collegamento fra testo e graficoI grafici possono essere collocati in diverse posizioni rispetto al testo nel senso cheessi possono venire collocati in linea col testo ovvero ldquoin mezzo al testordquo oppureessi possono essere usati come ldquofigurerdquo autonome Siccome agli stampatori piaceavere le pagine ldquopienerdquo (per motivi che sono allo stesso tempo economici edestetici) le figure autonome tradizionalmente possono venire collocate in posizionirelativamente distanti dal testo che vi fa riferimento LATEX sembra eseguire questoldquoallontanamentordquo per motivi tecnici cioegrave per dividere automaticamente il testoin pagine evitando pagine mozze eo pagine con i capoversi malamenteed eccessivamente spaziati

Quando un grafico egrave inserito in linea col testo esso viene automaticamentecollegato ad esso nel senso che le ldquoetichetterdquo del grafico vengono spiegate edescritte dal testo circostante E il testo spiega chiaramente ciograve a cui il grafico siriferisce e che cosa vi egrave mostrato

Allrsquoopposto una figura autonoma spesso viene esaminata quando il testo chevi si riferisce o non egrave ancora stato letto oppure egrave stato letto diverse pagine primaPer questo motivo egrave bene seguire le seguenti linee guida quando si creano figureautonome o flottanti

bull Le figure flottanti devono avere una didascalia che permetta di renderleldquoautocomprensibilirdquoPer esempio supponete che un diagramma rappresenti gli stadi successividellrsquoalgoritmo quicksort Allora la didascalia come minimo dovrebbe in-formare il lettore che ldquoLa figura mostra gli stadi successivi dellrsquoalgoritmoquicksort spiegato nella pagina xyzrdquo e non semplicemente ldquoAlgoritmoquicksortrdquo

78 LINEE GUIDA PER LA GRAFICA 131

bull Una buona didascalia aggiunge tanta informazione contestuale quantoegrave possibile Per esempio essa potrebbe specificare ldquoLa figura mostra idiversi stadi dellrsquoalgoritmo quicksort spiegato nella pagina xyz Nella primalinea lrsquoelemento 5 egrave scelto come cerniera Questo produce rdquo Anche sequesta informazione puograve venire inserita nel testo collocarla nella didascaliaassicura che venga mantenuta la contestualitagrave Non abbiate paura di unadidascalia di cinque righe (Il vostro revisore editoriale vi odieragrave Prendetein considerazione la possibilitagrave di ricambiarlo) Per altro ricordatevi chela didascalia egrave composta di tre parti il titolino corrente il titolo eopzionalmente il testo sfruttate la possibilitagrave di usare questo testonello stesso tempo siate succinti per evitare che LATEX incontri troppedifficoltagrave per far flottare la vostra figura in una posizione conveniente

bull Fate riferimento al grafico nel testo con una frase del tipo ldquoPer un esempiodi quicksort ldquoal lavorordquo vedete la figura mn nella pagina xyzrdquo

bull La maggior parte dei libri di tipografia raccomanda di non usare abbrevia-zioni del tipo ldquofig mnrdquo ma di scrivere ldquofigura mnrdquoLrsquoargomentazione principale contro le abbreviazioni egrave che ldquoun punto valetroppo per sprecarlo per una abbreviazionersquo Lrsquoidea egrave che un punto puograveindurre il lettore a credere che la frase finisca subito dopo ldquofigrdquo e che quindigli sia necessario ritornare indietro coscientemente per rendersi conto chela frase non egrave affatto finitaLrsquoargomentazione a favore delle abbreviazioni egrave che si risparmia spazioPersonalmente nessuna delle due argomentazioni mi convince Da un latonon ho nessuna prova convincente che le abbreviazioni rallentino la let-tura Dallrsquoaltro anche se si abbreviano tutte le parole ldquofigurardquo in ldquofigrdquo egraveveramente difficile che si risparmi anche una sola riga di testoIn alcuni libri di tipografia italiana si trova la raccomandazione dinon usare abbreviazioni nel testo principale ma se ne consente lrsquousosolo negli incisi per esempio in quelli fra parentesiIo evito le abbreviazioni

785 Coerenza fra testo e graficaProbabilmente ldquolrsquoerrorerdquo che la maggior parte della gente fa quando crea deigrafici (ricordate che un ldquoerrorerdquo nel disegno egrave sempre semplicemente ldquoignoranzardquo)egrave quello di avere un disadattamento fra lrsquoaspetto del grafico e quello del testo

Egrave abbastanza comune che gli autori usino diversi differenti programmi percreare i loro grafici per un articolo Un autore potrebbe produrre alcuni diagrammiusando gnuplot alcuni altri usando xfig e potrebbe includere alcuni grafici informato eps ottenuti da qualche collaboratore che ha usato programmi chegli sono ignoti Tutti questi grafici verosimilmente useranno diversi spessoridelle linee font differenti e avranno dimensioni diverse Inoltre gli autori spessousano opzioni come height=5cm quando includono dei grafici al fine di scalarliin modo accettabile

Se si usasse il medesimo approccio per comporre il testo ogni paragrafoverrebbe composto con un font diverso e di corpo diverso In un paragrafo i

132 CAPITOLO 7 LATEX FIGURE

teoremi verrebbero sottolineati in un altro verrebbero composti in maiuscolettoin un altro evidenziati in rosso Inoltre i margini sarebbero diversi in ogni pagina6

Neacute i lettori neacute i revisori editoriali tollererebbero un testo scritto in questomodo ma con la grafica spesso sono costretti a farlo

Per mantenere una consistenza fra testo e grafica seguite le linee guidaseguenti

bull Non cambiate scala ai grafici in altri termini non riproduceteli a dimensionidiverse da quelle con cui i diagrammi sono stati disegnatiQuesto significa che quando usate programmi esterni per creare grafici lidovete creare fin dallrsquoinizio ldquodelle dimensioni giusterdquo

bull Usate gli stessi font per i grafici e per il testo

bull Usate lo stesso spessore delle linee per i grafici e per il testoLo ldquospessore delle lineerdquo per il testo normale egrave in buona sostanza lospessore delle aste di lettere come la T Per i font del sistema TEX questosignifica 04 pt Tuttavia ci sono alcune riviste che non accettano graficiche contengano linee di spessore inferiore a 05 pt

bull Se usate i colori usateli coerentemente seguendo un ldquocodice dei colorirdquo Peresempio se usate il rosso nel testo per richiamare lrsquoattenzione del lettoreusate lo stesso colore rosso per richiamare lrsquoattenzione su parti importantidel disegno Se il colore blu egrave usato per evidenziare le parti strutturali deltesto come per esempio i titoli dei paragrafi usate lo stesso colore blu perevidenziare le parti strutturali dei vostri graficiTuttavia nella grafica si possono usare colori corrispondenti ad una codificalogica e ldquointrinsecardquo Per esempio indipendentemente dal codice dei coloriche voi possiate usare i lettori generalmente associano il colore verde aconcetti del tipo ldquopositivo va bene OKrdquo mentre associano il colore rossoa concetti come ldquoattenzione pericolo azionerdquo

Mantenere la coerenza quando si usano diversi programmi di disegno egrave quasiimpossibile Per questo motivo dovreste prendere in considerazione di usaresempre lo stesso programma

786 Legende nei graficiPraticamente tutti i disegni contengono delle etichette per individuare parti delgrafico o legende testuali che spiegano parti del grafico Quando usate questelegende rimanete aderenti alle linee guida seguenti

bull Siate coerenti nel predisporre queste legende Lo potete fare in due modiprimo siate coerenti con il testo principale usando gli stessi font Secondomantenete la coerenza fra una legenda e lrsquoaltra cioegrave se componete alcunelegende in un certo modo componente tutte le legende nello stesso modo

6Bisogna convenire che non egrave raro vedere testi composti in modo cosigrave sciatto quandosono stati usati i soliti word processor Con LATEX egrave difficile che ciograve accada non impossibilema bisogna mettercela tutta

78 LINEE GUIDA PER LA GRAFICA 133

bull Oltre ad usare gli stessi font nel testo principale e nel grafico dovresteanche usare le stesse notazioni Per esempio se scrivete 12 nel testoprincipale usate la stessa scrittura nelle legende non scrivete 05 Un πegrave un π e non 3141 Ancora eminus iπ egrave e resta eminus iπ non ldquominus1rdquo e meno chemai ldquo-1rdquo

bull Le legende devono essere leggibili7 Esse pertanto devono essere abbastanzagrandi e non devono essere disturbate dalla presenza di linee o di altrotesto a loro in parte sovrapposto Questo ovviamente vale anche per lelinee e per il testo ldquodietrordquo alle legende

bull Le legende devono stare ldquonel posto giustordquo Quando crsquoegrave abbastanza spaziole legende dovrebbero essere collocate vicino allrsquooggetto a cui si riferisconoSolo se egrave veramente necessario si puograve usare una leggera linea che connettala legenda con lrsquooggetto Evitate di usare legende che si riferiscono a spie-gazioni contenute in legende esterne altrimenti il lettore sarebbe costrettoa saltare avanti e indietro fra la spiegazione e lrsquooggetto che viene descritto

bull Prendete in considerazione la possibilitagrave di ridurre lrsquoevidenza di alcuneetichette meno importanti affincheacute il lettore possa focalizzare meglio la suaattenzione sul grafico

787 Diagrammi di vario genereSpecialmente negli articoli scientifici i grafici piugrave frequenti sono i diagrammiPossono essere composti in molte differenti maniere che vanno dai semplicidiagrammi con una sola curva ai diagrammi parametrici a quelli tridimensionaliai diagrammi a torta e molti altri

Egrave purtroppo ben noto che egrave difficile fare dei bei diagrammi In parte bisognaincolpare le impostazioni di default di programmi come gnuplot o Excel checonsentono di disegnare facilmente brutti diagrammi

La prima cosa che dovreste domandarvi quando volete creare un diagrammaegrave la seguente

bull Ci sono abbastanza dati da riportare sul diagramma

Se la risposta egrave ldquoPer la veritagrave nordquo componente una tabella invece di undiagramma

Una tipica situazione nella quale un diagramma non egrave necessario egrave quando siriportano pochi dati su un istogramma a barre Ecco un esempio reale Alla finedi un seminario lrsquooratore chiese ai presenti una valutazione Dei 50 partecipanti30 restituirono il questionario di valutazione La valutazione risultograve essere laseguente tre partecipanti dissero che il seminario era stato ottimo nove loconsiderarono buono dieci lo considerarono passabile otto scadente mentrenessuno lo considerograve pessimo

Un modo semplice per raccogliere questa informazione egrave rappresentato dallatabella 72

Quello che invece lrsquooratore fece fu di presentare il risultato sotto forma diun istogramma a barre come mostrato nella figura 78

7Legenda egrave una parola latina neutra plurale e significa ldquole cose che devono essere letterdquo

134 CAPITOLO 7 LATEX FIGURE

Valutazione Partecipanti (su 50) chediedero questa valutazione Percentuale

ottimo 3 6buono 9 18passabile 10 20scadente 8 16pessimo 0 0

nessuna 20 40

Tabella 72 Esempio di valutazione di un seminario

TTan

taundash

tikz

pict

ure

020406080

100

ottim

o

buon

o

passab

ile

scad

ente

pessim

o

Figura 78 Esempio di istogramma per presentare il risultato della valutazionedi un seminario

78 LINEE GUIDA PER LA GRAFICA 135

Si osservi che la tabella 72 e la figura 78 occupano pressappoco lo stessospazio Se il vostro primo pensiero egrave che ldquoil grafico egrave piugrave gradevole della tabellardquoprovate a rispondere alle seguenti domande basandovi sullrsquoinformazione contenutanel grafico o nella tabella

1 Quanti partecipanti crsquoerano

2 Quanti partecipanti restituirono il questionario

3 In che percentuale i partecipanti restituirono il questionario

4 Quanti partecipanti risposero ldquoottimordquo

5 Fra tutti i partecipanti quale percentuale rispose ldquoottimordquo

6 Furono piugrave di un quarto coloro che risposero ldquoscadenterdquo o ldquopessimordquo

7 Fra coloro che restituirono il questionario quale fu la percentuale di coloroche valutarono il seminario ldquoottimordquo

Purtroppo lrsquoistogramma non permette di rispondere a nemmeno una di questedomande La tabella risponde direttamente a tutte le domande tranne lrsquoultimaper la quale per altro dagrave gli elementi per eseguire il calcolo In sostanza ladensitagrave di informazione dellrsquoistogramma egrave quasi nulla la tabella ha una densitagravedi informazione molto maggiore anche se contiene una grossa parte di spaziobianco e pochi numeri

Ecco che cosa egrave andato storto con lrsquoistogramma

bull Lrsquointero grafico egrave dominato dalla presenza fastidiosa delle linee di sfondo

bull Non egrave chiaro il significato dei numeri a sinistra probabilmente si tratta dipercentuali ma potrebbe anche essere il numero assoluto dei partecipanti

bull Le legende in basso sono ruotate cosigrave che diventano piugrave difficili da leggere(Nella presentazione reale che io ho visto il testo era composto con caratteria matrici di punti campionati su una griglia di non piugrave di 10 pixel per6 pixel per ogni lettera con accostamenti errati al punto da risultare quasiilleggibile)

bull La terza dimensione aggiunge al diagramma una certa complessitagrave ma nonaggiunge nessuna informazione

bull Lrsquoimpostazione tridimensionale rende molto piugrave difficile da leggere lrsquoaltezzadelle barre Esaminate la barra ldquoscadenterdquo La sua altezza egrave maggiore ominore di 20 Mentre la parte frontale della barra egrave sotto al livello 20 ilretro della barra che egrave quello che conta egrave sopra a tale livello

bull Egrave impossibile dire quali numeri siano rappresentati dalle barre Perciograve lebarre nascondono senza necessitagrave proprio lrsquoinformazione che dovrebberodare

bull La somma delle altezze delle barre egrave 100 o 60

bull Lrsquoaltezza della barra ldquopessimordquo egrave zero o uno

bull Percheacute le barre sono blu

136 CAPITOLO 7 LATEX FIGURE

TTan

taundash

tikz

pict

ure

Valutazioni dateda 50 partecipanti

ldquopassabilerdquo 10 (20)

nessuna 20 (40)

ldquoottimordquo 3 (6)

ldquobuonordquo 9 (18) ldquoscadenterdquo 8 (16)

ldquopessimordquo 0 (0)

Figura 79 Altro esempio di diagramma per presentare il risultato dellavalutazione di un seminario

Potreste argomentare che in questo esempio i valori precisi non sono impor-tanti per il grafico La cosa importante egrave il ldquomessaggiordquo cioegrave che ci sono piugravevalutazioni ldquoottimordquo e ldquobuonordquo che valutazioni ldquoscadenterdquo o ldquopessimordquo Ma pertrasmettere questo messaggio o si usa una frase oppure si disegna un diagrammache convogli questo messaggio in modo piugrave chiaro come nella figura 79

Il grafico della figura 79 ha pressappoco la stessa densitagrave di informazionedella tabella (ha le stesse dimensioni e vi sono riportati gli stessi numeri) In piugraveuno puograve direttamente ldquovedererdquo che ci sono piugrave valutazioni ldquobuonerdquo e ldquoottimerdquoche non ldquoscadentirdquo Uno puograve anche ldquovedererdquo che il numero delle persone che nonhanno formulato valutazioni di nessun tipo non restituendo il questionario nonegrave trascurabile e questo egrave un fatto abbastanza comune quando si distribuisconoquestionari di valutazione

Anche i diagrammi spaziali spesso non sono efficaci Esaminiamo un altroesempio nella figura 710 che io ho ridisegnato traendolo dalla rivista Die Zeit 4giugno 2005 Questo diagramma della figura 710 egrave stato ridisegnato con TikZma egrave praticamente identico allrsquooriginale

A prima vista esso sembra ben fatto completo e pieno di informazioni ma cisono diverse cose che non sono a posto

bull Il grafico egrave tridimensionale Tuttavia le sfumature di colore non aggiungononulla dal punto di vista informativo al piugrave distraggono

bull In un grafico 3-D le dimensioni relative sono molto distorte Per esempiolrsquoarea occupata dalla zona grigia ldquoBraunkholerdquo egrave maggiore dellrsquoarea occupa-ta dalla zona verde della ldquoKernenergierdquo malgrado il fatto che la percentualedellrsquoenergia prodotta con il Braunkhole sia inferiore alla percentuale diquella nucleare

bull La distorsione della grafica 3-D diventa ancora peggiore per le piccole areeLrsquoarea dellrsquoenergia ldquoRegenerativerdquo risulta piugrave grande di quella occupatadallrsquoarea destinata allrsquo ldquoErdgasrdquo Lrsquoarea del ldquoWindrdquo egrave appena minore diquella ldquoMineraloumllprodukterdquo anche se la percentuale del Wind egrave quasi trevolte maggiore di quella del Mineraloumllprodukte

78 LINEE GUIDA PER LA GRAFICA 137TTan

taundash

tikz

pict

ure

Kohle ist am wichtigstenEnergiemix bei der deutschen Stromerzeugung 2004

Gesamte Netto-Stromerzeugung in Prozent in Milliarden Kilowattstunden (Mrd kWh)

94

278

256223

104

Regenerative (537 kWh)davon Wind 44 (250 kWh)

Kernenergie(1584 kWh)

Braunkohle (1460 kWh)Steinkohle (1271 kWh)

Erdgas (592 kWh)

Mineraloumllprodukte (92 kWh) 16

Sonstige (165 kWh) 29

Figura 710 Esempio di diagramma a torta per confrontare le fonti di produzionedellrsquoenergia elettrica in Germania nel 2004 Regenerative rinnovabile Wind eolicaKernenergie nucleare Braunkhole lignite Steinkhole litantrace Erdgas metanonaturale Mineraloumllprodukte petrolio e derivati Sonstige altre fonti

In questrsquoultimo caso le dimensioni diverse sono solo in parte dovute alladistorsione 3-D I disegnatori del grafico originale hanno anche fatto la fettaldquoWindrdquo troppo piccola anche tenendo conto della distorsione (Si confrontinoin generale le dimensioni del ldquoWindrdquo con quelle del ldquoRegenerativerdquo)

bull Stando alla didascalia di questo grafico esso dovrebbe darci lrsquoinformazioneche in Germania il carbone egrave stata la sorgente di energia piugrave importantenel 2004 Tralasciando le forti distorsioni prodotte dallrsquoimpostazione 3-Dci vuole della buona volontagrave per percepire il messaggioIl carbone come fonte di energia egrave diviso in due fette una per il ldquoBraunkholerdquoe lrsquoaltra per il ldquoSteinkholerdquo (due diversi tipi di carbone) Quando si uniscanole due fette solo allora si vede che la metagrave inferiore della torta egrave presa dalcarboneInoltre le due aree per i due differenti tipi di carbone non sono per nientecollegate visualmente Invece sono usati due colori differenti e le rispettivelegende sono ai lati opposti del disegno A confronto ldquoRegenerativerdquo eldquoWindrdquo sono collegate molto strettamente

bull Il codice dei colori del grafico non segue nessuna regola logica Percheacutelrsquoenergia nucleare egrave segnata in verde Percheacute lrsquoenergia rinnovabile egrave azzurrae quella derivata da altre fonti egrave blu Sembra addirittura una barzellettache lrsquoarea del Braunkhole (letteralmente del carbone marrone) sia grigiopietra mentre lrsquoarea dello Steinkhole (letteralmente carbone di pietra) siamarrone

bull Lrsquoarea con il colore piugrave chiaro egrave destinata allrsquo ldquoErdgasrdquo Questrsquoarea emergedal diagramma con piugrave forza sebbene secondo questo diagramma lrsquo ldquoErdgasrdquonon sia veramente importante

Edward Tufte chiama i grafici come quello della figura 710 ldquografici spazzaturardquo

138 CAPITOLO 7 LATEX FIGURE

Ecco allora alcune raccomandazioni per aiutarvi a non produrre graficispazzatura

bull Non fate diagrammi a torta tridimensionali questi sono spazzatura

bull Esaminate se non sia meglio preferire una tabella a un diagramma a torta

bull Non usate i colori a caso usateli invece per dirigere lrsquoattenzione del lettoree per raggruppare gli oggetti

bull Non usate tessiture di sfondo come le tessiture a graticcio o di lineediagonali usate piuttosto i colori Le tessiture distraggono Le tessiture disfondo nei diagrammi informativi sono spazzatura8

788 Attenzione e distrazionePrendete il vostro romanzo preferito ed esaminate una pagina tipica Notereteche la pagina egrave molto uniforme Non crsquoegrave nulla che possa distrarre il lettore mentrelegge Non ci sono grandi titoli non crsquoegrave testo composto in neretto non ci sonospazi bianchi di grandi dimensioni Invece se lrsquoautore vuole evidenziare qualcosalo fa componendolo in corsivo Il corsivo si adatta benissimo al font usato per iltesto principale verosimilmente il tondo e a una certa distanza non riuscirestea dire se la pagina contiene lettere in corsivo mentre notereste subito se ci fosseanche una sola una parola composta in nero Il motivo per il quale i romanzisono scritti cosigrave segue il paradigma seguente ldquoEvita le distrazionirdquo

La buona tipografia (come anche la buona organizzazione) egrave qualcosa che nonsi nota Il compito della tipografia egrave quello di rendere il piugrave possibile comoda lalettura del testo e quindi del recepimento dellrsquoinformazione che esso contiene Perun romanzo i lettori recepiscono lrsquoinformazione leggendo il testo una riga dopolrsquoaltra come se stessero ascoltando qualcuno che racconta una storia In questasituazione qualunque cosa ci sia sulla pagina che distrae lrsquoocchio dallrsquoandarerapidamente e uniformemente da una riga alla successiva rende la lettura deltesto meno agevole

Ora prendete la vostra rivista preferita o il vostro quotidiano ed esaminateuna pagina tipica Noterete che la pagina contiene un gran ldquomovimentordquo I fontsono usati con corpi differenti e con strutture compositive diverse il testo egraveorganizzato in colonne strette spessissimo interrotte da immagini I motivi peri quali le riviste e i quotidiani sono composti in questo modo segue un altroparadigma ldquoGuida lrsquoattenzionerdquo

I lettori non leggono una rivista come un romanzo Invece di leggere unarivista una riga dopo lrsquoaltra essi leggono i titoli o dei brevi riassunti (sottotitoli)per verificare se sono interessati a leggere lrsquointero articolo Nel momento perogravein cui il lettore ha deciso che vuole leggere lrsquoarticolo egli non vuole piugrave esseredistratto ed egrave per questo che gli articoli sono scritti proprio come i romanzi

I due principi ldquoevita le distrazionirdquo e ldquoguida lrsquoattenzionerdquo si applicano anchealla grafica Quando disegnate un grafico dovete eliminare ogni cosa che ldquodistraggalrsquoocchiordquo Nello stesso tempo dovete cercare attivamente di guidare il lettore

8Dovendo stampare in bianco e nero e tonalitagrave di grigio usate preferibilmente sfondidi diverse tonalitagrave di grigio piuttosto che tessiture di vario genere Fate attenzione a nonscegliere grigi troppo chiari o troppo scuri percheacute in stampa potrebbero apparire decisamentebianchi o neri Nello stesso tempo fra grigi adiacenti state attenti ad usare grigi contrastantio grigi concordanti a seconda della contestualizzazione delle aree da rappresentare

78 LINEE GUIDA PER LA GRAFICA 139

ldquoattraverso il graficordquo usando i font i colori e gli spessori delle linee per evidenziarele varie parti

Qui crsquoegrave una lista assolutamente non completa di cose che possono distrarreil lettore

bull I forti contrasti attraggono sempre lrsquoocchio Per esempio si considerino leseguenti due griglie

C Beccari ndash tikzpicture

Sebbene la griglia di sinistra appaia per prima quando noi leggiamo lapagina nella direzione solita da sinistra a destra egrave verosimile che la grigliadi destra sia percepita per prima il contrasto bianco-nero egrave maggiore diquello che si trova nel contrasto grigio-bianco9 Inoltre nella griglia didestra ci sono piugrave punti di cambiamento di contrasto che ne aumentanolrsquoeffettoOggetti come le griglie e in generale le linee delle coordinate non dovreb-bero di solito attrarre lrsquoattenzione del lettore e quindi dovrebbero esseredisegnate con un debole contrasto rispetto allo sfondo Inoltre una grigliaa maglie larghe distrae di meno di una griglia a maglie strette

bull Le linee tratteggiate creano molti punti in cui crsquoegrave un contrasto bianco-neroLe linee tratteggiate o punteggiate in generale distraggono moltoNon usate linee con differenti tratteggi per differenziare curve diverse Siperdono dei dati in questo modo (a meno che lo stacco fra i trattini eo ipuntini non sia molto piccolo) e lrsquoocchio non riesce bene a raggruppare glioggetti sulla base del tratteggio Lrsquoocchio riesce molto meglio a raggrupparegli oggetti sulla base dei coloriStampando in bianco e nero talvolta egrave necessario violare questa racco-mandazione progettando bene i diagrammi egrave possibile usare i tratteggicome egrave possibile usare tonalitagrave di grigio Tuttavia se le dimensioni ele distanze delle linee da tracciare (mai piugrave di quattro sullo stessodiagramma) lo consentono si possono tracciare le varie curve conlinee continue differenziandole mediante lrsquoapposizione di triangoli-ni quadratini cerchietti eccetera su ciascuna curva specialmentese collocati in corrispondenza dei punti (nodi) da tracciare lungociascuna curva

bull Inserire degli sfondi con linee diagonali verticali o orizzontali o anchesemplicemente con dei puntini risulta quasi sempre una distrazione etipicamente non serve a niente

bull Piccole immagini (clip arts) possono essere simpatiche ma di solito distrag-gono

9Se state esaminando queste due griglie sullo schermo tenete conto che le linee dellagriglia di sinistra sono tracciate in colore grigio il grigio di default con 75 di bianco e 25di nero la griglia di destra egrave disegnata in nero La qualitagrave dello schermo e la sua tecnologianoncheacute la sua densitagrave di pixel potrebbe rendere difficile la percezione di queste differenze

140 CAPITOLO 7 LATEX FIGURE

789 CommentiTill Tantau con molta modestia afferma che ha preso queste raccoman-dazioni e queste linee guida da libri famosi e autorevoli in particolareda quelli di Edward Tufte Egli spera che queste raccomandazioni nonrappresentino le sue personali preferenze ma siano il meglio che egrave riuscitoa distillare da quei libri

In alcuni casi le linee guida indicate sembrano un porsquo troppo cogenti obencheacute perfettamente comprensibili lasciano il dubbio di essere difficili daapplicare

Certo quello che si deduce da queste righe egrave che come la composizionetipografica egrave unrsquoarte che va appresa e coltivata cosigrave la grafica richiede nonpoca dedizione e studio oltre alla abilitagrave personale del disegnatore

Oggi dovrebbe essere piugrave facile di ieri trovare un buon grafico che possafare i nostri disegni ma anche il miglior grafico di questo mondo non faragravedei bei disegni se noi stessi non siamo capaci di informarlo di che cosa ildisegno deve trasmettere al lettore egrave molto piugrave facile farlo con lo scrittoche con il disegno

Tuttavia quelli di noi che devono produrre documenti scientifici conun certa dose di grafici diagrammi e pittogrammi egrave bene che imparinoqueste linee guida (compreso il fatto che le linee guida possono anche nonessere rispettate se lo si fa con cognizione di causa) Esistono delle normeUNI [48] che danno altre linee guida (non necessariamente in contrastocon quelle qui esposte forse solo esposte con parole diverse) che chi deveprodurre disegni tecnici dovrebbe sempre osservare Debbo dire che gliesempi riportati nella versione cartacea di queste norme sono bellissimie per quello che si puograve dire dal risultato visivo sembrano perfettamentecoerenti con le linee guida qui esposte

Egrave bene sottolineare che le norme di disegno statunitensi sono moltodiverse da quelle europee un disegno fatto seguendo quelle norme sidistingue a colpo drsquoocchio per altro si distingue a colpo drsquoocchio anche undisegno costruito senza seguire nessuna norma di solito il risultato non egraveaffatto bello

Capitolo 8

LATEX lrsquoimportazionedi figure esterne

81 IntroduzioneCome accennato nel capitolo precedente capita di dover importare disegni oimmagini prodotte con strumenti esterni Per quel che riguarda i disegni al trattosi egrave giagrave spiegato quali vantaggi ci siano ad usare i programmi di disegno natividel sistema TEX Tuttavia puograve succedere di dover importare disegni o immaginiprodotti allrsquoesterno

Qui ci concentreremo sulle immagini sostanzialmente le fotografie o altridisegni a mezze tinte non ottenibili da un semplice programma specializzato peresempio nel tracciare diagrammi a due o a tre dimensioni

Il pacchetto pgf gestisce anche lrsquoimportazione delle immagini esterne malo strumento principe per operare in questa direzione egrave senzrsquoaltro il pacchettographicx che da anni costituisce lrsquointerfaccia di riferimento

Prima perograve di addentrarci nellrsquouso di quel pacchetto bisogna fermarsi unattimo per meditare sulla moltitudine di formati grafici che rendono le cose menosemplici di quanto potrebbero essere

82 I formati graficiI formati grafici si distinguono sostanzialmente in formati vettoriali e in formatia matrici di pixel Essi hanno caratteristiche diverse e per certe applicazionivanno meglio i primi mentre per certe altre vanno meglio i secondi

821 I formati vettorialiI formati vettoriali sono descritti sostanzialmente mediante una specie di pro-gramma che contiene le istruzioni per tracciare i contorni delle aree dove il coloreegrave sostanzialmente costante questi contorni sono costituiti dalla conoscenza delleserie di punti per i quali devono passare le curve di Beacutezier che li descrivono Questiformati sono usatissimi per tracciare anche quei particolari disegni costituiti daicaratteri dei vari font questi infatti devono potersi disegnare rapidamente maspecialmente se devono essere presentati sullo schermo devono essere scalabili a

141

142 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

piacere senza che lrsquoingrandimento o il rimpicciolimento producano difetti degnidi nota

Egrave chiaro che se il disegno egrave costituito dai contorni delle aree dello stessocolore il problema del cambiamento di scala ha una soluzione banale in quantobasta moltiplicare le coordinate dei punti che descrivono il contorno per ilfattore di scala per il resto non cambia praticamente nulla In realtagrave quando sirimpicciolisce un disegno che contiene delle linee sottili queste diventano ancorapiugrave sottili e per esempio sullo schermo che ha una densitagrave di puntini luminosiabbastanza bassa da 70 a 100 puntini al pollice queste linee diventerebberotroppo sottili per essere rappresentate lrsquoalgoritmo di rappresentazione devecontenere quindi dei suggerimenti (hints) per produrre un effetto finale che nonlasci sparire le linee troppo sottili

In questo testo lrsquoargomento diventerebbe troppo tecnico e non si insisteoltre tuttavia vale la pena di ricordare che i formati grafici vettoriali piugrave notie frequenti sono il formato PostScript (estensione del file ps) e il suo parentestretto Encapsulated PostScript (estensione eps) oggi sta diventando semprepiugrave frequente il formato Scalable Vector Graphics (estensione svg) usatospecialmente per le applicazioni Web

Crsquoegrave anche il formato di uscita del programma METAPOST che partendoda un file sorgente simile a quanto si potrebbe scrivere con il programma dicreazione dei font creato da Donald E Knuth produce unrsquouscita in una speciedi linguaggio PostScript ridotto e semplificato Il programma egrave molto utile perprodurre disegni al tratto che vanno dai disegni ai diagrammi ma lrsquounico difettoegrave che il linguaggio non egrave dei piugrave semplici e quindi il programma egrave poco usatocomunque meno di quanto meriterebbe

A stretto rigore il formato Portable Document Format (estensione pdf)sarebbe un formato vettoriale e sotto molti aspetti lo egrave Tuttavia il file egrave unfile con il codice compresso (zippato secondo una diffusa terminologia) mail file decompresso egrave sostanzialmente un sotto insieme del formato PostScriptquindi sostanzialmente vettoriale Il suo tipo di compressione richiede programmispeciali per la visualizzazione e stampa destinati specialmente a rendere lapagina sotto forma grafica

822 I formati diversi da quelli vettorialiLe fotografie sono oggi piugrave spesso di ieri in formato JPEG (estensione jpg)Tuttavia i formati di matrici di pixel sono diffusissimi e le estensioni vannoda bmp a wmf da tiff a gif e a Portable Network Graphics (estensionepng) questa egrave solo una piccola elencazione di formati grafici percheacute esistonodei formati specifici per certi particolari apparecchi fotografici digitali o per certicodici di colore

Il vantaggio dei formati a matrici di pixel egrave che i programmi per la loropresentazione sono particolarmente rapidi a produrli in forma visibile per gliumani Tuttavia hanno un paio di difetti tuttrsquoaltro che trascurabili

Il primo difetto egrave che unrsquoimmagine di pochi pixel non puograve essere ingrandita suunrsquoarea che contenga piugrave pixel percheacute essa non contiene abbastanza informazioneper colorare correttamente i pixel della riproduzione Unrsquoimmagine quadrata di100 pixel per 100 pixel puograve essere rappresentata abbastanza bene sullo schermodi un PC ed appariragrave unrsquoimmagine di circa 30mm per 30mm Se si vuol vederea pieno schermo la stessa immagine cioegrave su unrsquoarea di 800 pixel per 640 pixel si

82 I FORMATI GRAFICI 143

capisce bene che il meglio che si possa fare egrave di rappresentare i pixel dellrsquoimmaginecome quadrati di circa 8 pixel per 8 pixel cioegrave sgranando lrsquoimmagine cosiccheacuteappare come un mosaico di quadrati tuttrsquoaltro che piccoli con la conseguenzache i contorni non sono piugrave nitidi La situazione peggiora notevolmente sullacarta dove il quadrato di 100 pixel per 100 pixel copre un quadratino di circa8mm per 8mm stampando con una stampante con una densitagrave di 300 puntini alpollice e di circa 4mm per 4mm stampando a 600 puntini al pollice se si volesseingrandire lrsquoimmagine come la si vede sullo schermo lrsquoeffetto mosaico sarebbetalmente importante che difficilmente si riuscirebbe a riconoscere lrsquoimmagine

Egrave vero esistono programmi che consentono di eseguire un filtraggio bidi-mensionale in modo da ridurre lrsquoeffetto mosaico ma questo si paga con unaminore definizione dei contorni cosa che spesso rappresenta il male minoretenuto conto della poca informazione contenuta nel file di partenza non si pensidi ottenere quei meravigliosi effetti che vengono mostrati in televisione dove lapolizia scientifica ingrandisce le immagini delle videocamere di videosorveglianza(che notoriamente riprendono le immagini con una definizione piuttosto bassa)fino a leggere numeri di targa o a riconoscere i lineamenti del colpevole

La situazione egrave un poco migliore se si vuole ridurre lrsquoimmagine su unrsquoareache contenga un porsquo meno pixel ma il tutto egrave affidato alla qualitagrave del tipo dirappresentazione o di stampa Conclusione si preferiscano sempre i formativettoriali che possono essere ingranditi e rimpiccioliti a piacere Tuttavia talvoltaldquobisogna fare di necessitagrave virtugraverdquo

Se a questo si aggiunge il secondo inconveniente dovuto al fatto che alcuniformati sono compressi in una maniera che sfrutta la ridondanza delle immaginici si rende conto che un simile metodo perde parte dellrsquoinformazione e quando ilfile viene decompresso per la resa dellrsquoimmagine su schermo o su carta appaionodegli artefatti che derivano dallrsquoimpossibilitagrave di comprimere il file in mododecisivo senza perdere parte dellrsquoinformazione che lrsquoimmagine contiene Se sitratta di una fotografia con colori sfumati e senza contorni netti questo disturbosi nota poco ma se si trattasse di un disegno al tratto la resa potrebbe essereinaccettabile

Per le fotografie il formato jpg va abbastanza bene ma puograve variare notevol-mente da una fotografia allrsquoaltra Per i disegni al tratto se non fosse possibileavere dei disegni in formato vettoriale allora il formato piugrave adeguato sarebbequello con estensione png

In ogni caso fra i formati di questo paragrafo quello di gran lunga preferibilesarebbe il formato pdf almeno nelle circostanze in cui il file PDF egrave statocomposto senza perdere la natura vettoriale del disegno di partenza

Tanto per rendere piugrave visibile il fenomeno appena descritto la figura 81mostra due diagrammi ottenuti con Excel e salvati uno in formato PNG e lrsquoaltroin formato PDF Per entrambi si egrave ingrandito di circa 10 volte il quadratinoevidenziato sulla parte di sinistra Come si vede lrsquoeffetto di quantizzazionenella figura in formato PNG rende lrsquoingrandimento assolutamente irriconoscibilementre lrsquoingrandimento della figura vettoriale in formato PDF egrave perfetto e sidistinguono persino i puntini sui quali Excel ha interpolato la curva

144 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

Figura 1 Una immagine png (bitmapped) e un suo dettaglio ingrandito di 10 volte conil formato jpg la situazione sarebbe ancora peggiore

Figura 1 Una immagine png (bitmapped) e un dettaglio ingrandito di 10 volte

Figura 2 Una immagine pdf (vettoriale) e un dettaglio ingrandito di 10 volte

Raccomandazioni analoghe si applicano agli spessori delle linee che formano ildisegno al tratto se in partenza queste linee sono sottili ma appaiono gradevoli sulloschermo quando si compone il disegno esse possono apparire invisibili quando sonorimpicciolite insieme al disegno per stamparle su carta

Anche le tonalita di grigio vanno dosate con cura se si usano delle tonalita digrigio per evidenziare alcune parti del disegno e importante che questo grigio non siatroppo chiaro perche altrimenti a stampa potrebbe risultare praticamente bianco netroppo scuro altrimenti apparirebbe praticamente nero Se possibile sarebbe meglioservirsi di retinature (tratteggio puntini trattini eccetera) piuttosto che tonalita digrigio Nelle fotografie il discorso e diverso perche le mezze tinte cioe le sfumaturedi grigio consentono di stampare le fotografie abbastanza bene se presso la tipografiaviene regolato bene il livello di contrasto

Inoltre se le risposte sono da scegliere fra 5 figurine al fine di consentire la permuta-zione delle risposte e indispensabile che queste figurine non siano identificate da letterema dalle cifre 1 2 3 4 e 5 Se per esempio il file grafico paperinopdf contiene siala figura principale sia le cinque figurine delle risposte come nella figura 3 allora ilquesito puo essere formulato in questo modo

7

Figura 2 Una immagine pdf (vettoriale) e un suo dettaglio ingrandito di 10 volte

in verticale bisogna quindi stare molto attenti quando si usa il programma di disegnoperche questo potrebbe indurre a valutare male le dimensioni del disegno effettivo percui lrsquoeventuale eccessivo scalamento porterebbe molto spesso a rimpicciolire i caratterifino a renderli illeggibili

Raccomandazioni analoghe si applicano agli spessori delle linee che formano ildisegno al tratto se in partenza queste linee sono sottili ma appaiono gradevoli sulloschermo quando si compone il disegno esse possono apparire invisibili quando sonorimpicciolite insieme al disegno per stamparle su carta

Anche le tonalita di grigio vanno dosate con cura se si usano delle tonalita digrigio per evidenziare alcune parti del disegno e importante che questo grigio non siatroppo chiaro perche altrimenti a stampa potrebbe risultare praticamente bianco netroppo scuro altrimenti apparirebbe praticamente nero Se possibile sarebbe meglioservirsi di retinature (tratteggio puntini trattini eccetera) piuttosto che tonalita digrigio Nelle fotografie il discorso e diverso perche le mezze tinte cioe le sfumaturedi grigio consentono di stampare le fotografie abbastanza bene se presso la tipografia

9

(a)

Figura 1 Una immagine png (bitmapped) e un suo dettaglio ingrandito di 10 volte conil formato jpg la situazione sarebbe ancora peggiore

Figura 1 Una immagine png (bitmapped) e un dettaglio ingrandito di 10 volte

Figura 2 Una immagine pdf (vettoriale) e un dettaglio ingrandito di 10 volte

Raccomandazioni analoghe si applicano agli spessori delle linee che formano ildisegno al tratto se in partenza queste linee sono sottili ma appaiono gradevoli sulloschermo quando si compone il disegno esse possono apparire invisibili quando sonorimpicciolite insieme al disegno per stamparle su carta

Anche le tonalita di grigio vanno dosate con cura se si usano delle tonalita digrigio per evidenziare alcune parti del disegno e importante che questo grigio non siatroppo chiaro perche altrimenti a stampa potrebbe risultare praticamente bianco netroppo scuro altrimenti apparirebbe praticamente nero Se possibile sarebbe meglioservirsi di retinature (tratteggio puntini trattini eccetera) piuttosto che tonalita digrigio Nelle fotografie il discorso e diverso perche le mezze tinte cioe le sfumaturedi grigio consentono di stampare le fotografie abbastanza bene se presso la tipografiaviene regolato bene il livello di contrasto

Inoltre se le risposte sono da scegliere fra 5 figurine al fine di consentire la permuta-zione delle risposte e indispensabile che queste figurine non siano identificate da letterema dalle cifre 1 2 3 4 e 5 Se per esempio il file grafico paperinopdf contiene siala figura principale sia le cinque figurine delle risposte come nella figura 3 allora ilquesito puo essere formulato in questo modo

7

Figura 2 Una immagine pdf (vettoriale) e un suo dettaglio ingrandito di 10 volte

in verticale bisogna quindi stare molto attenti quando si usa il programma di disegnoperche questo potrebbe indurre a valutare male le dimensioni del disegno effettivo percui lrsquoeventuale eccessivo scalamento porterebbe molto spesso a rimpicciolire i caratterifino a renderli illeggibili

Raccomandazioni analoghe si applicano agli spessori delle linee che formano ildisegno al tratto se in partenza queste linee sono sottili ma appaiono gradevoli sulloschermo quando si compone il disegno esse possono apparire invisibili quando sonorimpicciolite insieme al disegno per stamparle su carta

Anche le tonalita di grigio vanno dosate con cura se si usano delle tonalita digrigio per evidenziare alcune parti del disegno e importante che questo grigio non siatroppo chiaro perche altrimenti a stampa potrebbe risultare praticamente bianco netroppo scuro altrimenti apparirebbe praticamente nero Se possibile sarebbe meglioservirsi di retinature (tratteggio puntini trattini eccetera) piuttosto che tonalita digrigio Nelle fotografie il discorso e diverso perche le mezze tinte cioe le sfumaturedi grigio consentono di stampare le fotografie abbastanza bene se presso la tipografia

9

(b)

CBeccari ndash picture Microsoft Excel Mac OS X Preview

Figura 81 Confronto sugli effetti dellrsquoingrandimento su due figure simili (a)Immagine in formato bitmapped PNG (b) in formato vettoriale PDF la parteingrandita a destra corrisponde al riquadro evidenziato nella parte di sinistra

83 I formati accettabili a seconda del program-ma di composizione

A seconda che si usi LATEX o pdfLATEX alcuni formati sono accettabili e altrino Peccato Il solo formato accettabile da tutti sarebbe il formato di uscita diMETAPOST Ma anche per questo ci vuole un poco di maquillage Lrsquoestensionedel nome di questi file egrave costituita da un numero progressivo per esempio 008percheacute si trattava dellrsquoottavo disegno in uscita dallrsquoelaborazione dello stessofile sorgente Questa estensione egrave accettabile da LATEX ma non egrave accettabile dapdfLATEX Perciograve egrave necessario cambiare lrsquoestensione di tutti i file di uscita daMETAPOST aggiungendo lrsquoestensione mps o meglio cambiandone il nome peresempio da mypicture008 a mypicture-008mps Ciograve fatto la cosa va bene sia

83 I FORMATI ACCETTABILI 145

per LATEX sia per pdfLATEX ma oltre al modo manuale esiste dalla versione1000 di METAPOST un modo che sfrutta un meccanismo di denominazione deifile per modelli

Un modello di nome egrave una stringa racchiusa tra doppi apici che include codicisegnaposto tra cui j per il nome del file sorgente e 3c per il numero di figuracon formato fisso a tre caratteri Otteniamo quindi lo stesso effetto descrittodellrsquoesempio precedente scrivendo lrsquoistruzione di preambolo del file sorgente mp1

outputtemplate = j-3cmps

Una alternativa legata allrsquouso del pacchetto graphicx potrebbe essere quelladi definire una nuova regola di elaborazione dei file grafici se si usa pdfLATEX sipuograve usare il comando DeclareGraphicsRule e specificare nel preambolo

DeclareGraphicsRulemps

Con questo si dichiara che qualunque altro formato (asterisco) diverso da quelliper i quali esiste una apposita regola debba venire trattato come un file ottenutoda METAPOST Questo egrave un escamotage che presenta qualche inconveniente mase si egrave sicuri di usare solo file ottenuti da METAPOST non dovrebbe presentarsinessun problema

Tuttavia bisogna stare attenti a tutti gli altri formati secondo quanto dettoqui di seguito

831 I formati accettabili da latexlatex di per seacute non accetta nessun formato grafico sono i driver DVI che accettanoquesto o quel formato Il driver dvips accetta solo i formati vettoriali quindioltre allrsquouscita di METAPOST esso accetta solo i formati eps e ps il formatoEncapsulated egrave preferibile rispetto al formato PostScript percheacute sicuramentenon contiene comandi PostScript che risultano incompatibili con lrsquoinserimentodelle figure allrsquointerno di unrsquoaltra pagina PostScript Bencheacute il formato possaessere vettoriale dvips non accetta assolutamente il formato pdf

Invece il driver dvipdfm accetta sia il formato drsquouscita del programma ME

TAPOST sia i formati vettoriali PostScript eps (preferibilmente) e ps sia iformati pdf jpg e png Per questi ultimi necessita di file ausiliari che contenga-no le dimensioni del rettangolo tangente (bounding box) ma la distribuzione delpacchetto contiene anche un programmino ebb che estrae queste informazioni e letrascrive in file adeguati per lrsquouso che dvipdfm ne deve fare Per i file PostScriptin formato eps e ps esso ricorre automaticamente al processo di conversioneattraverso lrsquoinvocazione del programma gs per ottenerne la versione pdf Questoricorso al programma esterno egrave necessario percheacute dvipdfm egrave capace di interpretarecodice PostScript sufficientemente semplice (per esempio quello contenuto nel filedi uscita di METAPOST) ma non egrave in grado di interpretare codice PostScriptarbitrariamente complesso Questo egrave il motivo per il quale dvipdfm non egrave ingrado di trattare file DVI che contengano le istruzioni PostScript generate dalpacchetto PSTricks

1Il comando METAPOST outputtemplate ha sostituito dalla versione 1200 il comandofilenametemplate che quindi oggi egrave classificata come deprecata Notizie complete sui codicisegnaposto si trovano nel manuale a cui si rimanda

146 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

Metodo di compilazione Ingombro in bytepdftex 2 283 510tex + dvipdfm 2 269 821tex + dvipdfmx 2 007 012tex + dvips + ps2pdf 3 485 081

Tabella 81 Dimensioni in byte dei file PDF ottenuti compilando il TEXbookcon diversi metodi

Si segnala lrsquoesistenza del programma dvipdfmx unrsquoestensione di dvipdfmche dovrebbe presentare una maggiore funzionalitagrave Unito ad altri pacchetti diestensione come per esempio pdfcomment consente di creare le annotazioni unacaratteristica del formato PDF che non sarebbe nativamente realizzabile con ilsemplice latex Tuttavia salvo alcune limitazioni importanti come lrsquoimpossibilitagravedi convertire direttamente file che contengano codice PostScript avanzato comequando si usa PSTricks sembra che questo programma esteso sia il piugrave efficacenel trasformare un file DVI nel corrispondente file PDF in termini di ingombroid memoria

A questo proposito merita di segnalare una tabellina qui riprodotta in modosemplificato generata da Peacuteter Szaboacute e pubblicata negli atti della EuroTEXConference del 2009 dove sono riportati gli ingombri in byte dei file PDF ottenuticon diversi procedimenti tabella 81

832 I formati accettabili da pdflatexpdfLATEX oltre al formato di uscita di METAPOST e al formato pdf per ovvimotivi di compatibilitagrave accetta in entrata anche i formati jpg e png Laversione distribuita con TEX Live a partire dal 2009 egrave stata estesa per convertireautomaticamente il formato eps in formato pdf O meglio quella distribuzionedi TEX Live contiene un comodo pacchetto di conversione epspdfconversion2

che agisce dietro le quinte e sfrutta la capacitagrave dellrsquointerprete pdftex di eseguiredei comandi di sistema3 La figura 82 contiene infatti lrsquoinclusione del file graficotigereps che fa parte dei file di esempio della distribuzione di GhostScriptconvertito al volo durante lrsquoesecuzione del programma pdflatex con cui egrave statocomposto questo documento Durante lrsquoesecuzione si osserva una breve pausauna tantum durante la quale lrsquointerprete pdftex si ferma un istante per lanciareun programma di sistema per convertire il formato eps dellrsquoimmagine nelformato pdf Questa operazione egrave eseguita una tantum nel senso che se il fileconvertito esiste giagrave lrsquointerprete incorpora lrsquoimmagine convertita direttamentese perograve lrsquoimmagine eps egrave stata aggiornata con una versione piugrave recente laconversione viene eseguita di nuovo I comandi per generare la figura 824 sono iseguenti

2Vedi anche il pacchetto epstopdf da non confondere con il programma epstopdf che fa piugraveo meno le stesse cose anzi epspdfconversion si appoggia direttamente al pacchetto epstopdf

3Questo egrave possibile se lrsquointerprete egrave abilitato allrsquoesecuzione dei programmi attraverso ilcomando write18 nel file log nelle prime righe egrave evidenziato se lrsquointerprete egrave in grado dieseguire questa operazione Se non lo fosse basta aggiungere lrsquoopportuna opzione alla linea dicomando Si veda la pagina 302 per i dettagli

4La figura tigereps viene distribuita insieme al programma gs

83 I FORMATI ACCETTABILI 147

Figura 82 Inclusione del file tigereps da parte di pdflatex tramite il pacchettoepspdfconversion

beginfigurecenteringincludegraphics[width=7textwidth]tigerepscaptionInclusione del file texttttigereps da parte di

progpdflatex tramite il pacchetto packepspdfconversionlabelfigtigerendfigure

Ovviamente nel preambolo egrave stato invocato il pacchetto epspdfconversionmediante il solito comando

usepackageepspdfconversion

Se perograve si sta usando la distribuzione del 2010 di TEX Live non crsquoegrave bisogno dicaricare nessun pacchetto il programma si comporta nello stesso modo descrittosopra per la versione del 2009 ma lo fa automaticamente grazie al fatto che lacapacitagrave di eseguire comandi esterni mediante egrave sempre attivata una versioneprotetta del comando write18 questa versione protetta consente di usareldquoindiscriminatamenterdquo alcuni comandi del sistema TEX non qualunque comandodel sistema operativo A partire dalla distribuzione del 2010 quindi si puograveconsiderare che anche il formato eps possa essere considerato standard

Si noti perograve che il formato eps non egrave nativo per il programma pdflatex perciogravese si usa il pacchetto epspdfconversion contrariamente a quanto si egrave consigliatoaltrove in questo caso egrave molto opportuno specificare lrsquoestensione eps il motivoegrave spiegato diffusamente nella documentazione sia del pacchetto epspdfconversionsia di epstopdf Ma se si usa la versione 2010 della distribuzione di TEX Livenon egrave necessario specificare lrsquoestensione

148 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

I formati PostScript grazie al loro indubbio vantaggio di essere vettoriali sonoora accettabili da pdfLATEX ma non lo erano con le precedenti versioni di questoprogramma Conviene ripetere che dalla versione 2010 il sistema TEX egrave in gradodi convertire automaticamente i file eps nei corrispondenti file pdf mediantelrsquouso protetto del comando write18 che ricorre al comando di sistema epstopdf

84 Conversione dei formatiCi troviamo forse in un vicolo cieco Per fortuna no Basta poter convertire da unformato allrsquoaltro Esistono diversi programmi per farlo e qui se ne elencano alcunila maggior parte sono disponibili per tutte le piattaforme Per altro servendosidella distribuzione 2010 di TEX Live molte delle conversioni elencate qui sottodiventano superflue quando si usi pdflatex esse restano necessarie quando sidebbano includere figure per esempio in formato bmp o in altri formati derivantida macchine fotografiche particolari o da sistemi operativi diversi da quello colquale si sta lavorando

ghostscript e meglio ancora la sua interfaccia grafica ghostview (conosciuta anchecol nome gview) permettono di trasformare una immagine ps oppure epsin immagine pdf e viceversa Allrsquooccorrenza il programma egrave capace ditrasformare un file ps in un file eps assicurando che il file finale noncontenga istruzioni PostScript incompatibili con la possibilitagrave di inclusionein un altro file

epstopdf epspdf e ps2pdf o altri simili applicativi da linea di comando eseguonole analoghe trasformazioni senza interfaccia grafica spesso hanno il van-taggio di corredare il file di uscita dellrsquoinformazione corretta in merito allsquobounding boxrsquo cioegrave alle dimensioni del rettangolo circoscritto allrsquoimmagineeffettiva Con la distribuzione 2010 di TEX Live non egrave necessario ricorrere aprogrammi esterni nel senso che ci pensa direttamente pdflatex a eseguirela conversione senza che lrsquoutente debba preoccuparsene Facendo uso delpacchetto epspdfconversion egrave possibile lanciare lrsquoapplicativo di conversioneepspdf direttamente durante lrsquoesecuzione del programma di compilazioneaffincheacute ciograve sia possibile egrave necessario che il programma di compilazione siaabilitato con lrsquoopzione della linea di comando ndashshell-escape che consentedi eseguire programmi esterni Come giagrave detto altrove questa egrave una praticapossibile ma che apre una lsquoportarsquo a possibili attacchi lsquoviralirsquo per cui sene egrave sconsigliato lrsquouso ovviamente in un contesto adeguatamente protettoquesto pericolo non si pone o il rischio che si corre egrave estremamente modestoBisogna ricordare che la conversione dal formato eps al formato pdfspesso non comporta lrsquoinclusione dei font eventualmente usati nel file dipartenza questo fatto puograve portare a certi inconvenienti quando il filepdf viene incorporato in un file principale che verragrave letto su unrsquoaltramacchina che non dispone degli stessi font oppure rende il file principaleincompatibile con il formato archiviabile (vedi il capitolo 21

eps2pdf egrave una interfaccia grafica disponibile solo per macchine Windows cheesegue sostanzialmente lo stesso tipo di trasformazione di epstopdf ma conil vantaggio dellrsquointerfaccia grafica

84 CONVERSIONE DEI FORMATI 149

eps2png e eps2jpg sono programmi da linea di comando per macchine LinuxUNIX trasformano le immagini vettoriali in formato eps in immaginia matrici di punti diversamente compresse nei formati png oppure jpgIn generale sarebbe desiderabile evitare questi tipi di conversione ma egraveopportuno limitarsi alle conversioni eseguibili con programmi descritti neipunti precedenti che conservano la qualitagrave vettoriale dellrsquoimmagine Tutta-via in vista di produrre file archiviabili talvolta questa potrebbe essereuna soluzione per trasformare file pdf incompatibili con lrsquoarchiviabilitagravein file compatibili in quanto i ldquodisegnirdquo dei font vengono trasformati inldquodisegnirdquo a matrici di pixel certo se sulla macchina dove si esegue la tra-sformazione mancano i font scalabili anche questo tipo di trasformazionediventa inutile

pdftops esegue da linea di comando la conversione dal formato pdf al for-mato ps Anche se il formato pdf egrave sempre da preferire talvolta puograverendersi necessario ricorrere a questo tipo di trasformazione

jpegtops trasforma un file jpg in formato eps Si tratta di un applicativoda linea di comando Assicura che il bounding box sia specificato corret-tamente In realtagrave questo programma si limita ad avviluppare il codicecompresso dellrsquoimmagine a matrice di pixel dentro un involucro PostScriptche contiene lrsquoinformazione corretta del lsquobounding boxrsquo ma per il resto silimita a definire dove inizia e dove finisce il codice dellrsquoimmagine compressa

mptopdf esegue la trasformazione di un file prodotto con METAPOST in unfile pdf Questa trasformazione in effetti non sarebbe necessaria se sidispone di un sistema TEX moderno e completo tuttavia se si dovessemandare la figura a qualcun altro di cui non si conoscono le dotazioniinformatiche egrave meglio mandargliela in formato PDF piuttosto che nelformato di uscita di METAPOST percheacute il destinatario potrebbe non averefamiliaritagrave con questo formato oppure potrebbe mancare del softwarenecessario per visualizzarla o per includerla nei suoi documentiVale la pena di segnalare che lo shell editor dei sistemi Mac OS X TEXShopconsente anche di eseguire la compilazione di un file METAPOST manon si limita ad ottenere il file in codice PostScript bensigrave provvede adeseguire direttamente il programma mptopdf cosiccheacute il risultato finale egravedirettamente il file PDF contenente il disegno perfettamente ritagliato alrettangolo tangente Anche alcuni altri shell editor certamente lo sharewareWinEdt per macchine Windows consentono di eseguire la compilazionedei disegni METAPOST forse qualcuno consente anche la trasformazioneautomatica nel formato PDF

Paint e i programmi simili aprono i file bitmapped e li trasformano in qualun-que altro file a matrici di pixel sia png sia jpg quindi per gli altriformati bitmapped non dovrebbero esserci problemi per ottenere formaticompatibili con i programmi di nostro interesse

gimp si trova per tutte le piattaforme egrave un formidabile programma di editinggrafico che permette di eseguire tutte le trasformazioni dellrsquoimmagine ela loro conversione in un qualunque formato a matrici di pixel riesce afarlo anche con input vettoriali ma salva solo in formati a matrici di pixel

150 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

Egrave un programma fortemente consigliabile per chiunque e su qualunquepiattaforma Sarebbe perograve consigliabile non usarlo per convertire formativettoriali in formati a matrici di pixel limitandosi alle altre trasformazionie allrsquoediting degli altri formati

ImageMagik egrave un altro noto programma di editing grafico esso mette a disposi-zione dellrsquoutente il comando convert che permette di eseguire rapidamentela conversione da un formato grafico allrsquoaltro viene consigliato (ed effettiva-mente viene installato automaticamente insieme alla distribuzione MacTEXdel sistema TEX sulle macchine Macintosh) e per esempio viene suggeritodi definire la regola grafica

DeclareGraphicsRuletifpngpnglsquoconvert 1 lsquobasename 1 tiflsquopng

per convertire le immagini tif in immagini png Questo metodo inrealtagrave puograve venire usato su qualunque piattaforma e richiede lrsquoabilitazio-ne allrsquoesecuzione di programmi esterni mediante lrsquoopzione della linea dicomando ndashshell-escape della cui lsquopericolositagraversquo si egrave giagrave parlato

GraphicConverter egrave un programma shareware per il sistema operativo Mac OSX svolge piugrave o meno le stesse funzioni di ImageMagik se si paga il prezzodel prodotto le prestazioni aumentano considerevolmente Il numero diformati in ingresso e in uscita sembra essere molto piugrave grande di quello delprogramma concorrente e per gli utenti di Mac OS X coinvolti in lavori chefanno uso di immagini dai formati molto eterogenei puograve essere la soluzionegiusta

85 Scontornare le immaginiUn aspetto che si dimentica troppo spesso egrave quello di scontornare le immaginiLATEX lascia da solo gli spazi bianchi necessari attorno alle immagini se questea loro volta contengono altri spazi bianchi nel loro contorno nel documentocomposto risulteragrave esserci alla fine troppo spazio bianco Non egrave semplice poterscontornare le immagini specialmente se ci si vuole attenere a programmifreeware

gimp consente di scontornare e di correggere qualunque formato grafico mapermette di salvare solo nei formati a matrici di pixel non egrave quindi il casodi servirsi di gimp per scontornare immagini vettoriali

gview permette di correggere il bounding box cosiccheacute di fatto si scontornalrsquoimmagine In ogni caso questo programma permette di visualizzare sulloschermo il rettangolo tangente cosiccheacute diventa facile spostare il cursorea croce sul vertice inferiore sinistro e successivamente sul vertice supe-riore destro per rilevare nellrsquoapposito spazio della cornice inferiore delprogramma le coordinate di questi due vertici queste coordinate potrannoessere usate come quelle del lsquobounding boxrsquo quando si usa il comandoincludegraphics per includere lrsquoimmagine

86 LrsquoIMPORTAZIONE DELLE IMMAGINI 151

Adobe Acrobat non egrave freeware ma permette di eseguire numerose azioni sui filee sulle immagini in formato PDF Si possono per esempio estrarre dellepagine contenenti immagini da un file PDF e poi si possono estrarre scon-tornandole solo le immagini che interessano andando a filo dellrsquoimmaginecon una comoda interfaccia grafica Egrave possibile anche estrarre immagini informato PostScript Lrsquounico difetto potrebbe essere il costo visto che ilprogramma egrave commerciale il programma gratuito Adobe Reader permettedi eseguire solamente la lettura ma non consente nessuna operazione diediting grafico

Preview egrave un applicativo del sistema operativo Mac OS X5 serve a molte funzioniin particolare per visualizzare i file PDF e JPEG fra le operazioni che riescea fare su questi file crsquoegrave anche lrsquooperazione di cropping cioegrave di scontornare leimmagini mediante una comoda interfaccia grafica Ovviamente egrave usabilesolo con quel sistema operativo

pdfcrop egrave un programma (o uno script a seconda della piattaforma) che permettedi scontornare molto bene le immagini in formato PDF esso egrave distribuitocon il sistema TEX quindi egrave giagrave disponibile sulla piattaforma di lavoro enon egrave necessario ricorrere ad installazioni particolari

Ma non tutto egrave perduto se non si riesce a scontornare con programmi adeguatisi puograve sempre operare dallrsquointerno di LATEX o pdfLATEX

86 Lrsquoimportazione delle immaginiSe il lettore non si egrave scoraggiato con queste (apparenti) difficoltagrave e ha giagrave(allrsquooccorrenza) convertito i formati delle immagini in uno dei formati consentitie le ha giagrave scontornate allora puograve procedere con lrsquoeffettiva importazione delleimmagini

Basta richiamare il pacchetto graphicx con il solito comando

usepackagegraphicx

e usarne i comandi e le opzioni in modo correttoNel momento i cui si deve importare una figura esterna (della quale si assume

di avere il file nel formato corretto in relazione al programma usato) basta usarecon la seguente sintassi il comando includegraphics (generalmente ma nonnecessariamente allrsquointerno dellrsquoambiente figure)

includegraphics[〈lista delle chiavi〉]〈file〉

Il 〈file〉 egrave il nome del file contenente lrsquoimmagine senza che ne venga specificatalrsquoestensione se il formato giusto esiste LATEX o pdfLATEX importa la figura se ilformato giusto non esiste emette un messaggio di errore e consente di proseguireevidentemente senza importare nulla Se si specifica lrsquoestensione (magari errata)LATEX o pdfLATEX cerca solo quel file e non esplora la situazione possibile conaltre estensioni e si lamenta con minacciosi messaggi di errore

Se invece egrave stata definita una regola grafica per esempio quella mostrata perconvertire le immagini dal formato tif al formato png allora la prima volta

5Nella versione italiana di Mac OS X questo programma si chiama Anteprima

152 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

che si esegue la compilazione viene ricercata anche lrsquoestensione da convertireviene eseguita la conversione e viene usato il file convertito nelle eventualicompilazioni successive il programma trova direttamente il file nel formato giustoe non ha piugrave bisogno di eseguire nessuna conversione

Vale la pena di esporre un dettaglio organizzativo per la gestione delle figurenon ci sono problemi se i file che le contengono sono nella stessa cartella delfile sorgente da comporre tuttavia questo modo di procedere egrave disordinato ealla fine la cartella contiene tante cose disparate e non si riesce piugrave a gestire Lasoluzione egrave quella di dedicarecreare una sotto cartella dove custodire le immaginie solo loro Supponendo di scrivere un libro su Paperino Topolino e Plutoprobabilmente il file sorgente si troveragrave nella cartella PTP in questa cartellasi trova la sottocartella foto (se non crsquoegrave la creiamo) in questa sottocartellasi trova la fotografia Topolinojpg Allora questa foto puograve essere inclusa peresempio specificando il percorso relativo per raggiungerla

includegraphicsfotoTopolino

Piugrave comodo e meno suscettibile di errori egrave invece il procedimento di specificareil percorso (relativo alla cartella dove si trova il file sorgente) dellrsquounica o dellevarie cartelle dove si trovano le immagini mediante il comando graphicspathcon la seguente sintassi

graphicspath〈path1〉〈path2〉 〈pathn〉

dove egrave opportuno notare le parentesi graffe esterne che racchiudono le coppie digraffe interne ognuna delle quali specifica un diverso percorso I comandi

graphicspathfotoincludegraphicsTopolino

permettono di includere la foto di Topolino senza bisogno di specificarne il per-corso Se le immagini relative a Paperino si trovassero in in unrsquoaltra sottocartellaper esempio fotoPaP allora basterebbe specificare

graphicspathfotofotoPaP

per avere accessibili entrambe le sottocartelle senza bisogno di specificarle perogni inclusione6

La 〈lista delle chiavi〉 egrave costituita da una serie di dichiarazioni separateda virgole e scritte nella forma lsquochiave = valorersquo Se la chiave rappresenta unaaffermazione booleana non egrave necessario specificarne il valore lsquotruersquo ma quandolo si vuole usare egrave necessario specificarne il valore lsquofalsersquo

Qui non si esporranno tutte le opzioni disponibili ci si limiteragrave a descriverequelle piugrave comunemente usate almeno secondo lrsquoesperienza dello scrivente sirimanda il lettore alla documentazione del pacchetto per avere maggiori dettaglie per le altre opzioni

6In veritagrave sarebbe possibile specificare anche dei percorsi assoluti invece che relativi allacartella del file principale tuttavia qui si consiglia di evitare questa possibilitagrave anche especialmente se il documento deve essere composto a piugrave mani su macchine diverse consistemi operativi diversi in queste condizioni egrave preferibile evitare qualunque specificazione chesia dipendente dalla particolare macchina e dal particolare sistema operativo La portabilitagravedei file tex egrave una delle caratteristiche del sistema TEX e sarebbe quanto mai inopportunoinficiare questa particolaritagrave

86 LrsquoIMPORTAZIONE DELLE IMMAGINI 153

bb Serve per specificare il rettangolo tangente allrsquoimmagine con la sintassi

bb= 〈l lx〉 〈l ly〉 〈urx〉 〈ury〉

In generale non egrave necessario specificare le coordinate dei vertici inferioresinistro e superiore destro del rettangolo tangente queste coordinate ingenerale sono contenute nel file grafico da importare Tuttavia questeinformazioni potrebbero mancare oppure potrebbero non corrisponderea quelle del rettangolo tangente Un caso molto frequente si ha quandocon un programma grafico esterno al sistema TEX si crea o si ottiene undisegno o una immagine a mezze tinte da scontornare percheacute magari ildisegno appare su una pagina in formato A4 non su un rettangolino grandequanto il disegno oppure lrsquoimmagine fa parte di una pagina che contieneanche altre parti grafiche che non interessa importare Le alternative sonoquelle di usare la chiave clip (o alternativamente il comando asteriscatoincludegraphics) insieme a una delle chiavi viewport o trim cheverranno descritte poco oltre La chiave bb egrave particolarmente comoda percheacutele coordinate da specificare sono facilmente rilevabili mediante il programmagview quando si sia specificata lrsquoopportuna opzione di visualizzazione7 e sisia usato il cursore a croce per individuare i vertici del rettangolo tangentegview funziona sia con i file ps e eps sia con i file pdf

width serve per specificare la larghezza dellrsquoimmagine nel documento finalegeneralmente conviene parametrizzare questa dimensione ad un valorelegato alla geometria della pagina invece di specificare un numero di puntio di millimetri o di pollici o di8 Allora egrave meglio specificare la larghezza nella forma width=05linewidthinvece di width=87mm percheacute cambiando layout della pagina la dimensionerelativa mantiene le proporzioni mentre la dimensione assoluta potrebbedare luogo a inconvenienti non lievi si pensi per esempio di voler passareda una composizione a piena pagina ad una composizione a due colonne87mm potrebbero andare bene a piena pagina ma potrebbero essere troppiper una colonnaVale la pena di ricordare che linewidth coincide con la giustezza corrente(piena pagina o colonna) salvo che allrsquointerno di certi ambienti potrebbeessere un poco inferiore egrave quindi conveniente fare sempre riferimento alinewidth invece che a textwidth o a columnwidthSecondo una tradizione conservata dalle norme UNI i fattori da preferire permoltiplicare la larghezza della linea sono 1 05 02 e le loro radici quadratePer le immagini i fattori piugrave piccoli sono da evitare ovviamente ma lasequenza di ragione (approssimativa)

radic2 o 1

radic2 egrave quella piugrave frequente9

7Alcune opzioni sono usabili solo con certi formati ma le coordinate del cursore sonoleggibili sempre indipendentemente dal formato del file

8Le unitagrave di misura dimensionali che il sistema TEX capisce sono i punti (pt) i millimetri(mm) i centimetri (cm) i pollici (in) oltre alle unitagrave legate alle dimensioni del font correntelrsquoaltezza della lsquoxrsquo (ex) la larghezza di una lsquoMrsquo (em) TEX capisce anche altre unitagrave menofrequenti dallrsquouso un porsquo particolare utili specialmente per chi scrive pacchetti di estensione ofile di classe

9Mescolando la sequenza 05 1 2 con la sequenzaradic

05radic

2 e arrotondando si ottiene lasequenza 035 05 07 1 14 2 28

154 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

height serve per specificare lrsquoaltezza dellrsquoimmagine riprodotta nel documen-to anche in questo caso egrave meglio fare riferimento allrsquoaltezza della pa-gina parametrizzando rispetto a textheight per esempio conservan-do uno dei fattori di scala della sequenza UNI si potrebbe specificareheight=035textheight

keepaspectratio Se si sono specificate sia width sia height la figura potreb-be subire cambiamenti di scala diversi in altezza rispetto alla larghezzaper evitare questo fatto la variabile booleana keepaspectratio mantieneinalterato il rapporto di forma dellrsquoimmagine da riprodurre e sceglie siaper lrsquoaltezza sia per la larghezza il maggiore fra i due rapporti di scala chenon fa eccedere nessuna delle due dimensioni specificate

viewport serve per specificare la finestra attraverso cui guardare lrsquoimmagine lafinestra in effetti fa sigrave che diventi un nuovo rettangolo tangente allrsquoimmaginee insieme a clip puograve servire per nascondere le parti dellrsquoimmagine chenon interessano quindi puograve servire per scontornare una immagine allaquale non egrave stato possibile applicare il trattamento specificato nei paragrafiprecedenti Tuttavia puograve servire anche per mostrare solo un particolaredellrsquoimmagine La sua sintassi egrave la seguente

viewport= 〈l lx〉 〈l ly〉 〈urx〉 〈ury〉

dove 〈llx〉 〈lly〉 sono le coordinate x e y dellrsquoangolo in basso a sinistradella finestra e 〈urx〉 〈ury〉 sono le coordinate x e y dellrsquoangolo in alto adestra della finestra Queste coordinate sono relative al rettangolo circo-scritto originario allrsquoimmagine e questo potrebbe non coincidere con ilsupporto virtuale sul quale lrsquoimmagine digitale egrave riportata Non egrave il casodi preoccuparsi di questo dettaglio percheacute il 99 delle volte si ha assolutacoincidenza

trim serve ad una funzione simile a quella prodotta da viewport solo chei quattro valori sono le ampiezze delle strisce di immagine da toglieresuccessivamente da sinistra dal basso da destra e dallrsquoalto dellrsquoimmaginetalvolta egrave piugrave facile specificare questi valori che non le coordinate dellafinestra attraverso cui vedere una parte dellrsquoimmagine La sintassi egrave laseguente

trim= 〈left〉 〈bottom〉 〈right〉 〈top〉

Sia con la chiave viewport sia con trim le dimensioni sono espresse in-dicando le unitagrave di misura che TEX gestisce il programma provvede atrasformarle in punti PostScript visto che lrsquooperazione viene svolta in quellinguaggio vero o semplificato se si desidera esprimere quelle lunghezzedirettamente in punti PostScript si usa lrsquounitagrave di misura bp oppure non sispecifica lrsquounitagrave di misura che per default viene quindi assunta uguale a bp

clip serve per dare lrsquoordine di tagliare effettivamente quanto sporge fuori delrettangolo tangente specificato dalla chiave bb oppure da trim oppure daviewport Se non si esprimesse clip il programma tratterebbe lrsquoimmaginecome se le sue dimensioni effettive fossero quelle del rettangolo specificato

86 LrsquoIMPORTAZIONE DELLE IMMAGINI 155

con le chiavi suddette ma quanto sporgesse fuori da quel rettangolo nonverrebbe tagliato via e quindi lrsquoimmagine sarebbe ancora tutta integra mapiugrave grande di quanto uno si aspetterebbe Se invece di includegraphicssi usasse la versione asteriscata includegraphics allora non sarebbenecessario specificare la parola chiave clip percheacute il valore true con ilcomando asteriscato egrave quello di default

angle serve per specificare lrsquoangolo di rotazione (in gradi e in senso antiorario)della figura quando si usa questa specifica (indicando generalmente plusmn90o 180) insieme a indicazioni di scala del tipo width= bisogna stareattenti a quale operazione si indica per prima e perciograve si esegue per primanormalmente egrave conveniente specificare per prima la rotazione percheacute egraveproprio quello che si vuole ottenere

Bene inteso egrave possibile specificare anche altre chiavi e i loro valori ma a quelpunto egrave meglio andare a leggere direttamente la documentazione grfguidepdfche accompagna sempre il sistema TEX e si trova nella cartella doclatexgraphics

Nella figura 83 sono rappresentati alcuni effetti che si possono ottenerecon la stessa fotografia sotto ogni foto egrave indicata la lista delle chiavi usataper ottenere il risultato Nella prima foto in alto a sinistra si ha lrsquoimmagine alarghezza piena fatta alla manifestazione Cheese patrocinata da Slow Foodche si svolge ogni due anni a Bra (CN) nelle immagini successive diverse chiavisono state applicate e in particolare quando sono state specificate sia widthsia height senza specificare keepaspectratio si egrave ottenuta una deformazionedellrsquoimmagine in senso orizzontale che egrave decisamente visibile ad occhio nudo Nelledue immagini dove si egrave specificato o trim o viewport insieme alla dichiarazioneclip lrsquoimmagine risulta correttamente ritagliata e ingrandita fino a soddisfare ilrequisito dellrsquoaltezza Nelle ultime immagini la foto del Minareto di MarrakechldquoLa Koutoubiardquo egrave stata ripresa con la fotocamera ruotata di 90deg (bersquo ecco ehmcirca ) per cui la corretta rappresentazione richiede una rotazione contrariaappare evidente che nella foto di sinistra la base egrave stata scalata fino ad essereuguale alla larghezza della riga poi lrsquoimmagine egrave stata ruotata cosigrave che la basediventi lrsquoaltezza invece nella foto di destra prima lrsquoimmagine egrave stata ruotatapoi la base egrave stata scalata alla larghezza della riga e solo in questo modo si egraveottenuto il risultato desiderato

Egrave bene notare che le operazioni eseguite con le chiavi trim e viewport nonsembrano cosigrave semplici da fare percheacute non sono generalmente note le dimensioninaturali dellrsquoimmagine tuttavia egrave bene ricordare che le dimensioni del rettangolotangente oppure del rettangolo che deve funzionare da finestra sono semprerilevabili con il cursore a croce del programma gview che si assume sia sempredisponibile al compositore

In mancanza di tale programma vale la pena di ricordare che ogni volta chesi lancia LATEX o pdfLATEX viene prodotto un file con estensione log e conil nome uguale a quello del file sorgente che si egrave appena compilato In questofile un normale file testuale contenente solo caratteri ASCII quindi leggibilesenza problemi con qualunque programma di elaborazione testi quando vieneimportato per la prima volta un dato file grafico contenente unrsquoimmagine neviene scritto il tipo e ne vengono fornite le dimensioni lsquobase per altezzarsquo dellalsquobounding boxrsquo in punti tipografici con queste dimensioni egrave possibile fare le debite

156 CAPITOLO 8 LATEX LrsquoIMPORTAZIONE DI FIGURE ESTERNE

width=linewidth height=05linewidth

width=linewidthheight=05linewidth

width=linewidthheight=05linewidthkeepaspectratio

height=05linewidthtrim=100 50 150 120 clip

height=05linewidthviewport=100 50 492 362 clip

width=linewidth angle=90 angle=90 width=linewidth

Figura 83 Due foto trattate con diverse chiavi

86 LrsquoIMPORTAZIONE DELLE IMMAGINI 157

proporzioni di ciograve che si desidera ritagliare via e quindi non egrave difficile trovare ivalori numerici da usare ricordiamoci infatti che le coordinate da specificare sonoquelle del file di partenza non del file riprodotto quindi egrave necessario riferirsialle coordinate del file di partenza

Capitolo 9

LATEX la matematicasemplice

91 IntroduzioneLa forza di LATEX che ne ha determinato la grandissima diffusione inizialein ambito accademico e tecnico prima di diffondersi in ambito letterario eumanistico egrave proprio la professionalitagrave con la quale compone la matematica inquesto primo capitolo ci soffermeremo sulle strutture matematiche piugrave semplicie nel prossimo capitolo scenderemo nei dettagli per strutture matematiche piugravecomplesse avvalendoci del pacchetto di estensione amsmath

Non egrave sempre necessario ricorrere al pacchetto amsmath dipende dal tipo dimatematica che si vuole comporre In questo capitolo quindi ci familiarizziamosolamente con la composizione della matematica ma anche se LATEX cosigrave comrsquoegraveappena installato egrave giagrave in grado di comporre strutture matematiche piuttostoavanzate rimandiamo al prossimo capitolo ciograve che pur essendo componibile conLATEX senza estensioni riesce molto piugrave comodo da comporre con le estensionifornite dal pacchetto amsmath

92 I modi matematiciLATEX compone la matematica sostanzialmente in quattro modi se si andasseper il sottile si scoprirebbe che i modi sono otto ma questo il lettore interessatolo puograve studiare nel TEXbook I modi che interessano la quasi totalitagrave degli utentisono i seguenti

1 Il modo testuale LATEX compone in questo modo quando scrive unaespressione matematica in linea con il testo come quando si specifica chela sezione aurea egrave ϕ = (

radic5minus1)2 e che questo numero gode della proprietagrave

che 1ϕ = 1 + ϕ Se si vuole comporre in questo modo anche quandoLATEX di default comporrebbe in modo diverso bisogna dare lrsquoistruzionetextstyle

2 Il modo display LATEX compone la matematica in display quando componele espressioni in linee a seacute stanti staccate dal testo precedente e seguente

159

160 CAPITOLO 9 LATEX LA MATEMATICA SEMPLICE

mediante spazi bianchi di ampiezza adeguata per lsquomettere in mostrarsquolrsquoespressione per esempio1

ϕ =radic

5minus 12 e 1

ϕ= 1 + ϕ (sezione aurea)

Se si vuole comporre in questo modo anche quando LATEX di defaultcomporrebbe in modo diverso bisogna dare lrsquoistruzione displaystyle

3 Il modo degli indici primi LATEX compone gli apici e i pedici (gli esponentie i deponenti) di primo ordine in questo modo usa un carattere di corpopiugrave piccolo rispetto a quello delle variabili principali e li rialza per gliapici o li abbassa per i pedici di una quantitagrave costante e prestabilita dallecaratteristiche dei font usati per esempio in display si hanno le soluzionidi una equazione di secondo grado nella forma

x12 = minusbplusmnradicb2 minus 4ac

2a

Se si vuole comporre in questo modo anche quando LATEX di defaultcomporrebbe in modo diverso bisogna dare lrsquoistruzione scriptstyle

4 Il modo degli indici secondi LATEX compone gli apici e i pedici (gli esponentie i deponenti) di secondo ordine cioegrave quelli degli apici e dei pedici di primolivello con un carattere ancora piugrave piccolo e adeguatamente rialzato oribassato rispetto alle variabili a cui si riferiscono che sono giagrave per loroconto composte con il font degli indici di primo livello per esempio

VRe = ReIe

Se si vuole comporre in questo modo anche quando LATEX di default com-porrebbe in modo diverso bisogna dare lrsquoistruzione scriptscriptstyle

Di solito egrave piuttosto raro che si debba specificare lo stile ovvero il modo dicomposizione matematica egrave molto meglio lasciare fare a LATEX che sa quasisempre qual egrave il modo giusto da usare per la composizione

Per formule cosigrave semplici come quelle esposte nellrsquoenumerazione precedentebasta che il compositore scriva il testo sorgente in lettere nello stesso modo comese lo dettasse al telefono (in inglese) Per esempio

begindisplaymathx_12= frac-bpmsqrtb^2-4ac2a

enddisplaymath

Lrsquoambiente displaymath dice ldquometti in display lrsquoespressione matematica cheracchiudordquo Il segno _ serve per dire ldquometti in posizione di deponente quantocontenuto nel prossimo gruppordquo il gruppo egrave delimitato dalle parentesi graffe comesi egrave giagrave avuto modo di osservare frac sta per fraction egrave una abbreviazione diuna parola inglese ma egrave una parola quasi completa essa dagrave lrsquoordine di comporreuna frazione quindi bisogna specificare il numeratore e il denominatore mediante

1Spesso specialmente nella letteratura anglosassone con φ si intende il numero aureo(radic

5 + 1)2 Si riesce benissimo a distinguere dal contesto del discorso a quale dei due significatisia associato il simbolo qui si useragrave ϕ per la sezione aurea e φ per il numero aureo

92 I MODI MATEMATICI 161

le rispettive espressioni racchiuse nei rispettivi gruppi allrsquointerno del numeratorecompare il comando pm che vuol dire ldquometti un segno lsquopiugrave o menorsquo rdquo compareanche il comando sqrt sigla inglese che sta per square root radice quadrataed esso comanda di mettere sotto radice il contenuto del gruppo che lo segue ilsegno ^ vuol dire ldquometti ad esponente il contenuto del prossimo gruppordquo ma inquesto caso il gruppo non egrave evidenziato con le graffe percheacute egrave costituito da unsolo token2

Come si vede la scrittura di una breve espressione egrave semplicissima e nonrichiede una memoria particolare per ricordare i comandi da usare Quando cisono da scrivere delle lettere greche esse si scrivono con i loro nomi per disteso (ininglese) e le maiuscole si scrivono con lrsquoiniziale maiuscola per non confondere lesequenze di lettere che formano i nomi delle lettere greche come semplici variabilimatematiche scritte in lettere latine i nomi delle lettere greche sono precedutidal segno lsquorsquo alpha beta gamma Gamma Delta eccetera

Per gli operatori matematici piugrave comuni bastano i tasti della tastiera di unqualunque PC o laptop Se il PC o il laptop egrave dotato di una tastiera estesao avanzata egrave possibile comporre da tastiera anche altri segni che non sonoserigrafati sui tasti bisogna solamente premere contemporaneamente uno o piugravetasti di controllo (Alt Shift Ctrl ecc) e almeno un tasto lsquoordinariorsquo In ognicaso nelle prossime pagine appaiono un certo numero di tabelle che contengonola lista completa dei comandi matematici di LATEX che si possono introdurresenza disporre di nessuna tastiera speciale

Gli spazi che in matematica compaiono nel file sorgente non hanno nessunarilevanza LATEX mette gli spazi matematici dove sono necessari e anche seoffre dei comandi per inserire esplicitamente alcuni tipi di spazi matematici ilcompositore egrave vivamente invitato a non farne uso LATEX compone benissimoda solo senza che il compositore debba perdere tempo per rendere il 99 dellevolte il frutto della composizione meno bello e meno professionale di quello cheLATEX avrebbe fatto da solo

Esistono alcuni pochi casi ben noti in cui il compositore puograve inserire deglispazi matematici essi riguardano tutti gli operatori obliqui quando gli oggetti cheli precedono o li seguono hanno forme particolari oppure quando il compositoredeve lavorare con integrali multipli e non vuole usare il pacchetto di estensioneamsmath di cui si parleragrave nel prossimo capitolo Quindi il compositore saragraveautorizzato a correggere gli spazi usati da LATEX solo dopo aver corretto le bozzee se vuol aggiungere quei pochi e rari tocchi di qualitagrave che LATEX non egrave riuscitoa mettere da solo

Per aiutare il compositore ad avere sottomano tutti i simboli che LATEX mettea disposizione (e sono moltissimi) sono state preparate alcune tabelle di segniaccostati ai comandi che li producono si vedano allora le tabelle 91ndash98

Va detto subito che nelle tabelle 92 93 e 98 i segni con uno sfondo grigio nonsono usabili se non si usa il pacchetto di estensione amsfonts oppure il pacchettodi estensione latexsym in realtagrave questo secondo pacchetto rende accessibili alcunisegni che con il vecchio LATEX209 erano direttamente accessibili senza estensioniperciograve questo pacchetto egrave da considerare come una maniera per compilare vecchifile sorgente predisposti per il vecchio LATEX Con il nuovo LATEX2ε questi segnisono tutti accessibili tramite il pacchetto amsfonts Siccome il pacchetto fa parte

2I comandi [ e ] sostituiscono efficacemente i comandi di apertura e di chiusuradellrsquoambiente displaymath

162 CAPITOLO 9 LATEX LA MATEMATICA SEMPLICE

della collezione a cui appartiene anche amsmath e questo egrave utilissimo per lacomposizione di testi tecnici che fanno uso di molta matematica questi duepacchetti vengono solitamente caricati comunque quindi non egrave un gran problemadisporre di quei simboli Tuttavia bisogna ancora segnalare che alcuni comeper esempio f non dovrebbero mai venire usati percheacute contrari alle norme ISOquindi non egrave una gran perdita se non se ne fa uso

Minuscolealpha α iota ι rho ρbeta β kappa κ sigma σ

gamma γ lambda λ tau τdelta δ mu micro upsilon υ

epsilon ε nu ν phi φzeta ζ xi ξ chi χeta η o o psi ψ

theta θ pi π omega ω

Varianti delle minuscolevarepsilon ε varpi $ varsigma ς

vartheta ϑ varrho varphi ϕ

MaiuscoleGamma Γ Xi Ξ Phi ΦDelta ∆ Pi Π Psi ΨTheta Θ Sigma Σ Omega Ω

Lambda Λ Upsilon ΥMaiuscole corsive

mathitGamma Γ mathitXi Ξ mathitPhi ΦmathitDelta ∆ mathitPi Π mathitPsi ΨmathitTheta Θ mathitSigma Σ mathitOmega Ω

mathitLambda Λ mathitUpsilon Υ

Tabella 91 Le lettere greche

93 Alcune annotazioni sulle lettere grechePer quanto riguarda le lettere greche si puograve notare che alcune di esse hanno delleforme varianti i cui nomi cominciano con lrsquoabbreviazione var Esse sono dellevarianti per quel che riguarda gli Stati Uniti ma tolto $ che non si usa maiforse nemmeno negli Stati Uniti gli altri segni sono quelli usati normalmentein Europa e in Italia in alcuni file di classe che lo scrivente ha creato egli hascambiato i nomi varianti con quelli ordinari per rendere normali quelli chevengono usati di solito in Europa

Inoltre in tutto il mondo egrave consuetudine scrivere le lettere greche maiuscolecon caratteri diritti e non inclinati nonostante le norme ISO prescrivano lrsquousodelle lettere inclinate per qualsiasi variabile matematica o fisica

Se si desidera scrivere le lettere greche maiuscole con caratteri inclinati bisognafare esattamente come egrave suggerito nella tabella 91 Oppure se si sta facendouso del pacchetto amsmath si ottengono le lettere inclinate usando i comandivarianti (non visibili in nessuna delle tabelle citate) dove il nome delle lettere

94 ALCUNE OSSERVAZIONI SUGLI OPERATORI FUNZIONALI 163

approx asymp asymp bowtie cong sim= dashv a doteq

=downarrow darr Downarrow dArr equiv equiv

frown _ ge ge geq gegets larr gg hookleftarrow larr

hookrightarrow rarr iff lArrrArr in isinJoin on le le leadsto

leftarrow larr Leftarrow lArr leftharpoondown leftharpoonup leftrightarrow harr Leftrightarrow hArr

leq le ll longleftarrow larrminusLongleftarrow lArr= longleftrightarrow larrrarr Longleftrightarrow lArrrArr

longmapsto minusrarr longrightarrow minusrarr Longrightarrow =rArrmapsto rarr mid | models |=

ne = nearrow neq =ni 3 not= = nwarrow

parallel perp perp prec ≺preceq propto prop rightarrow rarr

Rightarrow rArr rightharpoondown rightharpoonup

rightleftharpoons searrow sim simsimeq smile ^ sqsubset

sqsubseteq v sqsupset A sqsupseteq wsubset sub subseteq sube succ succeq supset sup supseteq supe

swarrow to rarr uparrow uarrUparrow uArr vdash `

Tabella 92 Gli operatori di relazione

amalg q ast lowast bigcirc copybigtriangledown 5 bigtriangleup 4 bullet bull

cap cap cdot middot circ cup cup dagger dagger ddagger Dagger

diamond div divide lhd Cmp ∓ odot ominus

oplus oplus oslash otimes otimespm plusmn rhd B setminus

sqcap u sqcup t star

times times unlhd E unrhd Duplus ] vee or wedge and

wr o

Tabella 93 Gli operatori binari

greche con iniziale maiuscola egrave preceduto da var Scrivendo quindi varGammavarDelta varTheta eccetera si ottengono i simboli Γ ∆ Θ

94 Alcune osservazioni sugli operatori funzio-nali

Gli operatori funzionali come sin arctan eccetera sono presentati nella tabella 94essi devono essere usati esattamente con quei comandi per due importanti motivi

164 CAPITOLO 9 LATEX LA MATEMATICA SEMPLICE

Operatori senza limitiarccos arcsin arctan arg coscosh cot coth csc degdim exp hom ker lgln log sec sin sinhtan tanh

Operatori con limitidet gcd inf lim liminflimsup max min Pr sup

Tabella 94 Gli operatori funzionali

bigcap⋂ ⋂

bigveeor or

bigcup⋃ ⋃

bigwedgeand and

bigodot⊙ ⊙

coprod∐ ∐

bigoplusoplus oplus

intint int

bigotimesotimes otimes

oint∮ ∮

bigsqcup⊔ ⊔

prodprod prod

biguplus⊎ ⊎

sumsum sum

sqrtradic radic radic radic radic

Tabella 95 I grandi operatori

1 I nomi che vengono scritti nel documento durante lrsquoesecuzione di queicomandi sono quelli prescritti dalle norme internazionali ISO e siccomeessi sono ripresi dalle norme nazionali UNI e queste sono legge dello Statonon egrave consentito usare nomi diversi anche se si egrave abituati a scrivere lsquotgrsquoal posto di lsquotanrsquo oppure lsquosenrsquo al posto di lsquosinrsquo In realtagrave le norme ISOprescrivono nomi che costituiscono abbreviazioni di parole latine quindiUbi maior minor cessat

2 Gli operatori in quanto tali richiedono certi spazi alla loro destra e allaloro sinistra questi spazi dipendono dalla natura degli oggetti matematiciche precedono o seguono gli operatori solo usando quei comandi LATEX sache sta usando degli operatori e sa quali spazi usare

La tabella 94 suddivide gli operatori in due categorie (a) quelli chiamatilsquooperatori senza limitirsquo nei quali le indicazioni di esponente o di deponentevengono usate normalmente come tali e (b) quelli chiamati lsquooperatori con limitirsquoper i quali le indicazioni di esponente e di deponente vengono usati come nei

94 ALCUNE OSSERVAZIONI SUGLI OPERATORI FUNZIONALI 165

(

(

langle

langrangle

rang

)

)lfloor

lfloorrfloor

rfloorlgroup

[

[lceil

lceilrceil

rceilrgroup

]

]backslash

∖vert

∣∣∣∣∣ bracevert

|

∥∥∥∥∥ Vert

∥∥∥∥∥ updownarrow

xy Updownarrow

~www|

∣∣∣∣∣ uparrow

x Uparrow

~wwww downarrow

y

arrowvert

Arrowvert

wwwww Downarrow

wwww

lmoustache

rmoustache

Tabella 96 I grandi delimitatori

hata a acutea a bara a dota achecka a gravea a veca ~a ddota a

brevea a tildea a widehatAB AB widehatABC ABC

mathringa a widetildeAB AB widetildeABC ABC

Tabella 97 Gli accenti matematici

simboli di sommatoria si noti la differenza nellrsquoequazione 91

limxrarr0

infinsumk=0

sin2 2kx = 0 (91)

scritta facendo uso dei segni _ e ^ che normalmente indicano rispettivamentelrsquoinserzione di un deponente o di un esponente

lim_xto 0sum_k=0^infty sin^2 2kx = 0

Si noti che in modo testo LATEX compone i lsquolimitirsquo degli operatori con limitidelle sommatorie degli integrali e simili come se fossero dei deponenti o degliesponenti esso si comporta in questo modo per evitare di far diventare troppo

166 CAPITOLO 9 LATEX LA MATEMATICA SEMPLICE

aleph alefsym angle ang backslash bot perp Box clubsuit clubs

Diamond diams diamondsuit diams ell `emptyset empty exists exist flat [forall forall hbar ~ heartsuit hearts

Im = imath ı infty infinjmath mho f nabla nabla

natural neg not partial partprime prime Re lt sharp ]

spadesuit spades surdradic

top gttriangle 4 wp weierp |

Tabella 98 Altri simboli

grandi (alte e profonde) le righe con gli operatori con limiti che obbligherebberoallrsquoinserimento di una generosa interlinea in modo display invece tutto procedecome esemplificato nellrsquoequazione 91

Se si desidera definire nuovi operatori funzionali oltre a quelli che compaiononella tabella 94 il pacchetto amsmath mette a disposizione due comandi con laseguente sintassi

DeclareMathOperator〈operatore〉〈definizione〉DeclareMathOperator〈operatore〉〈definizione〉

dove 〈operatore〉 egrave il comando con il quale si vuole invocare lrsquooperatore mentre la〈definizione〉 contiene il modo di scrivere il nome dellrsquooperatore La dichiarazioneasteriscata definisce il comando per un operatore con limiti mentre quella nonasteriscata lo definisce per un operatore senza limiti

Per esempio lrsquooperatore per separare la parte reale di un numero complessoegrave Re e produce il simbolo lt volendolo ridefinire in modo che esso sia scritto incaratteri non gotici ma sia in neretto si potrebbe usare la dichiarazione3

DeclareMathOperatorRemathbfRe

In questo modo lo stesso comando Re non produce piugrave lt z = lt(x+ i y) = x maRe z = Re(x+ i y) = x e tratta il nuovo simbolo come un operatore senza limitilasciandovi attorno gli stessi spazi che lascia normalmente attorno agli operatoriSi noti che anche lrsquounitagrave immaginaria lsquoirsquo egrave un operatore (vettoriale) ed egrave statostampato facendo uso del comando uimm la cui definizione un porsquo particolareverragrave discussa nella pagina 185

95 Alcune osservazioni sui grandi operatoriI grandi operatori hanno almeno due dimensioni una lsquonormalersquo adatta al modotesto e una piugrave grande adatta al modo display la radice quadrata invece hanumerose varianti adatte alla grandezza del radicando

3Il comando Re egrave giagrave definito e i vari comandi Declare non producono messaggidrsquoerrore se si ridefiniscono comandi esistenti controllano perograve lrsquoesistenza di un comandopre-esistente e nel caso scrivono un avvertimento nel file log

96 I GRANDI DELIMITATORI 167

Cosigrave in modo testo si potragrave scrivere con lrsquooperatore piccolo (scelto au-tomaticamente da LATEX senza che il compositore se ne debba preoccupare)suminfink=0 x

k = 1(1minus x) mentre in display saragraveinfinsumk=0

xk = 11minus x (92)

Bisogna fare attenzione ad un dettaglio non trascurabile Mentre la maggiorparte delle volte LATEX usa correttamente (almeno nel senso delle nostre aspet-tative) i grandi operatori scegliendo lrsquooperatore grande oppure quello piccolotalvolta ci sembra che si sbagli si osservi lrsquoequazione 93

1suminfink=0 x

k= 1minus x (93)

Si nota che nonostante lrsquoequazione sia in display LATEX ha usato lrsquooperatore delmodo testo A noi sembra scorretto ma LATEX ha agito correttamente percheacutenonostante si trovi a comporre una formula in display se usasse la forma grandedellrsquooperatore lrsquointera formula risulterebbe squilibrata

1infinsumk=0

xk= 1minus x (94)

come si vede bene nellrsquoequazione 94LATEX si comporta in questo modo tutte le volte che cerca di mantenere

piugrave o meno costante lrsquoaltezza delle righe nelle espressioni matematiche essoinfatti passa al modo testo anche per scrivere gli elementi delle matrici bisognaricordarsene e se non ci piacesse sarebbe nostra cura modificare il modo discrivere le formule in modo da ottenere una forma grafica gradevole e nello stessotempo corretta si veda a questo proposito lrsquoequazione 96

96 I grandi delimitatoriNella tabella 96 sono rappresentati i grandi delimitatori o meglio i delimitatoriestensibili questi si possono estendere in altezza in modo virtualmente illimitatoe possono racchiudere espressioni di qualunque grandezza si pensi anche solo aidelimitatori che differenziano una matrice da un determinante Ma i delimitatoripossono essere resi estensibili solo premettendo al delimitatore di sinistra ilcomando left e al delimitatore di destra il comando right questi due comandidevono essere sempre appaiati nella stessa espressione matematica quindi se sideve mettere un solo delimitatore lrsquoaltro lo si rende invisibile scrivendovi unlsquopuntorsquo invece del segno di una parentesi si veda lrsquoequazione 95

x12 =

minusbplusmnradicb2 minus 4ac

2a se b2 minus 4ac gt 0

minus b

2a se b2 minus 4ac = 0

minusbplusmn iradic

4acminus b22a se b2 minus 4ac lt 0

(95)

composta scrivendo

168 CAPITOLO 9 LATEX LA MATEMATICA SEMPLICE

x_12 = left right

Per comporre la struttura dellrsquoequazione 95 giagrave piugrave complessa di quelle usatecome esempio fino ad ora si puograve usare lrsquoambiente cases fornito dal pacchettoamsmath con questo ambiente non egrave il caso di preoccuparsi di usare delimitatoriinvisibili percheacute ci pensa lui anzi questa osservazione ci fa capire percheacute egrave meglioservirsi di ambienti di composizione appositamente predisposti dal file di classe odai pacchetti di estensione o da definizioni create dal compositore piuttosto cheripetere ogni volta lrsquointero assemblaggio di comandi e di istruzioni col rischiodi dimenticarne qualcuno o di non essere coerenti ogni volta che si dovrebbecomporre lo stesso genere di struttura nella stessa maniera

Ma left e right sono comodi anche per scrivere correttamente in mododisplay una formula come lrsquoequazione 94 che diventa( infinsum

k=0xk

)minus1

= 1minus x (96)

Bisogna prestare una particolare attenzione quando si deve spezzare unaequazione fra piugrave righe quando si egrave in modo testo si suppone che le espressionistampate siano molto semplici e non troppo lunghe se lrsquoespressione cade in findi riga LATEX (con molta riluttanza) provvede a dividere lrsquoespressione dopo unoperatore di relazione o dopo un operatore binario Tuttavia sta al compositoreevitare che si debba andare a capo mentre si egrave allrsquointerno di una parentesiQuando invece si egrave in display le espressioni possono essere anche molto lunghe epotrebbe essere necessario andare a capo allrsquointerno di una parentesi Solo chiha scritto lrsquoequazione ne conosce il ritmo di lettura e solo lui sa dove egrave menograve andare a capo Tuttavia resta la regola principale che si puograve andare a capodopo gli operatori di relazione e subordinatamente dopo gli operatori binarimai dopo gli operatori funzionali o i grandi operatori o immediatamente dopo idelimitatori di apertura Ecco percheacute sono utili le tabelle 93ndash96 cosigrave anche chinon egrave matematico sa di che cosa si sta parlando

Nella disgraziata ipotesi che fosse necessario andare a capo allrsquointerno diuna lunga espressione fra parentesi allora potrebbero risultare utili i seguenticomandi che come left e right ingrandiscono i delimitatori ma di unaquantitagrave fissa indipendentemente da che cosa essi delimitino non egrave difficileottenere ((((

()))))

con i comandi

Biggl(biggl(Bigl(bigl(()bigr)Bigr)biggr)Biggr)

La lettera l o r alla fine di ogni comando specifica se il segno che segue egrave undelimitatore di sinistra (left) o di destra (right) esiste anche un suffisso m per iseparatori che talvolta si trovano a metagrave di certe espressioni matematiche

97 Gli accenti matematiciPer segnare con lsquodiacriticirsquo matematici i vari simboli che si usano esistono icomandi riportati nella tabella 97 sarebbe un grave errore usare quegli accenti

98 GLI AMBIENTI MATEMATICI 169

per inserire diacritici in modo testo Per questi si veda in appendice la tabella G1Per mettere accenti sulle lettere lsquoirsquo e lsquojrsquo in matematica bisogna ricorrere a dueparticolari versioni di questi segni privi del puntino imath e jmath Usandoquesti segni si puograve scrivere per esempio ~a = ax~ı+ ay~ con il codice4

( vec a = a_x vecimath + a_y vecjmath )

98 Gli ambienti matematiciPer inserire una espressione matematica in linea con il testo bisogna entrare inmodo matematico la maniera piugrave semplice ma da evitare egrave quella di racchiuderei comandi matematici allrsquointerno di un gruppo costituito da due segni di dollaro$ Cosigrave per scrivere che sin(α+ β) = sinα cosβ + cosα sin β basta inserire neltesto sorgente

$sin(alpha+beta) = sinalphacosbeta + cosalphasinbeta $

Ci si rende conto perograve che il segno di dollaro $ funziona come un interruttoreche cambia modo da testo a matematico o viceversa senza preoccuparsi dicontrollare se lrsquooperazione sia corretta LATEX offre il modo di eseguire questocontrollo se si racchiude lrsquoespressione matematica fra i comandi ( e ) cosigrave

(sin(alpha+beta) = sinalphacosbeta + cosalphasinbeta

)

Non egrave necessario andare a capo dopo ( e dopo la fine dellrsquoespressione matematicama il testo sorgente egrave piugrave facilmente leggibile

Il comando ( puograve essere dato solo mentre si egrave in modo testo e ) soloquando si egrave in modo matematico se ciograve non succedesse LATEX provvederebbead emettere gli opportuni messaggi drsquoerrore che consentirebbero di eseguire lenecessarie correzioni con facilitagrave

Analogamente in modo display sarebbe possibile usare i comandi di bassolivello costituiti da due coppie di segni di dollaro per scrivere

sin(α+ β) = sinα cosβ + cosα sin β

basterebbe scrivere nel file sorgente

$$sin(alpha+beta) = sinalphacosbeta + cosalphasinbeta

$$

ma di nuovo mancherebbe la diagnostica di LATEX Questo invece offre dueambienti per scrivere espressioni senza la numerazione e un ambiente per scrivereespressioni numerate

[sin(alpha+beta) = sinalphacosbeta + cosalphasinbeta

]4I comandi imath e jmath per lrsquointerprete sono ciascuno un solo token anche se a

noi umani sembrano sequenze di segni e di lettere e quindi ci appaiono ciascuno come unamoltitudine di token

170 CAPITOLO 9 LATEX LA MATEMATICA SEMPLICE

con la sintassi

[ 〈espressione matematica〉]

oppure con lrsquoambiente displaymath

begindisplaynmathsin(alpha+beta) = sinalphacosbeta + cosalphasinbeta

enddisplaymath

che segue la sintassi

begindisplaymath〈espressione matematica〉enddisplaymath

Mentre per le espressioni numerate si usa lrsquoambiente equation con la sintassi

beginequation〈espressione matematica〉label〈etichetta〉endequation

Usando il pacchetto amsmath diventa disponibile lrsquoambiente equation

beginequation〈espressione matematica〉endequation

del tutto equivalente allrsquoambiente displaymath solo che gestisce meglio gli spazie accetta anche espressioni matematiche piugrave complesse disponibili con quelpacchetto

La sintassi egrave auto esplicativa ma si noti che lrsquo〈etichetta〉 puograve contenereun nome simbolico con il quale richiamare lrsquoequazione per nome invece cheper numero rendendo cosigrave automatico il processo dei riferimenti incrociatimediante i comandi label ref e pageref Il pacchetto amsmath per citarele equazioni mette a disposizione anche il comando eqref che provvede da soloa racchiuderne il riferimento vero fra parentesi tonde come si fa abitualmente(e come non si egrave fatto in questo testo) Quel pacchetto mette a disposizioneanche un comando tag per identificare le equazioni esso consente di assegnareallrsquoequazione un lsquonomersquo letterale invece che un identificativo numerico ed egraveusabile anche allrsquointerno dellrsquoambiente equation bencheacute questo si riferisca adun ambiente non numerato egrave proprio quello che si egrave fatto per lrsquoequazione chedefinisce la sezione aurea nella pagina 160

99 Le unitagrave di misuraQuanto esposto nei paragrafi precedenti dovrebbe consentire di scrivere equazionidi una riga numerate o non numerate e di poterle citare in modo corretto senzascambi di identitagrave

Prima di passare al capitolo successivo vale la pena di soffermarci su unaquestione molto importante visto che la matematica non serve solo ai matematici

99 LE UNITAgrave DI MISURA 171

puri ma anche ai tecnologi ai fisici ai chimici e a tanti altri tecnici e scienziatiche scrivono equazioni di fisicandashmatematica

La fisicandashmatematica usa espressioni che coinvolgono grandezze fisiche econ queste la composizione della matematica deve soddisfare a ulteriori regolespecificate dalle norme ISOndashUNI

1 Le grandezze fisiche vanno scritte in corsivo matematico anche le costantifisiche vanno scritte in corsivo matematico a differenza delle costantimatematiche che vanno scritte in tondo

2 quando si esplicita il valore numerico delle costanti fisiche o di qualunquegrandezza fisica bisogna inserire anche le unitagrave di misura

3 Le unitagrave di misura devono seguire scrupolosamente le norme ISO sia per iloro nomi sia per i loro simboli e i loro prefissi decimali inoltre

(a) devono essere scritte in tondo anche nelle espressioni matematiche(b) devono essere separate da uno spazio fine dal valore numerico(c) questo spazio deve essere lsquonon separabilersquo nel senso che non si puograve

avere un lsquoa caporsquo fra la misura e lrsquounitagrave di misura

Tutte queste azioni si ottengono in un colpo solo se si usa il comando unitdisponibile con il pacchetto babel quando si scrive in italiano Bisogna soloscrivere il comando unit con il suo argomento lsquoattaccatorsquo alla misuraper esempio 39unitkohm che produce 39 kW5

4 I pedici e gli apici numerici vanno scritti con carattere diritto ma quelliletterali vanno scritti in corsivo matematico se rappresentano quantitagravevariabili o in tondo se rappresentano delle apposizioni della grandezzafisica quindi Vmax e non Vmax invece bisogna scrivere VT se T egrave peresempio una temperatura Vi se i rappresenta lrsquoi-esimo elemento di uninsieme numerabile ma Vi se lsquoirsquo sta per lsquoinizialersquo Per questo scopo babelin italiano offre il comando ped per scrivere pedici in tondo e ap perscrivere apici in tondo entrambi i comandi funzionano anche in modo testoper inserire pedici o apici ma in modo testo mantengono il font in usosenza preoccuparsi se sia diritto o inclinato

Una tipica equazione fisica potrebbe essere

i(t) =radic

2Ieff Re[eiωt]

dove lsquoeffrsquo sta per lsquoefficacersquo lsquoersquo egrave la costante matematica base dei logaritmi naturalida distinguere dalla lsquocarica elettrica elementare ersquo e lsquoirsquo egrave lrsquounitagrave immaginaria dadistinguere dalla grandezza fisica lsquocorrente elettrica irsquo

La figura 91 riprende due strafalcioni giornalistici pubblicati su un quotidianonazionale nella figura di sinistra crsquoegrave lrsquoerrore frequentissimo di scrivere lsquoKrsquo invecedi lsquokrsquo per il prefisso lsquokilorsquo in effetti in quella figura si parla di kelvin metri

5In modo matematico bisognerebbe scrivere Omega mentre in modo testo bisognerebbescrivere textohm Non egrave difficile definire un comando ohm che distingua che cosa si deve usarea seconda se si egrave in modo matematico o in modo testo come egrave stato fatto in questo documentovedi nella pagina 315

172 CAPITOLO 9 LATEX LA MATEMATICA SEMPLICE

Figura 91 Due esempi di strafalcioni giornalistici

allrsquoora Nella figura a destra lsquoMbit al secondorsquo doveva essere6 Mbs o forseMibs Ammesso che si tratti solo di un errore di stampa con una velocitagrave ditrasmissione di 75Mibs per trasmettere il contenuto di un DVD completo (chegeneralmente contiene piugrave di 45GiB cioegrave piugrave di 36Gib) occorrono almeno 480 scioegrave 8min tuttrsquoaltro che pochi secondi

Chi compone i suoi testi con LATEX egrave tenuto ad astenersi da una simileignoranza e sciatteria

Egli perograve puograve trarre giovamento dallrsquouso dei pacchetti units e SIunits Ilprimo pacchetto definisce una versione del comando unit (diversa da quella cheegrave definita con lrsquoopzione italian del pacchetto babel) che consente di specificarealcune opzioni di spaziatura fra la misura e lrsquounitagrave di misura e consente discrivere le frazioni mediante numeratore rialzato e denominatore ribassato utilisia in linea con il testo sia in matematica affincheacute risulti ben chiaro chi sia ilnumeratore e chi il denominatore si puograve quindi specificare una velocitagrave nellaforma 70 kmh questo modo di scrivere egrave una pratica diffusa nei paesi dellrsquoEuropadel Nord ma non egrave previsto dalle norme ISO

Il secondo pacchetto contiene una bella e aggiornata descrizione della situazio-ne relativa al Sistema Internazionale (SI) di unitagrave di misura e richiama anche lenorme tipografiche specificate dalla Conferenza Generale dei Pesi e delle Misure edalle sue commissioni noncheacute dalle norme ISO che regolano questa questione Ilpacchetto fornisce anche una diversa definizione del comando unit che richiedeperograve due argomenti e quindi egrave incompatibile con la definizione dellrsquoopzione italiandi babel allrsquointerno del secondo argomento egrave possibile specificare le unitagrave dimisura a parole (in inglese britannico e al singolare) per cui egrave possibile indicarela velocitagrave di 70 kmh con la scrittura

unit70kilometreperhour

Invece con il comando definito con lrsquoopzione italian di babel basta scrivere70unitkmh

Usando il pacchetto SIunits egrave possibile specificargli lrsquoopzione italian cosiccheacutesi evita la collisione con la definizione di unit in babel percheacute la definizione delpacchetto SIunits diventa unita (in italiano e senza accento) e i due comandicon le rispettive sintassi possono essere usati contemporaneamente Viceversa se

6I prefissi stabiliti dalle norme ISO dal kilo in poi rappresentano potenze di 1000 In infor-matica egrave piugrave conveniente fare riferimento alle potenze di 2 per indicare i multipli normalmentesi usano gli stessi prefissi ISO (con k mutato in K) seguiti da una lsquoirsquo essi rappresentano lepotenze di 210 = 1024 Il prefisso lsquoMirsquo indica quindi (210)2 e il prefisso lsquoGirsquo indica il valore(210)3 Inoltre il simbolo del bit egrave lsquobrsquo mentre quello del byte egrave lsquoBrsquo

99 LE UNITAgrave DI MISURA 173

questa soluzione non interessa basta caricare il pacchetto babel dopo il pacchettoSIunits percheacute babel egrave predisposto affincheacute non ridefinisca il comando unit diSIunits

Lo stesso autore di SIunits DNJ Els ha preparato un secondo pacchettoSIstyle per comporre correttamente le indicazioni metriche delle grandezzefisiche secondo questo pacchetto il comando per comporre la grandezza fisica egravesemplicemente

SI〈misura〉〈unitagrave di misura〉

Il pregio del pacchetto oltre alla semplicitagrave drsquouso che fa dire ad Els di preferireegli stesso questo pacchetto al suo piugrave esteso pacchetto SIunits consiste nellevaste possibilitagrave di personalizzazione e di adeguamento a specifiche norme na-zionali serve cioegrave ad impostare lo stile di scrittura delle grandezze fisiche inmodo da assicurare lrsquouniformitagrave di composizione allrsquointerno del documento

Va infine segnalato anche il recentissimo pacchetto siunitx che sostituiscetutti i precedenti e che offre molte possibilitagrave in piugrave per gestire le grandezzefisiche in termini numerici dispone di un modulo di elaborazione dei numeri checonsente anche scritture del tipo 30e3 e che le macro di scrittura trasformanoin 30times 103 questo permette di trarre i valori numeri da file scritti dagli stessistrumenti di misura moderni dove i valori numerici sono espressi con la notazioneinformatica dei numeri a virgola mobile Si puograve specificare il numero di cifre dascrivere nei valori numerici delle misure il modulo di elaborazione dei numeriprovvede ad arrotondare quel valore numerico al numero richiesto di decimaliInfatti se si specifica che si vogliono consistentemente 4 decimali e la virgoladecimale il numero 1234567 viene stampato nella forma 12346 dove il numerodi decimali egrave quello voluto ma lrsquoultima cifra tiene conto dellrsquoarrotondamento inalto visto che la parte scartata egrave maggiore della metagrave dellrsquounitagrave corrispondenteallrsquoultima cifra scritta inoltre il punto decimale egrave consistentemente cambiatonella virgola come richiesto Si rinvia il lettore alla documentazione in doclatexsiunitxsiunitxpdf

Il compositore stia bene attento alla preposizione lsquoperrsquo che in italiano significalsquomoltiplicatorsquo e in inglese significa lsquodivisorsquo una resistivitagrave di lsquosette microohmper metrorsquo si scrive 7 microWm oppure 7microW m ma sarebbe sbagliatissimo scriverla7 microWm interpretando la preposizione lsquoperrsquo allrsquoinglese7

7In italiano lsquodivisorsquo si dice lsquoalrsquo non lsquoperrsquo al massimo si puograve dire lsquoper ognirsquo Drsquoaltra parte illimite di velocitagrave urbano egrave di cinquanta chilometri allrsquoora o di cinquanta chilometri per ora

Capitolo 10

LATEX la matematicaavanzata

Questo capitolo egrave dedicato a chi ha bisogno di scrivere espressioni matematicheun porsquo piugrave complesse di quelle che si possono comporre con i comandi base diLATEX esposti nel capitolo precedente

Egrave comodo fare uso del pacchetto di estensione amsmath Questa estensioneegrave il frutto della collaborazione con lrsquoAmerican Mathematical Society (AMS) chedai tempi del Plain TEX originale anzi del TEX78 la primissima versione delsistema TEX ha sempre collaborato ed egrave sempre stata strenua sostenitrice diquesto software ne ha sponsorizzato il lsquotrade markrsquo ed egrave stata la prima societagravescientifica ad accettare i contributi alle proprie riviste scritti in Plain TEX inAMSTEX e infine in AMSLATEX vale a dire con i programmi standard estesicon i pacchetti preparati dai programmatori della Societagrave stessa e poi messi adisposizione di tutta la comunitagrave degli utenti La American Mathematical Societyha anche messo a disposizione i file di classe specializzati per scrivere articolidestinati alle sue varie pubblicazioni ora questa pratica egrave seguita da tutte le piugraveimportanti riviste scientifiche internazionali anche gli atti di molti congressi sonoscritti usando direttamente i file sorgente degli autori delle memorie presentatea quei congressi

Il pacchetto principe per lrsquoutente generico egrave il pacchetto amsmath Questopacchetto mette a disposizione una miriade di comandi nuovi da quelli che servo-no per usare altri simboli oltre a quelli giagrave molto numerosi presenti normalmentein LATEX a quelli che servono per predisporre incolonnamenti particolari a quelliche servono per comporre segni o strutture matematiche avanzate

101 I simboli di amsmathIl pacchetto amsmath consente di accedere ai simboli delle tabelle 101 e 102

Se insieme a amsmath si invoca anche amssymb si hanno disponibili tra glialtri anche i vecchi segni di LATEX209 forniti anche dal pacchetto ltxsymb ilcui uso come si egrave avuto occasione di commentare egrave oggi sconsigliato Drsquoaltraparte amssymb invoca a sua volta amsfonts che mette a disposizione anche altrifont in particolare i font lsquoEuler frakturersquo che in matematica possono talvoltarisultare piugrave efficaci dei caratteri calligrafici

175

176 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

ulcorner p urcorner q llcorner xlrcorner y dashrightarrow 99K dashleftarrow L99widehat widetilde ˜ dasharrow 99K

rightleftharpoons leftrightharpoons angle anghbar ~ sqsubset sqsupset Amho f square lozenge diams

vartriangleright B vartriangleleft C trianglerighteq Dtrianglelefteq E circleddash boxdot

boxplus boxtimes boxminus blacksquare centerdot blacklozenge

circlearrowright circlearrowleft Vdash 13Vvdash vDash twoheadrightarrow

twoheadleftarrow leftleftarrows hArr rightrightarrows rArrupuparrows downdownarrows upharpoonright

downharpoonright upharpoonleft downharpoonleft rightarrowtail leftarrowtail leftrightarrows

rightleftarrows Lsh Rsh rightsquigarrow leftrightsquigarrow looparrowleft looparrowright circeq $ succsim

gtrsim amp gtrapprox multimap (therefore there4 because ∵ doteqdot +triangleq precsim - lesssim

lessapprox eqslantless 0 eqslantgtr 1curlyeqprec 2 curlyeqsucc 3 preccurlyeq 4

leqq 5 leqslant 6 lessgtr ≶backprime 8 risingdotseq fallingdotseq

succcurlyeq lt geqq = geqslant gtgtrless ≷ vartriangleright B vartriangleleft C

trianglerighteq D trianglelefteq E bigstar Fbetween G blacktriangledown H blacktriangleright I

blacktriangleleft J vartriangle M blacktriangle Ntriangledown O eqcirc P lesseqgtr Q

gtreqless R lesseqqgtr S gtreqqless TRrightarrow V Lleftarrow W veebar Y

barwedge Z doublebarwedge [ measuredangle ]sphericalangle ^ varpropto prop smallsmile `

smallfrown a Subset b Supset cCup d Cap e curlywedge f

curlyvee g leftthreetimes h rightthreetimes isubseteqq j supseteqq k bumpeq l

Bumpeq m lll ≪ ggg ≫circledS s pitchfork t dotplus ubacksim v backsimeq w complement

intercal ᵀ circledcirc circledast ~

Tabella 101 Prima serie di simboli accessibili con il pacchetto amsmath

102 LE ESTENSIONI DEI FONT MATEMATICI 177

lvertneqq gvertneqq nleq ngeq nless ≮ ngtr ≯

nprec ⊀ nsucc lneqq gneqq nleqslant ngeqslant lneq gneq 13 npreceq

nsucceq precnsim succnsim lnsim gnsim nleqq ngeqq precneqq succneqq

precnapprox succnapprox lnapprox gnapprox nsim ncong

diagup diagdown varsubsetneq varsupsetneq nsubseteqq nsupseteqq

subsetneqq $ supsetneqq varsubsetneqq ampvarsupsetneqq subsetneq ( supsetneq )

nsubseteq nsupseteq + nparallel ∦nmid - nshortmid nshortparallel

nvdash 0 nVdash 1 nvDash 2nVDash 3 ntrianglerighteq 4 ntrianglelefteq 5

ntriangleleft 6 ntriangleright 7 nleftarrow 8nrightarrow 9 nLeftarrow nRightarrow

nLeftrightarrow lt nleftrightarrow = divideontimes gtvarnothing empty nexists Finv `

Game a eth eth eqsim hbeth i gimel ג daleth k

lessdot l gtrdot m ltimes nrtimes o shortmid p shortparallel q

smallsetminus r thicksim sim thickapprox asympapproxeq u succapprox v precapprox w

curvearrowleft x curvearrowright y digamma zvarkappa κ Bbbk k hslash

backepsilon

Tabella 102 Seconda serie di simboli accessibili con il pacchetto amsmath

Invece se non occorre tutto il macchinario di amsmath ma occorrono soloalcuni simboli in particolare le lettere maiuscole ad aste raddoppiate si puograveusare solo il pacchetto amsfonts che definisce il comando mathbb per usarleQui nelle tabelle citate si egrave riportato tutto lrsquoinsieme dei simboli componibili permezzo di tutti i pacchetti associati a amsmath in modo che il lettore abbia laconsapevolezza della potenza del sistema TEX per quanto riguarda la simbologiadisponibile

102 Le estensioni dei font matematiciLa AMS ha messo a disposizione due altre polizze di font chiamate cripticamentemsam e msbm i cui simboli sono direttamente accessibili con il pacchetto amsfonts

Nella tabella 102 si notano diversi operatori binari lsquonegatirsquo i font norma-li di LATEX contengono anche il qualificatore not che serve per creare persovrapposizione1 la negazione di qualsiasi operatore binario

1Si veda il capitolo 21 dove si spiega che il comando not va modificato in modo da renderlo

178 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

In linea di principio sarebbe desiderabile usare sempre i segni negati dellatabella 102 talvolta perograve bisogna fare di necessitagrave virtugrave e ricorrere a not peresempio non crsquoegrave preconfezionato il simbolo di lsquonon appartenenzarsquo notin questosi puograve ottenere negando lrsquooperatore in a isin b e il risultato appare pienamenteaccettabile In altri casi come per esempio per lrsquooperatore lsquonon esistersquo si puogravenegare lrsquooperatore lsquoesistersquoexists ma se si fa cosigrave si ottiene existx Se invece siusa direttamente lrsquooperatore nexists il risultato egrave molto migliore x anzi egraveperfetto

Unrsquoaltra cosa a cui bisogna fare attenzione sono gli spazi che precedonoe seguono gli operatori di vario genere a seconda di ciograve che li precede o lisegue il discorso puograve risultare abbastanza complesso ma egrave completamentedescritto nel TEXbook che riporta anche la tabella completa per tutte le com-binazioni di accostamento dei vari operatori e dei vari simboli matematiciGeneralmente lo spazio viene azzerato quando due operatori dello stesso tiposi susseguono per esempio per dire che lrsquoordinamento implicato dallrsquoopera-tore le viene esteso dallrsquoordinamento implicato da non egrave corretto scrivere( leq subseteq preceq ) ottenendo lesube percheacute gli spazi sono sba-gliati bisogna invece scrivere ( leq subseteq preceq ) percheacute leparentesi di gruppo nascondono allrsquooperatore intermedio la natura del lorocontenuto infatti si ottiene le sube

Questi sono punti delicati forse troppo tecnici per la natura di questo testoma ricordiamoci la tipografia egrave unrsquoarte e la composizione tipografica dellamatematica ne costituisce un livello superiore LATEX puograve fare di tutto da soloma qualche volta ha bisogno di un piccolo aiuto da parte del compositore

103 I sistemi di equazioniI sistemi di equazioni sono formati da un certo numero di equazioni incolonnateuna sopra lrsquoaltra di solito allineate in modo che i segni di uguaglianza (oqualunque altro segno di relazione) siano incolonnati verticalmente

LATEX egrave nato con un ambiente eqnarray (anche asteriscato) che consente dieseguire questo incolonnamento per esempio

3x+ 7y minus 2z = 13 (101)2y + 3z = 12 (102)

5xminus 3y + 4z = 6 (103)

in cui le equazioni sono numerate da 101 a 103 e vi si puograve fare riferimentosingolarmente usando il comando label alla fine di ciascuna riga Il sistemaesposto egrave stato scritto con il codice

begineqnarray3x + 7y - 2z amp=amp 13 labelequsistema1

2y + 3z amp=amp 12 labelequsistema25x - 3y + 4z amp=amp 6 labelequsistema3

endeqnarray

Se invece di usare lrsquoambiente eqnarray si fosse usato lrsquoambiente eqnarray leequazioni non sarebbero state numeratecompatibile con il formato archiviabile un altro segno che va modificato egrave mapsto

104 GLI AMBIENTI DI COMPOSIZIONE DI AMSMATH 179

Purtroppo questo ambiente egrave nato con un lsquopeccato originalersquo se il lettoreosserva bene constata che lo spazio a destra e a sinistra dei segni di uguaglian-za nelle equazioni 101ndash103 egrave maggiore che non nelle equazioni del capitoloprecedente Non si sa se questo fosse voluto o se sia successo per caso maquando dal vecchio LATEX209 si egrave passati al nuovo LATEX2ε questo difetto egravestato conservato apparentemente per mantenere una compatibilitagrave con i filepredisposti per essere composti con la vecchia versione

Oggi gli ambienti eqnarray e eqnarray non dovrebbero venire piugrave usati masi dovrebbero usare solo gli ambienti predisposti dal pacchetto amsmath

104 Gli ambienti di composizione di amsmathIl pacchetto amsmath mette a disposizione una serie di ambienti per comporreeo incolonnare equazioni o per raccoglierle in modo ordinato ovvero per scriverlesu piugrave righe in modo professionale anche se lrsquointervento dellrsquoautore per conoscereil ritmo delle espressioni matematiche egrave fondamentale

Gli ambienti disponibili sono raggruppati nella tabella 103

equation equation align aligngather gather flalign flalignmultline multline alignat alignataligned split subequations

Tabella 103 Gli ambienti di allineamento di amsmath

Tutti gli ambienti hanno la versione asteriscata che differisce da quella nonasteriscata per la mancanza delle numerazione dellrsquoequazione solo split e alignedne sono privi percheacute devono essere usati allrsquointerno degli altri ambienti nonpossono essere usati da soli subequations invece ne egrave privo percheacute serve pernumerare le equazioni in un modo particolare

La numerazione puograve anche essere esclusa inserendo il comando notag primadel segno di lsquoa caporsquo di ogni riga dellrsquoallineamento alternativamente il coman-do tag consente di inserire una etichetta a propria scelta come per esempionellrsquoequazione

a2 + b2 = c2 (Teorema di Pitagora)

ottenuto scrivendo

beginequationa^2 +b^2 = c^2 tagTeorema di Pitagoraendequation

Tutti gli ambienti di incolonnamento usano il segno amp per passare da unacolonna allrsquoaltra e non vogliono mai due segni a cavallo degli operatori di relazionecome succede con eqnarray ma ne vogliono uno solo prima dellrsquooperatore

1041 Lrsquoambiente equationDi equation si egrave giagrave detto quanto basta il suo compagno asteriscato a parte lanumerazione consente di contenere tutti gli altri ambienti che possono essereinclusi negli ambienti numerabili in particolare split per scrivere lunghe equazioni

180 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

su piugrave righe La presenza di equation consente di evitare di usare displaymathquestrsquoultimo infatti non garantisce le spaziature corrette e omogenee con quelledegli altri ambienti matematici La definizione mediante lrsquoasterisco egrave anche piugravecoerente con lrsquouso dellrsquoasterisco negli altri ambienti numerabili ma di cui sidesidera eliminare la numerazione

1042 Lrsquoambiente alignedLrsquoambiente aligned serve per comporre un allineamento di equazioni o di espressio-ni matematiche allrsquointerno di un altro ambiente che sia in grado eventualmentedi assegnare un numero a questo allineamento Per esempio si puograve scrivere

Kern(x) = minus[log(x2) + γ] + 14πBein(x)

+ 12

nminus1sumk=0

(nminus k minus 1)(x2)2kminusn

k cos (3n+ 2k)π4

+ 12

infinsumk=0

(x2)n+2k

k(n+ k) [Φ(k) + Φ(n+ k)] cos (3n+ 2k)π4

(105)

Questo ambiente produce risultati molto simili a quelli dellrsquoambiente split a cuisi rinvia per i commenti

1043 Lrsquoambiente splitLrsquoambiente split serve per dividere una lunga espressione matematica fra piugraverighe

Lrsquoequazione su piugrave righe 105 resa con aligned con split diventa

Kern(x) = minus[log(x2) + γ] + 14πBein(x)

+ 12

nminus1sumk=0

(nminus k minus 1)(x2)2kminusn

k cos (3n+ 2k)π4

+ 12

infinsumk=0

(x2)n+2k

k(n+ k) [Φ(k) + Φ(n+ k)] cos (3n+ 2k)π4

(106)

Il risultato egrave stato ottenuto con

beginequationbeginsplitKer_n(x) amp = -[log(x2)+gamma]

+textstylefrac14piBei_n(x)amp quad+frac12sum_k=0^n-1

frac(n-k-1)(x2)^2k-nkcosfrac(3n+2k)pi4

amp qquad+frac12sum_k=0^inftyfrac(x2)^n+2kk(n+k)[Phi(k)+Phi(n+k)]

cosfrac(3n+2k)pi4endsplitlabelequKer2

endequation

104 GLI AMBIENTI DI COMPOSIZIONE DI AMSMATH 181

La differenza fra split e aligned egrave che il primo ambiente oltre a consentireallineamenti verticali come per altro fa anche il secondo ambiente produce unrisultato finale che a parte il suo contenuto ha esattamente la larghezza dellariga in cui compare mentre aligned produce il suo risultato finale sotto formadi un oggetto che egrave largo quanto il suo contenuto In tal modo questo oggettopuograve costituire un elemento di costruzione di un oggetto piugrave grande Questi dueambienti inoltre differiscono dallrsquoambiente multline percheacute consentono degliallineamenti verticali mentre multline non lo consente come si vedragrave tra poco

1044 Lrsquoambiente multlineLa stessa equazione su tre righe composta con lrsquoambiente multline diventa

Kern(x) = minus[log(x2) + γ] + 14πBein(x)

+ 12

nminus1sumk=0

(nminus k minus 1)(x2)2kminusn

k cos (3n+ 2k)π4

+ 12

infinsumk=0

(x2)n+2k

k(n+ k) [Φ(k) + Φ(n+ k)] cos (3n+ 2k)π4 (107)

con il codice sorgente

beginmultlineKer_n(x) = -[log(x2)+gamma]

+textstylefrac14piBei_n(x)+frac12sum_k=0^n-1

frac(n-k-1)(x2)^2k-nkcosfrac(3n+2k)pi4

+frac12sum_k=0^inftyfrac(x2)^n+2kk(n+k)[Phi(k)+Phi(n+k)]

cosfrac(3n+2k)pi4endmultline

Si noti in particolare la mancanza dei segni di incolonnamento amp e la mancanzadei comandi di spaziatura quad e qquad presenti negli esempi precedenti infattimultline compone la prima riga allineata con il margine sinistro delle equazioniallinea lrsquoultima espressione con il margine destro tenendo conto del numerodellrsquoequazione infine allinea tutte le altre righe in modo da centrarle nello spaziodisponibile Se il numero dellrsquoequazione egrave a destra egrave in linea con lrsquoultima rigaoppure sotto allrsquoultima riga se si decide di comporre con i numeri delle equazionia sinistra il numero egrave allineato con la prima riga oppure egrave collocato prima dellaprima riga in entrambi i casi non crsquoegrave mai sovrapposizione fra il numero e leespressioni

Questa gestione intelligente della collocazione del numero dellrsquoequazione inmodo da non sovrapporsi mai allrsquoequazione stessa egrave comune a tutti gli ambientimatematici numerabili prodotti da amsmath questa gestione intelligente giagrave dasola basterebbe a giustificare lrsquouso sistematico di amsmath e dei suoi compagniogni qual volta si debbano scrivere testi con equazioni anche semplici (prive disegni insoliti) ma lunghe

Egrave necessario richiamare lrsquoattenzione su come si dividano le espressioni ma-tematiche fra piugrave righe il punto di cesura va messo prima di un operatore di

182 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

relazione o di un operatore binario senza ripeterlo alla fine della riga precedentecome per altro egrave giagrave stato detto Ma se da un lato non sarebbe opportunospezzare una espressione di ldquograndirdquo dimensioni racchiusa fra parentesi talvoltaegrave necessario farlo In questo modo diventa difficile usare correttamente i comandileft e right per rendere automatico il dimensionamento dei delimitatoriproprio a causa dellrsquoespressione spezzata fra piugrave righe Egrave quindi necessariorinunciare agli automatismi offerti da LATEX e ricorrere ai comandi manualibigl bigr eccetera come mostrato nella pagina 168 Anche se gli ambientidi amsmath aiutano moltissimo per comporre espressioni matematiche spezza-te sta allrsquoautore oltre che al compositore trovare il giusto ritmo di divisionedi queste lunghe espressioni e di racchiuderle fra le parentesi di dimensionicorrette

1045 Lrsquoambiente gatherLrsquoambiente gather serve per raccogliere ordinatamente da due a piugrave equazioniuna per riga senza nessun incolonnamento particolare ma centrando le varieequazioni in un certo senso potrebbe essere visto come una sequenza di ambientiequation con questo ambiente si possono raccogliere le equazioni di Maxwellper esempio nella forma

nablatimes ~E = minuspart~B

partt(108)

nablatimes ~H = part ~D

partt+ ~J (109)

nabla middot ~D = ρ (1010)nabla middot ~B = 0 (1011)

ottenuta scrivendo

begingathernablatimesvecE=-fracpartialvecBpartial tnablatimesvecH=

fracpartialvecDpartial t+vecJnabla cdotvecD= rhonabla cdotvecB= 0

endgather

1046 Lrsquoambiente alignAl contrario usando lrsquoambiente align le stesse equazioni di Maxwell diventano

nablatimes ~E = minuspart~B

partt(1012)

nablatimes ~H = part ~D

partt+ ~J (1013)

nabla middot ~D = ρ (1014)nabla middot ~B = 0 (1015)

ottenute scrivendo

104 GLI AMBIENTI DI COMPOSIZIONE DI AMSMATH 183

beginalignnablatimesvecEamp= -fracpartialvecBpartial tnablatimesvecHamp=

fracpartialvecDpartial t+vecJnabla cdotvecDamp= rhonabla cdotvecBamp= 0

endalign

Si nota che lrsquounica differenza consiste nel comando di incolonnamento amp inseritoprima di ciascun segno di uguaglianza

Allrsquointerno di un ambiente align possono comparire diversi incolonnamentinon uno solo come nellrsquoesempio precedente per esempio le equazioni di Maxwellpotrebbero venire riorganizzate cosigrave

nablatimes ~E = minuspart~B

parttnabla middot ~D = ρ (1016)

nablatimes ~H = part ~D

partt+ ~J nabla middot ~B = 0 (1017)

usando la scrittura

beginalignnablatimesvecEamp=-fracpartialvecBpartial t

ampnabla cdotvecDamp=rhonablatimesvecHamp=fracpartialvecDpartial t+vecJ

ampnabla cdotvecBamp=0endalign

1047 Lrsquoambiente falignLrsquoambiente flalign differisce dallrsquoambiente align solo per il fatto che le espressioniallineate vengono spostate al massimo allrsquoesterno della riga dove compaiono

nablatimes ~E = minuspart~B

parttnabla middot ~D = ρ (1018)

nablatimes ~H = ~J + part ~D

parttnabla middot ~B = 0 (1019)

e si vede chiaramente che questo ambiente va meglio quando le equazioni nonsono numerate e quando le espressioni sono sufficientemente lunghe nelle altrecircostanze egrave meglio usare align Se le espressioni sono piugrave di due in ogni riga lospazio viene usato meglio ma resta il fatto che i numeri delle equazioni diventanoancora piugrave lsquosuperfluirsquo

1048 Lrsquoambiente alignatLrsquoambiente alignat egrave un porsquo particolare percheacute accetta un numero come argomen-to del comando di apertura che specifica quanti punti di allineamento compaionoin ogni riga la regola dice conta il massimo numero di segni amp che compaiono in

184 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

ogni riga aggiungi 1 e dividi per 2 Cosigrave lrsquoesempio del manuale diventa

x = y1 minus y2 + y3 minus y5 + y8 minus by eq (321) (1020)= yprime ylowast by eq (41) (1021)= y(0)yprime by Axiom 1 (1022)

prodotto con il codice

beginalignat2xamp= y_1 - y_2 + y_3 -y_5 +y_8 -dots

ampquad amp textby eq~(321)amp=yrsquocirc y^ amp amp textby eq~(41)amp= y(0)yrsquo amp amp textby Axiom 1

endalignat

e nel quale si osserva la presenza del comando text questo comando serve perscrivere del testo allrsquointerno di espressioni matematiche se questo testo contieneuna espressione matematica in linea questa va esplicitamente racchiusa fra idelimitatori ( e )

1049 Lrsquoambiente subequationsLrsquoambiente subequations egrave particolare percheacute le equazioni allrsquointerno di questoambiente vengono numerate con un contatore subalterno cosigrave da produrre nu-meri del tipo (1022a) (1022b) eccetera Per esempio il sistema di proprietagravecondizionate

Im[F (σ + i 0)] = 0 forallσ gt 0 (1023a)F (p) =infin forallσ gt 0 (1023b)

limprarriω0

(pminus iω0)F (p) = k forallω0 e con 0 le k ltinfin (1023c)

limprarrinfin

F (p)p = h con 0 le h ltinfin (1023d)

Re[F (0 + iω)] ge 0 forallω (1023e)

egrave ottenuto con il codice seguente

DeclareMathOperatoruimmmathrmi nel preambolobeginsubequations

labelequsubebegin align

Im[F(sigma+uimm 0)] amp= 0 ampforallsigmagt0F(p) ampnot=inftyampforallsigmagt0lim_ptouimmomega_0(p-uimmomega_0)F(p)amp=k

amp forallomega_0text e con 0le kltinfty

lim_ptoinfty F(p)pamp=h amptextcon 0le hltinftyRe[F(0+uimmomega)] ampge 0 ampforallomega

labelequsube5endalign

endsubequations

104 GLI AMBIENTI DI COMPOSIZIONE DI AMSMATH 185

Con il comando label inserito prima dellrsquoambiente align ma dentro al-lrsquoambiente subequations si recupera il numero dellrsquointero sistema di condizio-ni 1023 invece con il comando label inserito allrsquointerno dellrsquoambiente alignsi recupera il lsquonumerorsquo assegnato a ciascuna condizione per esempio allrsquoultimacondizione 1023e si fa riferimento mediante refequsube5

La definizione dellrsquounitagrave immaginaria uimm egrave un porsquo particolare nel sensoche essa egrave definita come un operatore invece che come una semplice variabileSi noti che se si usasse il comando primitivo mathop la definizione dovrebbecontenere oltre alla lsquoirsquo in tondo anche uno strut o dello spazio matematico al finedi centrare la lsquoirsquo rispetto al suo asse matematico Egrave questa una ragione in piugraveper ricorrere ai comandi di definizione disponibili con il pacchetto amsmath chepermettono di concentrarsi sul significato intrinseco di ciograve che si sta definendosenza badare ai dettagli compositivi a livello di base

Esercizio 101 Il lettore provi a ripetere la composizione di questo sistema dicondizioni 1023 definendo il comandouimm con newcommand ed usandosolamente mathop Che cosa succede

10410 Gli ambienti spezzatiDi default il pacchetto amsmath fa sigrave che gli ambienti di incolonnamento pre-cedentemente descritti non vengano spezzati da eventuali salti di pagina marestino composti interamente in una sola pagina Questo in generale egrave preferibilerispetto a quando si egrave obbligati a voltare pagina per completare la lettura di ungruppo di equazioni legate assime in un uno di questi ambenti

Tuttavia talvolta egrave impossibile per vari motivi mantenere tutte le espressionidi un mabiente nella stessa pagina egrave sicuramente obbligatorio quando si usanogli ambienti split aligned gathered alignedat andare ad una nuova pagina egraveimpossibile mentre con multline sarebbe possibile ma sarebbe anche ldquosconve-nienterdquo Negli altri casi si puograve essere piugrave tolleranti Per questo scopo il pacchettoamsmath mette a disposizione due comandi

allowdisplaybreaks[〈codice〉]displaybreak[〈codice〉]

per consentire di eseguire un fine pagina fra una espressione e lrsquoaltraPrecisamenteallowdisplaybreak puograve essere messo nel preambolo e vale

per tutti gli incolonnamenti matematici del documento se allrsquointerno di uno diquesti ambienti non si vuole eseguire un cambio di pagina invece di usare ilcomune comando si puograve osare la sua variante asteriscata che appuntoimpedisce il salto di pagina

Invece il comando [displaybreak va usato solamente prima del comando dopo il quale si desidera consentire un salto di pagina

Il 〈codice〉 per entrambi i comandi funziona alla stessa maniera dei comandisimili pagebreak da usarsi nel corpo del testo Si tratta di una cifra nellrsquointer-vallo 0ndash42 che dagrave un peso alla ldquolicenzardquo di eseguire un cambio di pagina 0 egrave unblando consenso mentre 4 egrave un ordine perentorio

Vale la pena di osservare qui che il comando di fine espressione ammette lastessa sintassi che esso usa quando viene usato nel testo (vedi la sintassi espostanella pagina 498) sia per la versione normale sia per quella asteriscata

2Il comando allowdisplaybreak non ammette il valore 0

186 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

[〈spazio〉][〈spazio〉]

cosiccheacute usando il valore 〈spazio〉 si puograve controllare anche la spaziatura fra leequazioni

105 Altri comandi e ambienti

Il pacchetto amsmath offre numerosi altri comandi e ambienti che consentonodi comporre la matematica in modo estremamente professionale

1051 Definizione di operatori funzionali

Qui si cita nuovamente il comando per definire i nomi di nuovi operatorifunzionali

DeclareMathOperator〈operatore〉〈definizione〉

cosigrave che se si volesse definire lrsquooperatore per lrsquoarcoseno iperbolico lsquoarsinhrsquo (chenon egrave definito neacute da LATEX standard neacute da amsmath) basterebbe dichiarare nelpreambolo

DeclareMathOperatorarsinhmathrmarsinh

Il comando asteriscato serve per definire operatori funzionali con i limiti

1052 Le frazioni in generale e le frazioni continue

10521 Le frazioni e gli altri costrutti simili

Il pacchetto amsmath consente di scrivere le frazioni e gli altri costrutti similialle frazioni con tre comandi distinti il nome lsquonormalersquo che compone in uno stilediverso in modo testo rispetto al modo display il nome testuale per comporresempre e comunque in modo testo e il modo lsquoenfaticorsquo per scrivere sempree comunque in modo display per esempio le frazioni normalmente vengonocomposte con il comando frac ma il modo testuale viene composto con tfrace il modo enfatico con dfrac Lrsquooperatore binomiale per esempio si componecon binom (

n

k

)= n(nminus 1)(nminus 2) middot middot middot (nminus k + 1)

1 middot 2 middot 3 middot middot middot k

ma se proprio si volesse indicare il coefficiente binomiale in modo display mentresi egrave in modo testo e si usasse dbinom si otterrebbe

(n

k

) come si vede questo

egrave un tipo di scrittura da evitare assolutamente quando si compone matematicain linea con il testo percheacute altera vistosamente lrsquoavanzamento di riga

105 ALTRI COMANDI E AMBIENTI 187

10522 Le frazioni continue

Fra i comandi utilissimi conviene citare quello per la composizione delle frazionicontinue cfrac con il quale si possono comporre facilmente espressioni del tipo

tanh z =z

1 +z2

3 +z2

5 +z2

7 +z2

middot middot middot

(1024)

composta con i comandi

beginequationtanh z = cfracz1+cfracz^23+cfracz^25+

cfracz^27+cfracz^2cdotsendequation

1053 Il testo intercalato alle equazioniUn altro comando molto interessante egrave intertext esso consente di inserireun (breve) testo che interrompe un incolonnamento di equazioni senza perdere iparametri dellrsquoincolonnamento cosigrave che le successive equazioni mantengono lostesso incolonnamento per esempio

a4x4 + a2x

2 + a0 = 0 (1025)

diventa una semplice equazione di secondo grado

a4t2 + a2t+ a0 = 0 (1026)

se si pone

t = x2 (1027)

Simile a intertext egrave il comando text giagrave visto esso serve per inserireun porsquo di testo dentro una formula specialmente negli enunciati delle condizionima non solo esso serve anche e tipicamente allrsquointerno dellrsquoambiente caseslrsquoequazione 95 usata per mostrare la composizione dei delimitatori estensibili edel delimitatore invisibile puograve essere scritta mediante questo ambiente e questocomando nella maniera seguente

x12 =

minusbplusmnradicb2 minus 4ac

2a se b2 minus 4ac gt 0

minus b

2a se b2 minus 4ac = 0

minusbplusmn iradic

4acminus b22a se b2 minus 4ac lt 0

(1028)

scrivendo nel file sorgente

188 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

beginequationx_12=begincasesdfrac-bpmsqrtb^2-4ac2a

amptextse (b^2-4acgt0)[15ex]-dfracb2a amptextse (b^2-4ac=0)[15ex]dfrac-bpmuimmsqrt4ac-b^22a

amptextse (b^2-4aclt0)endcases

endequation

Si noti che nellrsquoambito dellrsquoargomento di text la condizione egrave nuovamentecomposta come matematica in linea quindi egrave necessario usare gli appositi comandi( e ) come si fa normalmente quando si compone allrsquointerno dei capoversi Sinoti anche lrsquouso del comando dfrac per obbligare LATEX a comporre le frazioniin modo display nonostante che spontaneamente esso comporrebbe quelle frazioniin modo testo lrsquoulteriore spaziatura mediante lrsquoargomento facoltativo [15ex]serve per compensare lrsquoeffetto prodotto dallrsquouso delle frazioni in display

Esercizio 102 Che cosa succederebbe se nellrsquoequazione 1028 non si usassedfrac

Esercizio 103 Che cosa succederebbe nellrsquoequazione 1028 se si usasse senzail suo argomento facoltativo

1054 Le frecce estensibiliLe frecce estensibili diventano lunghe quanto i loro argomenti si tratta deicomandi xleftarrow e xrightarrow che accettano due argomenti uno obbli-gatorio che saragrave collocato sopra la freccia e uno facoltativo che verragrave collocatosotto la freccia

An+microminus1larrminusminusminusminusminus B nplusmniminus1minusminusminusminusrarr

TC (1029)

composto conA xleftarrown+mu-1 B xrightarrow[T]npm i-1 C

1055 Gli indici incolonnatiTalvolta puograve essere necessario indicare gli indici di somma o di prodotto condiverse indicazioni o condizioni come insum

0leilem0ltjltn

P (i j) (1030)

Questo risultato si ottiene mediante substack come si vede dallrsquoesempio 1030composto conbeginequationsum_substack0le ile m

0ltjltn

P(i j)endequation

105 ALTRI COMANDI E AMBIENTI 189

1056 Gli integrali multipliNel caso di integrali multipli LATEX senza estensioni necessiterebbe di un aggiu-stamento della spaziatura si osserviint int int int

dw dxdy dzintintintint

dw dx dy dz (1031)

Nel primo caso si egrave usato quattro volte il segno di integrale mentre nel secondocaso si egrave usato il comando per lrsquointegrale quadruplo disponibile con il pacchettoamsmath che mette a disposizione anche i comandi per lrsquointegrale doppio e perquello triplo in totale i comandi disponibili sono int per lrsquointegrale sempli-ce iint per lrsquointegrale doppio iiint per lrsquointegrale triplo e iiiint perlrsquointegrale quadruplo infine crsquoegrave anche idotsint per lrsquointegrale multiplo

1057 Lrsquooperatore differenzialeSi noti nellrsquoequazione 1031 il segno di differenziale usato come un operatorespeciale che lascia il suo normale spazio alla sua sinistra ma non lascia spazioalla sua destra inoltre esso egrave scritto in tondo come prescrivono le norme ISOvalide per le espressioni matematiche per la fisica e la tecnologia Egrave chiaro chenon si tratta di un normale operatore definibile con il comando giagrave descrittoDeclareMathOperator percheacute con questa definizione il differenziale avrebbelo spazio anche alla sua destra Nel preambolo egrave stato definito lrsquooperatore didifferenziale diff servendosi invece di un operatore lsquovuotorsquo cosigravenewcommanddiffmathopmathrmd

I dettagli di newcommand verranno visti nel capitolo 17 qui limitiamo la nostraattenzione sullrsquooperatore mathop il cui argomento viene definito come operatorematematico salvo che in questo caso il suo argomento egrave vuoto nonostante ciogravegli spazi che attorniano gli operatori sono rispettati anche a destra ma questospazio a destra non ci vuole quindi con il comando si arretra della stessaquantitagrave dopo di che si inserisce il segno del differenziale in tondo Ecco questaegrave una delle rare volte in cui si egrave usato un comando di spaziatura matematica(arretramento di uno spazio fine) ma lo si egrave fatto a ragion veduta per definireun comando per un operatore speciale come il differenziale

Si noti che i matematici affermano che il simbolo del differenziale non rap-presenta un operatore qui non si discute la sua intima essenza ma si sottolineail fatto che le norme ISO prescrivono la scrittura in tondo solo per le espressionimatematiche della fisica e della tecnologia dove le variabili devono essere scrittein corsivo e dove la maggior parte delle variabili ha significati standardizzati Nelcaso specifico d puograve voler dire diametro densitagrave distanza dei piani reticolaricoefficiente piezoelettrico eccetera come si deduce dalla tabella B9 dellrsquoappen-dice B2 La possibile confusione del segno corsivo del differenziale con uno diquei simboli standardizzati giustifica la norma ISO almeno agli occhi dei fisici edei tecnologi

Vale la pena di sottolineare che gli spazi del differenziale sono necessari perscrivere gli integrali mentre servono di meno per scrivere le equazioni differenzialima ci pensa LATEX a tenerli nella debita considerazione come nella seguenteequazione

ad2x

dt2 + bdxdt + c = f(t)

190 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

1058 I simboli corsivi matematici in neroUna cosa che capita spesso in matematica egrave quella di usare il carattere neroallrsquointerno di una formula composta con carattere medio LATEX senza estensioninon consente di scegliere altro che una formula tutta in carattere medio oppuretutta in carattere nero non consente di mescolare questi due casi a meno dinon fare acrobazie di tipo prescrittivo piuttosto che di mark-up Inoltre se sidesidera comporre una formula tutta nera bisogna dichiararlo prima di entrare inmodo matematico e di conseguenza occorre proteggere la formula lsquonerarsquo dentroun gruppo oppure egrave necessario cancellare lrsquoeffetto di annerimento mediantelrsquoapposito comando

boldmath〈ambiente matematico nero〉unboldmath

Allrsquointerno di una espressione egrave possibile usare il carattere nero ma soloper il tondo non per il corsivo matematico Il comando sarebbe mathbf deltutto analogo al corrispondente comando per il testo textbf ma per il corsivomatematico non crsquoegrave nulla

Lrsquoestensione fornita da amsmath consente di usare il comando boldsymbol ilcui argomento puograve essere qualunque simbolo letterale o operazionale matematico

boldsymbol〈simbolo matematico〉

a cui si aggiunge una scorciatoia (anche qualitativa) del poor man bold pmbche simula il font nero replicando un segno chiaro tre volte con un leggerospostamento a destra e in alto (e questo rende meno definito il segno ecco percheacutequalitativamente si tratta di una soluzione da poverrsquouomo) La sintassi egrave lastessa

pmb〈simbolo matematico〉

In generale si sconsiglia di usare pmb con i font di serie con LATEX non do-vrebbe essere necessario usarlo altro che per i grandi operatori e per i delimitatoriestensibili ma non sembra una operazione molto frequente da fare

Con boldsymbol egrave possibile per esempio usare il corsivo matematico perindicare i vettori

a = axi + ayj + azk

mentre con pmb si ottiene

aaa = axiii+ ayjjj + azkkk

e la differenza si vede ad occhio nudoEgrave disponibile sempre anche il pacchetto bm che produce lo stesso effetto ma

in modo piugrave efficiente per compatibilitagrave con amsmath ridefinisce boldymbol inmodo che sia completamente equivalente al suo comando specifico bm Questopacchetto perograve egrave indipendente da amsmath e puograve essere usato con o senza ilsecondo

106 LE MATRICI E I DETERMINANTI 191

1059 Le espressioni matematiche riquadrateSecondo lo scrivente per mettere in risalto una espressione matematica si puograveusare il meccanismo fornito da LATEX cioegrave mettendola in display talvoltaperograve potrebbe essere necessario ricorrere ad unrsquoenfasi maggiore e per questoscopo basta racchiudere lrsquoespressione dentro ad una cornice amsmath mette adisposizione il comando boxed come nellrsquoesempio seguente

x12 = minusbplusmnradicb2 minus 4ac

2a

composto con

[boxedx_12= frac-bpmsqrtb^2-4ac2a]

106 Le matrici e i determinantiLe matrici e i determinanti sono particolari tabelle che contengono solo oprevalentemente espressioni matematiche amsmath mette a disposizione uncerto numero di ambienti per comporre matrici variamente delimitate e perciogravecon significati matematici diversi

Lrsquoambiente base egrave ovviamente matrix e produce una matrice avente al massimo10 colonne ma sprovvista di delimitatori anche gli altri ambienti consentono unmassimo di 10 colonne ma questo numero puograve venire cambiato se si imposta ilcontatore MaxMatrixCols con un valore diverso

setcounterMaxMatrixCols〈numero delle colonne〉

Gli altri ambienti per costruire matrici o determinanti sono i seguenti pma-trix bmatrix Bmatrix vmatrix e Vmatrix tutti questi racchiudono la matricevera e propria allrsquointerno di una coppia di delimitatori estensibili a seconda deldelimitatore la matrice ha un significato diverso Gli ambienti pmatrix bmatrixe Bmatrix racchiudono la matrice allrsquointerno di una coppia di parentesi tondeoppure quadre oppure graffe lrsquoambiente vmatrix serve per comporre un determi-nante racchiudendo la matrice fra due aste verticali mentre lrsquoambiente Vmatrixserve per comporre una norma racchiudendo la matrice fra due coppie di barreverticali

Grazie a questi ambienti non egrave difficile comporre una espressione del tipo∣∣∣∣∣∣∣∣1 1 0 0minus1 2 1 00 minus1 3 10 0 minus1 4

∣∣∣∣∣∣∣∣ = 30 (1032)

mediante il codice

beginequationbeginvmatrix1 amp 1 amp 0 amp 0

-1 amp 2 amp 1 amp 0

192 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

0 amp-1 amp 3 amp 1 0 amp 0 amp-1 amp 4

endvmatrix= 30

labelequdeterminanteendequation

La scrittura nel file sorgente del codice per la composizione della matematica egrave piugravefacilmente leggibile se si usa una scrittura strutturata ci si rende piugrave facilmenteconto se ogni segno di apertura egrave in corrispondenza con il suo compagno dichiusura usando questa pratica nei limiti del possibile si evitano moltissimierrori e si compone piugrave speditamente

Una equazione matriciale diventa abbastanza semplice da comporre special-mente se si ha lrsquoaccortezza di scrivere in modo strutturato nel file sorgente tuttoquello che va ordinatamente inserito nelle matrici

a11 a12 a13 a14a21 a22 a23 a24a31 a32 a33 a34a41 a42 a43 a44

x1x2x3x4

=

y1y2y3y4

Il codice sorgente egrave

[beginpmatrixa_11 amp a_12 amp a_13 amp a_14 a_21 amp a_22 amp a_23 amp a_24 a_31 amp a_32 amp a_33 amp a_34 a_41 amp a_42 amp a_43 amp a_44

endpmatrixbeginpmatrixx_1x_2x_3x_4

endpmatrix=beginpmatrixy_1y_2y_3y_4

endpmatrix]

107 I diagrammi commutativi

I diagrammi commutativi sono particolari espressioni matematiche a metagrave stradafra un insieme di espressioni matematiche e un disegno che le mette in relazionele une con le altre

Il pacchetto amscd serve per estendere amsmath definendo un ambiente CDcon il quale egrave possibile disegnare diagrammi commutativi piani e senza freccediagonali Per diagrammi piugrave complessi il lettore deve rivolgersi a pacchetti diestensione piugrave specializzati come xypic oppure kuvio

108 LA PUNTEGGIATURA IN MATEMATICA 193

Il diagramma commutativo

SWΛ otimes Tjminusminusminusminusrarr T

End P

(S otimes T )I (Z otimes T )J

stato composto con il codice

[

beginCD

S^mathcalW_Lambdaotimes T gtjgtgt T

VVV VVmathrmEndPV

(Sotimes T)I =(Zotimes T)J

endCD

]

1

egrave stato composto con il codice

[beginCDS^mathcalW_Lambdaotimes T gtjgtgt T VVV VVmathrmEndPV(Sotimes T)I =(Zotimes T)J

endCD]

Oltre ai vari comandi per inserire le frecce o le linee di collegamento fra le varieespressioni si noti lrsquouso di mathcal per scrivere caratteri lsquocalligraficirsquo e lrsquouso delcomando di spaziatura per inserire uno spazio circa pari a quello interparolail comando in matematica si comporta diversamente dai comandi analoghiper il modo testo enspace o thinspace percheacute esso cambia valore a secondache lrsquoespressione matematica che si sta componendo sia in modo testo in mododisplay in modo degli indici del primo ordine o di quelli del secondo ordine

Si prenda nota anche del fatto che lrsquoambiente CD deve essere realizzatoallrsquointerno di un ambiente matematico come quello prodotto da [ ] oppureuno dei vari altri ambienti visti in questo capitolo

A proposito di xypic conviene sottolineare che esso usa una sintassi moltoparticolare dove si fa uso di caratteri speciali per eseguire formattazioni specialiuno di questi caratteri egrave il segno che con lrsquoopzione italian di babel egrave attivo esvolge altre funzioni diverse da quelle che esso egrave chiamato a svolgere quando siusa xypic Per questo conviene ridefinire il comando di apertura dellrsquoambientexy nel modo seguente

toks0=expandafterxyedefxynoexpandshorthandoffnoexpandthetoks0

Si tratta di programmazione con il linguaggio primitivo di TEX salvo per ilcomando shorthandoff che insieme al suo compagno shorthandon serveper disattivare o rispettivamente per riattivare uno o piugrave caratteri attivi egrave uncomando definito da babel In questo modo se si usa il pacchetto xypic bastadare quelle definizioni subito dopo la chiamata del pacchetto e poi si egrave sicuridi poter usare tranquillamente lrsquoambiente xy senza i problemi che il carattereattivo potrebbe dare Si noti che questo trucco deve venire usato ogni voltache si compone in una lingua diversa dallrsquoinglese percheacute in tutte le altre lingueeuropee il segno viene sempre definito attivo

108 La punteggiatura in matematicaLa punteggiatura in matematica egrave tipograficamente un problema aperto percheacutenon esistono norme che regolino la questione egrave piugrave una questione di consuetudini

194 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

tipografiche ed editoriali Anzi ogni casa editrice si premura spesso di fornireai suoi potenziali autori una breve guida in cui sono indicate le tradizionicompositive della casa editrice Gli argomenti spaziano attraverso tutto lo scibileche puograve essere scritto e vanno dai titoli correnti alle testatine e ai piedini finoalle virgole del testo e la punteggiatura in matematica naturalmente se la casaeditrice riceve un contributo da pubblicare in forma direttamente stampabilegeneralmente fornisce i fogli di stile nel linguaggio di videocomposizione chelrsquoautore useragrave Non sono rari i casi di case editrici che forniscono direttamente i filedi classe eo le eventuali estensioni per i libri da pubblicare dopo la composizionecon LATEX

Tuttavia per quel che riguarda la punteggiatura della matematica qualchevolta le informazioni o le prescrizioni sono lacunose quindi lrsquoautore deve supplirecon la sua esperienza e la sua sensibilitagrave

Non dovrebbero sussistere problemi per le espressioni matematiche (brevi)che compaiono in linea con il testo dove la punteggiatura dominante egrave quellatestuale

Direi che non dovrebbero esserci problemi nemmeno per la punteggiaturainterna a ogni espressione matematica questa punteggiatura specifica internaalle espressioni matematiche ha un suo particolare significato matematico che faparte della sua lsquogrammaticarsquo I problemi maggiori nascono per la punteggiaturaesterna alle espressioni matematiche in display

Tuttavia cominciamo con i problemi minori di punteggiatura interna Inmatematica si usano essenzialmente gli stessi segni di interpunzione che si usanonel testo eccetto il punto interrogativo salvo che alcuni di questi segni hannoun significato particolare per esempio il punto esclamativo che segue un numerointero o un simbolo che rappresenta un numero intero significa che di quelnumero si considera il lsquofattorialersquo

n = n(nminus 1)(nminus 2) middot middot middot 2 middot 1

Lo stesso punto esclamativo puograve servire per cambiare il significato di un lsquoquan-tificatorersquo logico per esempio exist da taluni egrave usato nel senso di lsquoesiste ed egraveunicorsquo

I due punti hanno un significato particolare in espressioni logiche cosigrave come(in Italia) possono indicare lrsquooperazione di divisione quindi non vengono usaticome segno di interpunzione

Il punto e virgola ha il solo significato di segno di interpunzione mentre lavirgola e il punto sono lsquoanfoterirsquo possono servire ora con il significato di segnodi interpunzione ora con il significato di separatore decimale

Scrivendo in inglese il punto serve come separatore decimale e come puntofermo mentre la virgola egrave un semplice segno di interpunzione usato comepunteggiatura interna per separare gli elementi di una lista

Al contrario in qualunque lingua diversa dallrsquoinglese le norme ISO prescrivonola virgola nella funzione di separatore decimale e quindi la virgola viene adassumere due ruoli distinti il punto per altro sembrerebbe declassato a svolgerela sola funzione di segno di interpunzione (raro nellrsquointerpunzione interna) mapoi rientra come separatore decimale nelle costanti numeriche lsquorealirsquo di tutti ilinguaggi di programmazione Nel capitolo 17 si vedragrave come fare per convincereLATEX a trattare correttamente le due funzioni della virgola in matematica

La punteggiatura esterna egrave quella che pone i principali problemi Mi spiegomeglio per punteggiatura esterna intendo sia la punteggiatura che compare in

108 LA PUNTEGGIATURA IN MATEMATICA 195

una espressione che contenga al suo interno anche delle parti testuali sia lapunteggiatura finale

Non esistono regole lsquogrammaticalirsquo codificate per gestire la punteggiaturaesterna Scrivendo per una data casa editrice come giagrave detto egrave opportunoriferirsi alle sue regole editoriali Scrivendo per proprio conto e specialmentequando si egrave editori di se stessi bisogna decidere autonomamente e scegliere unostile di punteggiatura esterna per la matematica

Sul forum del guIt alcuni argomenti sono stati dibattuti ampiamente e uno diquesti argomenti trattava appunto della punteggiatura esterna Sono emerse duescuole di pensiero fra loro antitetiche ma ciascuna con pregi e difetti lrsquounicacosa sulla quale le due scuole di pensiero concordano egrave che scelto uno stile dipunteggiatura quello deve essere usato costantemente e coerentemente il lettorenon deve essere confuso da un uso irregolare e non uniforme della punteggiaturaLe due scuole di pensiero dicono sostanzialmente quanto segue

La punteggiatura esterna egrave necessaria in matematica come lo egrave per iltesto Secondo questo orientamento la punteggiatura separa le varie parti diuna espressione che contiene anche dei frammenti testuali e va inserita anchealla fine delle espressioni in display sia sotto forma di virgole di punti e virgolao di punti finali in altre parole lrsquoespressione matematica anche se egrave in displayfa parte del testo e la punteggiatura ne esprime il ritmo esattamente come lofa quando si compone del testo non matematico Bisogna solo stare attenti ache i segni di punteggiatura non interferiscano con la parte matematica in sensostretto al punto da renderne difficile la lettura o peggio ancora al punto diindurre il lettore a farne una lettura ambigua o errata

Siccome la punteggiatura non va staccata da quanto viene prima (a differenzadel francese nel quale almeno il punto e virgola va spaziato con uno spazio dialmeno un terzo di em da quanto viene prima) talvolta in italiano si potrebberospaziare virgole e punti suscettibili di introdurre ambiguitagrave nella lettura delleespressioni mediante uno spazio fine che in matematica si rende semplicementecon il comando si confronti per esempio

w = az + b

cz + d con a b c d isin R z w isin C

conw = az + b

cz + d con a b c d isin R z w isin C

Si vede benissimo che nel secondo caso la virgola non puograve essere confusa con unapice della variabile d

La matematica si scrive senza punteggiatura esterna Come si vede inquesto stesso capoverso LATEX sostituisce la punteggiatura finale del titolino(composto con il comando paragraph) con uno spazio interparola maggiore Lascuola di pensiero che non usa la punteggiatura esterna egrave in linea con la praticatipografica di usare spazi adeguati al posto della punteggiatura La punteggiaturaesterna nelle espressioni matematiche viene sostituita con degli spazi o degliincolonnamenti se si deve separare un frammento testuale allrsquointerno di unaespressione lo si fa usando spazi di almeno un quadrato ma meglio ancora di unquadratone rispettivamente con i comandi quad e qquad un incolonnamento

196 CAPITOLO 10 LATEX LA MATEMATICA AVANZATA

eseguito per esempio con lrsquoambiente align permette di separare le colonne dellecondizioni dalle colonne contenenti espressioni matematiche come si egrave fatto peresempio con il sistema di condizioni 1023 Proseguendo lrsquoesempio precedente siesamini ancora

w = az + b

cz + dcon a b c d isin R z w isin C

Secondo questa scuola di pensiero la punteggiatura finale egrave ridondante percheacutegli spazi prima e dopo una formula in display e il modo di scrivere la prima rigadi testo che segue tale formula sono sufficienti a capire se la formula stessa chiudeun capoverso o se il periodo di cui fa parte finisce con la formula oppure secontinua dopo la formula infatti se questa prima riga comincia con una letteraminuscola (e ovviamente non egrave rientrata) significa che il periodo continua dopola formula se questa prima riga non egrave rientrata ma comincia con una letteramaiuscola la formula terminava il periodo e ne comincia uno nuovo subito dopoma il capoverso non egrave terminato se invece questa prima riga comincia con unalettera maiuscola ed egrave rientrata vuol dire che dopo la formula che chiude ilperiodo comincia un nuovo capoverso Quello che lrsquoassenza di punteggiaturanon permette di capire egrave il quarto caso cioegrave se la formula termina una frase o sela frase continua dopo la formula per altro anche senza punteggiatura il sensodel discorso egrave evidente anche in questo caso per la presenza di congiunzioni oaltri connettivi che permettono di leggere lrsquoespressione in display come ultimoelemento di una frase o come elemento interno ad una frase In questi quattrocasi lrsquoaltra scuola di pensiero avrebbe usato rispettivamente la virgola il puntofermo il punto e a capo (di fatto il punto alla fine della formula) oppure il puntoe virgola

Per altro con riferimento allrsquoespressione 1028 dove si sarebbe messa lavirgola di chiusura dellrsquoespressione In casi analoghi si egrave vista la virgola (o altrisegni di interpunzione) allineata con lrsquoasse matematico3 dellrsquoespressione oppure achiusura dellrsquoultima riga ma non egrave semplice prendere una decisione compositivain situazioni del genere

Uso simultaneo della punteggiatura e degli spazi in matematica Na-turalmente nessuno vieta di usare sia la punteggiatura sia gli spazi lrsquoesempioriportato sopra diventerebbe

w = az + b

cz + d con a b c d isin R z w isin C

Come il lettore avragrave notato in questo testo si segue la seconda linea dipensiero egrave una scelta del coordinatore il quale si prende la responsabilitagrave diquesta scelta ed egrave perfettamente conscio che i collaboratori seguaci dellrsquoaltrascuola di pensiero ne saranno un porsquo delusi Lrsquoomogeneitagrave dello stile e quindila coerenza compositiva richiedono di non cambiare la punteggiatura da unparagrafo allrsquoaltro a seconda di chi lrsquoha scritto Il lettore invece quando componei suoi testi seguiragrave le sue convinzioni e sceglieragrave il tipo di punteggiatura chepreferisce

3Lrsquoasse matematico egrave la linea orizzontale (invisibile) che passa a metagrave fra le due lineette cheformano il segno = gli operatori le frazioni e tanti altri elementi delle espressioni matematichedovrebbero avere un ingombro verticale simmetrico rispetto a questo asse

109 CONCLUSIONI 197

Va infine segnalato il documento Preparing Articles with LATEX mdash Instructionsto authors for preparing compuscripts della casa editrice olandese Elsevier [15]ben nota in campo scientifico si tratta delle istruzioni per gli autori e per quelche riguarda la matematica non egrave espressamente detto nulla sulla punteggiaturama gli esempi in display ne sono tutti privi

Vale la pena di segnalare quanto viene scritto nel manuale Style Manual [1]della casa editrice Artech House In questo testo predisposto come aiuto agliautori dei testi scientifici che la casa editrice pubblica si afferma esplicitamenteche lo stile dalla casa prescrive

bull Non si usa la punteggiatura estera in una versione piugrave recente di quelmanuale scaricabile dal sito della Artech House si afferma addirittura chele equazioni in display non vogliono nessuna punteggiatura

bull Non si comincia mai un capoverso con una equazione neacute in riga con il testoneacute in display

bull Il periodo o la frase che precede una equazione termina con i due puntise lrsquoultimo elemento della frase egrave un nome un aggettivo un avverbio unnumero di riferimento anche se fra parentesi o in un inciso non si usanessuna punteggiatura se la frase termina con un verbo un articolo unacongiunzione o una preposizione4

Forse queste regole potrebbero essere usate anche per qualsiasi oggetto in displayinserito nel corso del discorso non come oggetto flottante

109 ConclusioniNon egrave questo il luogo per ripetere quanto egrave reperibile sulla documentazione delpacchetto amsmath neacute egrave questo il luogo per illustrare altri pacchetti e altrefunzionalitagrave che la fantasia degli utenti di LATEX egrave riuscita a inventare

Il lettore sappia perograve che la storia non egrave finita qui egli egrave invitato a esploraregli archivi internazionali ctan e scopriragrave una varietagrave infinita di estensioni per lacomposizione della matematica che non potragrave fare a meno di stupirlo sappiaperograve discernere quanto egrave stato escogitato alla buona per risolvere un problemacontingente da quanto egrave stato programmato professionalmente per lrsquouso generale

In particolare legga con attenzione il documento Mathmodepdf facente partedella documentazione standard di TEX Live a partire dal 2010 [54] In questo do-cumento Herbert Voszlig ha raccolto una infinitagrave di casi di composizione matematicache richiedono comandi speciali e ne indica moltissimi egrave una vera miniera da cuiattingere idee e soluzioni a problemi compositivi della matematica che non puogravevenire ignorata Essendo un documento inizialmente scritto da un tedesco per isuoi connazionali poi tradotto in inglese si egrave anche sicuri di trovare informazioniche siano conformai alle tradizioni tipografiche europee quasi sempre conformicon le norme ISO

4Secondo lo scrivente sarebbe meglio usare i due punti anche dopo i verbi Ma qui si stadescrivendo lo stile compositivo della Artech House non lo stile che bisognerebbe usare ingenerale

Capitolo 11

LATEX i caratteri da stampa

111 IntroduzioneI caratteri da stampa o meglio i segni che i caratteri imprimono sulla cartaci sono familiari percheacute abbiamo una grande abitudine a leggere testi scrittia stampa tuttavia siamo assolutamente ignoranti per quanto riguarda la lorostoria lrsquoevoluzione gli usi i periodi storici e quantrsquoaltro riguardi questi piccolioggetti e i corrispondenti piccoli segni

Tuttavia si sono giagrave dette alcune cose in merito ai caratteri che qui brevementesi richiamano

112 Terminologia relativa ai caratterifont egrave praticamente sinonimo di lsquocaratterersquo con lrsquounica avvertenza che in italiano

si usa la parola lsquocaratterersquo specialmente al plurale per designare una interapolizza di segni accomunati da una omogeneitagrave stilistica ma si usa anchespecialmente al singolare per designare il singolo segno Font egrave equivalenteal primo significato quello di lsquopolizzarsquo mentre il singolo segno in ingleseviene designato glyph anche in italiano si potrebbe dire glifo ma egrave assairaro vedere usata questa parola1

polizza indicava lrsquointera cassa di caratteri accomunati dalle stesse caratteristichegrafiche e tipografiche incluso il numero esatto dei caratteri metallicipresenti in ogni scomparto della cassa Oggi che i caratteri metallici siusano assai poco e solo per lavori molto particolari non ha piugrave significatousare la parola lsquopolizzarsquo per designarne anche la consistenza in quantoquesta egrave illimitata con i caratteri elettronici ma la parola viene usatasolo per indicare una collezione di segni quasi sempre viene sostituitadallrsquoequivalente parola inglese font al punto che questa parola si puograveconsiderare definitivamente entrata nellrsquouso della lingua italiana

1Curiosamente quando si usano parole inglesi di per seacute di genere neutro in italiano dove ilneutro non esiste i diversi parlanti usano il genere grammaticale che piugrave li ispira senza uncriterio particolare La parola font egrave una di quelle che non sembra ancora essersi stabilizzatasu un determinato genere grammaticale Qui si usa il maschile (che in italiano spesso egrave usatoanche come neutro come genere grammaticale indifferente) spesso si sente dire le font perogravela font egrave una espressione rarissima

199

200 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

Figura 111 Il carattere metallico della lsquomrsquo il disegno ovviamente egrave come allospecchio e la sinistra e la destra sono scambiate

(mtgMTG) corpointerlinea

(byqBYQ)avanzamento di riga

CBeccari

ndashpi

ctur

e

Figura 112 Relazioni fra il corpo lrsquointerlinea e lrsquoavanzamento di riga nel casodi caratteri elettronici

corpo egrave la dimensione reale per i caratteri metallici e quella virtuale per icaratteri elettronici dellrsquoaltezza del rettangolo costituito dalla faccia inrilievo del parallelepipedo che costituiva il carattere mobile metallico Nellafigura 111 egrave riportato uno di questi blocchetti e vi si puograve riconoscere ildisegno in rilievo e rovesciato di una lsquomrsquo

interlinea era una striscia di metallo di un dato spessore da inserire fra due righedi testo composte con caratteri metallici per estensione spazio verticaleda aggiungere allrsquoaltezza di una riga composta con caratteri elettronici

sterlineatura egrave il processo opposto a quello dellrsquointerlineatura interlineando siallontanano le righe fra di loro sterlineando le si accosta Egrave evidente chequesta operazione non poteva essere fatta con i caratteri metallici percheacutenon li si poteva compenetrare gli uni negli altri al massimo potevano venirelimati o costruiti apposta ma era una pratica costosissima e la si evitavaCon i caratteri metallici si diceva che le linee erano sterlineate quando nonveniva inserita fra di loro nessuna interlinea componendo in corpo 1010per esempio si soleva dire che il testo era sterlineatoCon i caratteri elettronici al contrario le righe possono venire accostatefino anche a sovrapporsi puograve essere una tecnica interessante per ottenereeffetti speciali in stampati pubblicitari Nei testi di cui ci stiamo occupandoinvece la sterlineatura viene usata specialmente quando si compone con lesole lettere maiuscole le quali sono praticamente prive di discendenti acausa di ciograve la composizione in maiuscolo con lrsquointerlinea abituale apparetroppo distanziata Nella figura 113 crsquoegrave un esempio di sterlineatura nellaparte superiore il testo egrave composto in corpo 2530 mentre nella parte

112 TERMINOLOGIA RELATIVA AI CARATTERI 201

LA RIVOLUZIONE FRANCESELA PRESA DELLA BASTIGLIALA RIVOLUZIONE FRANCESELA PRESA DELLA BASTIGLIA

Figura 113 Composizione normale e sterlineata

inferiore egrave sterlineato composto in corpo 25225 vi egrave cioegrave una interlineanegativaVa da seacute che la scelta dellrsquointerlinea o dellrsquoammontare della sterlineaturava fatto con molto buon senso e con molto buon gusto da parte del graficoeditoriale dipende molto dal tipo di carattere dalla sua serie e dalla suaforma In generale la composizione in sole lettere maiuscole oppure inmaiuscoletto e maiuscole consente delle operazioni che non sono lecite opraticabili con gli alfabeti maiuscoliminuscoli a causa della forma dellelettere e in particolare per lrsquoassenza dei discendenti

avanzamento di riga egrave la distanza fra le righe di base di due righe di testocomposte con caratteri dello stesso corpo Si puograve pensare a questa grandezzacome alla somma del corpo e dellrsquointerlinea numericamente si tratta dellostesso valore ma questa somma parte dalla base del rettangolo della facciaporta carattere mentre lrsquoavanzamento di riga parte dalla linea di base eraggiunge la linea di base della riga precedente si veda la figura 112In Italia lrsquoavanzamento di riga viene chiamato riga e i tipometri spesso sonograduati in righe e servono per misurare sia sullo stampato sia sulla gabbiadella composizione in caratteri metallici proprio lrsquoavanzamento di rigaspesso hanno diverse scale con righe di 12 punti di 10 punti eccetera Insostanza lrsquoespressione riga di 12 punti in Italia viene usata con il significatodi pica nei paesi anglosassoni o di cicero nellrsquoEuropa continentale Qui sieviteragrave accuratamente di usare la parola lsquorigarsquo in questo significato percheacuteegrave un termine troppo ambiguo

x-height egrave lrsquoaltezza delle lettere minuscole senza ascendenti neacute discendenti cioegravelsquoa c e m n o r s u v w x zrsquo questa altezza definisce anche lrsquounitagrave di misuralsquoexrsquo che permette di prendere le misure in termini di altezza dei font chesono in uso Il termine italiano per x-height egrave occhio

quadro o quadrato era un blocco quadrato usato come spaziatore nel comporrecon i caratteri metallici le due facce del quadrato erano lunghe quanto ilcorpo del font in uso se non altro percheacute lrsquoaltezza del quadrato dovevaessere uguale al corpo Con i font elettronici si conviene che la dimensionedi ciascun lato del quadrato sia pari alla larghezza della lsquoMrsquo per cui siusa parlare della distanza di una M em in inglese Se si leggono i datiforniti in calce alle tabelle 112ndash1111 si vede che 1 em spesso non coincideaffatto con il corpo anzi ne egrave sensibilmente diverso Nonostante ciograve questa

202 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

Pater Noer qui es in caelissanificeacutetur Nomen Tuumadveacuteniat Regnum Tuumfiat voluacutentas Tuasicut in caelo et in terraPanem norumcotidianum da nobis hoacutedieet dimiacutette nobis deacutebita norasicut et nosdimiacutettimus debitoacuteribus noriset ne nos induacutecas in tentatioacutenemsed liacutebera nos a maloAmen

Pater Noer qui es in caelissanificeacutetur Nomen Tuumadveacuteniat Regnum Tuumfiat voluacutentas Tuasicut in caelo et in terraPanem norumcotidianum da nobis hoacutedieet dimiacutette nobis deacutebita norasicut et nosdimiacutettimus debitoacuteribus noriset ne nos induacutecas in tentatioacutenemsed liacutebera nos a maloAmen

Figura 114 Legature antiche il testo a sinistra mostro solo le legature dei nessilsquoctrsquo e lsquostrsquo quello di destra mostra la compresenza della s lunga e dalla s corta edelle legature antiche

spaziatura di un quadrato continua a fare riferimento allrsquounitagrave em Initaliano il blocchetto si chiamava quadrato e un blocchetto rettangolarelargo il doppio di un quadrato si chiamava lsquoquadratonersquo i comandi perrealizzare queste spaziature si sono giagrave incontrati negli esempi matematiciuna spaziatura di un quadrato si ottiene con il comando quad e di unquadratone con il comando qquad

legatura egrave lrsquooperazione per la quale per ottenere il giusto effetto estetico certelettere distinte devono essere accostate in modo cosigrave forte che vengono aformare un unico segno si pensi a lsquofirsquo lsquoffrsquo lsquoffirsquo lsquoflrsquo lsquofflrsquo presenti in ognifont latino ma queste non sono le sole legature scrivere -- produce ndashe scrivere --- produce mdash si tratta sempre di legature anche la letteratedesca szlig egrave il risultato della legatura di una lsquos lungarsquo e di una lsquos cortarsquo indefinitiva di due lettere lsquosrsquo di forma diversa In Italia non si usa piugrave questosegno da alcuni secoli ma i prototipografi italiani nel Quattrocento e nelCinquecento la usavano abbondantemente lrsquouso egrave cessato con la sparizionedella lsquos lungarsquo nel diciottesimo secolo questo segno assomigliava ad unalettera lsquofrsquo solo che la barretta non attraversava il fusto se si esamina ilsegno (corsivo) della szlig si riconosce che la parte di sinistra egrave proprio unalsquos lungarsquo Questa forma della lettera lsquosrsquo veniva usata sempre come letterainiziale o come lettera mediana mentre la lsquos cortarsquo quella che usiamo oggiera in posizione terminale o come secondo elemento della doppia lsquosrsquo da cuila legatura Spesso nel passato erano legate anche i nessi lsquoctrsquo e lsquostrsquo Nellafigura 114 sono riportati due brevi testi che mostrano lrsquouso delle legaturaantiche e della s lunga2

2Si egrave scelto il testo latino anche per poter mostrare la legatura del nesso lsquoctrsquo Il testousa gli accenti secondo la consuetudine del latino ecclesiastico Inoltre rispetto alla versionedella Vulgata lrsquoaggettivo cotidianus sostituisce lrsquooriginale transubstantialis secondo la lezionemoderna

112 TERMINOLOGIA RELATIVA AI CARATTERI 203

grazie sono quei piccoli tratti alla fine delle aste spesse o sottili che permettonoin particolare di allineare esattamente i singoli caratteri sulla linea dibase riempiono leggermente lo spazio fra un carattere e lrsquoaltro e dannolrsquoidea di una linea piugrave compatta cosigrave che lrsquoocchio la segue meglio e ritrovapiugrave facilmente lrsquoinizio della riga seguente quando lrsquoocchio deve andare acapo I caratteri con grazie sono piugrave adatti alla lettura continua mentrei caratteri senza grazie affaticano il lettore se egli dovesse leggere concontinuitagrave molte pagine di seguito Per altro i caratteri senza grazie a paricorpo apparentemente sono piugrave facilmente leggibili a distanza tanto che icartelli stradali sono composti esclusivamente con caratteri senza grazieNon egrave sempre facile classificare i caratteri senza grazie per esempio il fontOptima disegnato da Hermann Zapf pur non avendo grazie almeno nelsenso tradizionale della parola non puograve essere definito sans serif in virtugravedella sua particolare conformazione ad aste svasate che lo avvicina ai fontdotati di grazie

sans serif egrave lrsquoespressione inglese per designare i font senza grazie in italiano sichiamano preferibilmente caratteri lsquolinearirsquo o lsquobastonersquo o lsquobastoncinorsquo

maiuscoletto egrave una raccolta di segni dove lrsquoalfabeto egrave composto dalle letteremaiuscole e da una serie di lsquominuscolersquo costituite da segni con lo stessodisegno delle maiuscole ma di altezza e larghezza minori non si tratta dimaiuscole rimpicciolite ma di lettere disegnate con le stesse caratteristichegrafiche per esempio hanno lo stesso spessore delle aste corrispondentiuna lsquoArsquo rimpicciolita alle dimensioni di una lsquoarsquo appare cosigrave lsquoArsquo affiancateappaiono cosigrave aA si puograve percepire che la lsquoArsquo rimpicciolita egrave leggermentepiugrave chiara della a maiuscoletta

proporzionale egrave il tipo di carattere che destina uno spazio diverso a ciascunalettera come ognuno puograve constatare la larghezza della lsquomrsquo minuscola egravedecisamente piugrave grande della lsquoirsquo minuscola non confrontiamo nemmeno ladifferenza fra maiuscole e minuscole percheacute egrave troppo evidente La maggiorparte per non dire la totalitagrave dei caratteri usati in tipografia sono caratteriproporzionali Tuttavia esiste ed egrave utilissimo specialmente nei testi dovesi parla di informatica poter disporre di un font a spaziatura fissa comequello usato in questo testo per descrivere i comandi usati per il mark-updi LATEX si osservino i due alfabeti maiuscolo e minuscolo sovrapposti

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

per rendersi conto di che cosa sia un carattere non proporzionale confron-tandolo con i due corrispondenti alfabeti di un font proporzionale

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

famiglia rappresenta una collezione di font di diversi disegni ma con una caratteri-stica comune le famiglie piugrave importanti per LATEX sono quella dei caratteria spaziatura fissa chiamati typewriter type che costituiscono la famigliaidentificata dallrsquoistruzione ttfamily o dal comando texttt la famiglia

204 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

dei font proporzionali senza grazie sans serif identificata dallrsquoistruzio-ne sffamily o dal comando textsf la famiglia dei font proporzionalicon grazie roman identificata dallrsquoistruzione rmfamily o dal comandotextrm

serie egrave la caratteristica di ogni famiglia di font di apparire piugrave o meno scurala tipografia tradizionale prevede diversi livelli di nero che vanno dalchiarissimo al nerissimo per LATEX si distinguono tre livelli di nero ilmedio il nero e il nero esteso di norma il nero lsquosemplicersquo egrave assai raronelle famiglie di caratteri usate di default da LATEX perciograve le istruzioniper scegliere queste caratteristiche di default sono solamente mdseriese bfseries oppure i comandi textmd e textbf non tutte le famigliedispongono di serie piugrave scure di quella che egrave considerata media

forma rappresenta il tipo di disegno di una serie di caratteri della stessa famigliae della stessa serie per LATEX le forme disponibili normalmente sono laforma diritta upright la forma corsiva italics e quella maiuscoletta smallcaps le istruzioni per scegliere queste forme sono upshape itshapee scshape mentre i comandi sono textup textit e textsc Sonodisponibili anche la forma tondo inclinato slanted e il corsivo dirittoupright italics queste in Italia sono meno usate tuttavia LATEX mettea disposizione lrsquoistruzione slshape e il comando textsl per il tondoinclinato Invece per il corsivo diritto non sono disponibili neacute lrsquoistruzione neacuteil comando sebbene non sia difficile servirsi di questa forma con comandidi livello piugrave bassoSi confronti il tondo inclinato con il corsivo abcd e abcd si nota che sitratta di due disegni (diversamente) inclinati ma sono completamentediversi questo egrave il motivo per il quale il tondo inclinato egrave poco usato Ilcorsivo diritto appare cosigrave abcd

codifica egrave la speciale modalitagrave informatica con la quale un particolare segno diun dato font viene identificato nel file che contiene tutti i segni di quelparticolare font LATEX conosce di default diverse codifiche le piugrave usualiper chi scrive in italiano sono la codifica OT1 e la codifica T1 la primaidentifica i file che contengono 128 caratteri lsquolatinirsquo la seconda identificai file che contengono 256 caratteri lsquolatinirsquo i font lsquolatinirsquo contengono oltrealle cifre ai segni di interpunzione e ad un certo numero di segni specialigli alfabeti minuscolo e maiuscolo delle 26 lettere lsquolatinersquo

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

I numerosi segni accentati che compaiono nelle varie lingue che usano icaratteri latini sono ottenuti sovrapponendo lrsquoaccento alla lettera con lacodifica OT1 mentre sono ottenuti con i disegni delle lettere giagrave accentatecon la codifica T1Per capire meglio il concetto di codifica si esaminino le tabelle 112ndash1111che contengono i caratteri latini con codifica OT1 i caratteri latini concodifica T1 i caratteri non letterali del Text Companion Font con codificaTS1 i caratteri cirillici con codifica OT2 i caratteri greci con codificaLGR

112 TERMINOLOGIA RELATIVA AI CARATTERI 205

In ogni casella di quelle tabelle crsquoegrave il segno che corrisponde alla posizioneindicata dal numero decimale che compare nella stessa casella i numeripreceduti da un solo apice o dal doppio apice nelle righe e nelle colonneesterne rappresentano parti degli indirizzi in notazione ottale o in notazioneesadecimale per esempio nella tabella 114 la lettera lsquoIacutersquo ha un indirizzodecimale 205 questa casella si trova allrsquoincrocio della riga con indirizzoottale rsquo300 e della colonna con indirizzo ottale rsquo15 da cui si ricava lrsquoindirizzoottale complessivo eseguendo la somma dei due valori ottali rsquo300 + rsquo15= rsquo315 Nella stessa maniera si ricava lrsquoindirizzo complessivo esadecimaleNei file interni di LATEX sono quasi sempre usati gli indirizzi ottali o quelliesadecimali quindi egrave conveniente disporre di tabelle che contengano tuttie tre i tipi di indirizziSe si confrontano le tabelle 112 e 114 che si riferiscono entrambe aicaratteri latini oltre alle ovvie differenze relative alle lettere accentate cisono alcuni segni uguali che si trovano ad indirizzi diversi per esempio ilsegno lsquoffirsquo si trova allrsquoindirizzo 14 con la codifica OT1 ma allrsquoindirizzo 30con la codifica T1Egrave assai raro dover cambiare codifica per comporre un testo per questoLATEX non dispone di una istruzione o di un comando di uso corrente pereseguire questo cambio di codifica ma questo tipo di azione viene svoltodietro le quinte dalle istruzioni contenute nei file di servizio che provvedonodirettamente a cambiare lrsquoalfabeto e la codifica a seconda della lingua chesi usa Lrsquounico momento in cui il compositore decide di usare una delle duecodifiche per i caratteri latini egrave allrsquoinizio del file nel preambolo quandoordina di usare il font encoding T1 la codifica T1 mediante la specifica

usepackage[T1]fontenc

Se si desiderasse cambiare codifica in una posizione qualunque del te-sto bisognerebbe usare comandi di basso livello come fontencoding eselectfont scrivendo per esempio

fontencodingT1selectfont

possibilmente allrsquointerno di un gruppo per limitarne gli effetti al solo testocontenuto nel gruppo

tipo Importantissimo per i font da usare con la tipografia assistita da calcolatorela tipografia elettronica egrave il tipo dei caratteri Questi possono essere di tipoa matrice di punti o bitmappad o raster oppure vettoriali La differenza egraveessenzialeI caratteri a matrice di punti sono una versione digitalizzata o discretizzatadel disegno del singolo segno ogni segno egrave formato da una schiera di puntinilsquonerirsquo sufficientemente accostati in modo da rendere lrsquoidea abbastanza pre-cisa del disegno del segno specifico I puntini vanno benissimo se la densitagravedei puntini corrisponde esattamente alla densitagrave dei puntini della macchi-na da stampa o dello schermo con cui il carattere deve venire stampatoo visualizzato Non sono suscettibili di ingrandimenti o rimpicciolimentisignificativi altrimenti il segno si sgrana e si notano i vari lsquoquadratinirsquo checompongono il disegno Vanno quindi usati solo per la stampa

206 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

Genealogical symbols from wasy and gen fonts

MaleFemaleBornMarriedDivorcedDiedLeaf

1

Table 228 milstd Logic Gates

ANDd BUFu NANDl ORd

ANDl BusWidth NANDr ORl

ANDr INVd NANDu ORr

ANDu INVl NORd ORu

BUFd INVr NORl

BUFl INVu NORr

BUFr NANDd NORu

The milstd package which provides the digital logic-gate symbols specified by theUS Department of Defensersquos MIL-STD-806 standard was written as a LATEX 209tex file not as a LATEX2ε package Consequently it must be loaded into adocument with input milstd not with the more modern usepackagemilstd

Table 229 marvosym Communication Symbols

k Email t fax v Faxmachine E Lightning A Pickup

z Emailct u FAX B Letter H Mobilefone T Telefon

Table 230 marvosym Engineering Symbols

Beam l Force lsquo Octosteel RoundedTTsteel

Bearing rsquo Hexasteel ˜ Rectpipe mdash Squarepipe

rsaquo Circpipe amp Lefttorque rdquo Rectsteel ldquo Squaresteel

bull Circsteel L Lineload Righttorque œ Tsteel

Fixedbearing $ Loosebearing Ÿ RoundedLsteellowast š TTsteel

ndash Flatsteel trade Lsteel RoundedTsteellowast

lowast RoundedLsteel and RoundedTsteel seem to be swapped at least in the20000501 version of marvosym

Table 231 wasysym Biological Symbols

female male

73

(a) (b)CBeccari

ndashpi

ctur

e

Figura 115 Il simbolo di maschio fortemente ingrandito (a) font a matrice dipunti (b) font vettoriale

I font vettoriali invece sono descritti dalle equazioni del loro contorno ladiscretizzazione per la stampa o per lo schermo viene eseguita al volo daprogramma che trasforma lrsquoinformazione codificata nel disegno del segnoin un insieme di puntini neri visibili sulla carta o sullo schermo Lrsquoingran-dimento e il rimpicciolimento del disegno vengono ottenuti cambiandosemplicemente scala alle coordinate dei punti che individuano i contorniIn particolare i nodi su cui sono lsquoappoggiatirsquo i vari archi che formano icontorni si possono assimilare alle punte dei vettori che uniscono lrsquoorigineai nodi stessi di qui la denominazione di disegni vettorialiLa differenza sembra quindi nel fatto che i segni a matrici di punti sonomemorizzati come matrice di puntini neri mentre i segni vettoriali sonotrasformati in matrice di puntini neri solo al momento dellrsquousoNon egrave cosigrave almeno non lo egrave quando il supporto di lsquostamparsquo egrave lo schermo inrealtagrave non egrave cosigrave nemmeno quando il supporto egrave la carta ma la differenzaegrave molto maggiore quando si considera lo schermoChi legge un testo direttamente da uno schermo tende ad adattare lrsquoin-grandimento della pagina sia alle dimensioni dello schermo fisico sia al tipodi dettaglio che desidera osservare Si consideri allora la figura 115Si vede chiaramente specialmente lungo il contorno la presenza dei qua-dratini neri nel disegno (a) che egrave a matrice di punti ma non si vede nessunagranulositagrave nel contorno del disegno (b) che egrave vettorialeIn pratica con il sistema TEX i font originariamente prodotti con il pro-gramma METAFONT quando la grafica degli schermi non era grancheacute sonoa matrici di punti il programma METAFONT egrave perograve sofisticatissimo ed egravein grado di generare delle matrici di punti anche con una densitagrave adeguataad una macchina di fotocomposizione professionale con densitagrave di puntidi piugrave di 4000 punti al pollice inoltre METAFONT puograve tenere conto anchedi densitagrave diverse in orizzontale rispetto alla direzione verticaleCon lrsquoavvento dei primi font vettoriali da parte della Adobe cioegrave dei fontPostScript Type 1 la tecnologia si egrave sviluppata moltissimo3 con unainiziativa delle Apple e Microsoft associate assieme vennero sviluppati poi

3Incidentalmente sono classificati font di tipo Type 3 i font ottenuti per accostamento ditante parti distinte con possibili sovrapposizioni di alcune parti i font bitmapped quandovengono inclusi in un documento PDF vengono classificati come Type 3 Si ricordi che perqualunque operazione di stampa piugrave o meno commerciale un documento che faccia uso di fontType 3 viene generalmente respinto

113 I COMANDI PER LA SCELTA DEI FONT 207

Istruzione Esempio

tiny ABCDEFG abcdefg

scriptsize ABCDEFG abcdefg

footnotesize ABCDEFG abcdefg

small ABCDEFG abcdefg

normalsize ABCDEFG abcdefg

large ABCDEFG abcdefgLarge ABCDEFG abcdefgLARGE ABCDEFG abcdefghuge ABCDEFG abcdefgHuge ABCDEFG abcdefg

Tabella 111 Istruzioni per la scelta del corpo dei caratteri

i font vettoriali TrueType recentemente sono stati sviluppati anche i fontOpenType sempre vettoriali ma molto piugrave completi dei Type 1 e dei True-Type Con i programmi del sistema TEX i font OpenType possono essereusati direttamente solo da X ETEX e X ELATEX oltre che da ConTeXt mk ivche comprende anche LuaTeX Nel seguito si daragrave molta importanza aifont vettoriali e si descriveranno molte azioni per poter rendere disponibiliallrsquouso anche i font Type 1 e TrueType commerciali o anche quelli nonancora completamente integrati nella distribuzione del sistema TEX

113 I comandi per la scelta dei fontPer scegliere i font il compositore dispone di una serie di istruzioni e di comandiche sono giagrave stati quasi tutti esposti nel paragrafo precedente Vale perograve lapena di riepilogare anche per distinguere sistematicamente i vari comandi e lecorrispondenti dichiarazioni a seconda del contesto in cui si usano

1131 La scelta del corpo e dellrsquoavanzamento di rigaLATEX dispone di una serie di comandi che si riferiscono al corpo dei caratteriin modo simbolico invece che numerico essi sono raccolti nella tabella 111 eindicano tutti quanti (in inglese) la relazione che il corpo prescelto ha rispetto alcorpo normale

Il corpo che funziona da corpo normale egrave quello di default cioegrave di 10 pt oppurequello che si specifica fra le opzioni del comando di apertura documentclassper altro fra queste opzioni in generale ci sono solo 11pt e 12pt Alcune classinon standard offrono anche font normali di corpo piugrave piccolo o piugrave grande

208 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

110 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 Γ0

∆1

Θ2

Λ3

Ξ4

Π5

Σ6

Υ7

Φ8

Ψ9

Ω10

ff11

fi12

fl13

ffi14

ffl1500

rsquo020 ı16

17

`18

acute19

ˇ20

˘21

macr22

˚23

cedil24

szlig25

aelig26

œ27

oslash28

AElig29

Œ30

Oslash3110

rsquo040 32

33

rdquo34

35

$36

37

amp38

rsquo39

(40

)41

42

+43

44

-45

46

4720

rsquo060 048

149

250

351

452

553

654

755

856

957

58

59

iexcl60

=61

iquest62

6330

rsquo100 64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

rsquo120 P80

Q81

R82

S83

T84

U85

V86

W87

X88

Y89

Z90

[91

ldquo92

]93

ˆ94

˙9550

rsquo140 lsquo96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

ndash123

mdash124

˝125

˜126

uml127

70

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430554 ptspazio interparola 333332 pt larghezza del quadrato 1019999 ptallungamento interparola 166665 pt spazio extra 111111 ptaccorciamento interparola 111111 pt corpo nominale 1000000 pt

Figura 113 Il font latino a 128 caratteri con codifica OT1

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 Nj0Lj

1

2

3

4

5

6

9

10

11

1213

13

14

1500

rsquo020 16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

3110

rsquo040 uml32

33

rdquo34

35

$36

37

acute38

rsquo39

(40

)41

42

+43

44

-45

46

4720

rsquo060 048

149

250

351

452

553

654

755

856

957

58

59

laquo60

ı61

raquo62

6330

rsquo100 ˘64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

rsquo120 P80

Q81

R82

S83

T84

U85

V86W

87X

88Y

89Z

90[

91ldquo

92]

93^

94_

9550

rsquo140 lsquo96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

ndash123

mdash124

125

~126

127

70

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430554 ptspazio interparola 377774 pt larghezza del quadrato 1155450 ptallungamento interparola 174996 pt spazio extra 116665 ptaccorciamento interparola 116665 pt corpo nominale 1000000 pt

Figura 114 Il font cirillico a 128 caratteri con codifica OT2

Tabella 112 Il font latino a 128 caratteri con codifica OT1

110 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 Γ0

∆1

Θ2

Λ3

Ξ4

Π5

Σ6

Υ7

Φ8

Ψ9

Ω10

ff11

fi12

fl13

ffi14

ffl1500

rsquo020 ı16

17

`18

acute19

ˇ20

˘21

macr22

˚23

cedil24

szlig25

aelig26

œ27

oslash28

AElig29

Œ30

Oslash3110

rsquo040 32

33

rdquo34

35

$36

37

amp38

rsquo39

(40

)41

42

+43

44

-45

46

4720

rsquo060 048

149

250

351

452

553

654

755

856

957

58

59

iexcl60

=61

iquest62

6330

rsquo100 64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

rsquo120 P80

Q81

R82

S83

T84

U85

V86

W87

X88

Y89

Z90

[91

ldquo92

]93

ˆ94

˙9550

rsquo140 lsquo96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

ndash123

mdash124

˝125

˜126

uml127

70

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430554 ptspazio interparola 333332 pt larghezza del quadrato 1019999 ptallungamento interparola 166665 pt spazio extra 111111 ptaccorciamento interparola 111111 pt corpo nominale 1000000 pt

Figura 113 Il font latino a 128 caratteri con codifica OT1

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 Nj0Lj

1

2

3

4

5

6

9

10

11

1213

13

14

1500

rsquo020 16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

3110

rsquo040 uml32

33

rdquo34

35

$36

37

acute38

rsquo39

(40

)41

42

+43

44

-45

46

4720

rsquo060 048

149

250

351

452

553

654

755

856

957

58

59

laquo60

ı61

raquo62

6330

rsquo100 ˘64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

rsquo120 P80

Q81

R82

S83

T84

U85

V86W

87X

88Y

89Z

90[

91ldquo

92]

93^

94_

9550

rsquo140 lsquo96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

ndash123

mdash124

125

~126

127

70

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430554 ptspazio interparola 377774 pt larghezza del quadrato 1155450 ptallungamento interparola 174996 pt spazio extra 116665 ptaccorciamento interparola 116665 pt corpo nominale 1000000 pt

Figura 114 Il font cirillico a 128 caratteri con codifica OT2Tabella 113 Il font cirillico a 128 caratteri con codifica OT2

113 I COMANDI PER LA SCELTA DEI FONT 209

112 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17

000 0

1

2

3

4

5

6

7

8

9

10

11

12

1313

14

1500

020 16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

3110

040 32

33

34

35

$36

37

amp38

39

(40

)41

42

+43

44

-45

46

4720

060 048

149

250

351

452

553

654

755

856

957

58

59

lt60

=61

gt62

6330

100 64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

120 P80

Q81

R82

S83

T84

U85

V86

W87

X88

Y89

Z90

[91

92

]93

^94

_9550

140 `96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

123

|124

125

~126

127

70

200 128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

80

220 144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

90

240 160

iexcl161

cent162

pound163

curren164

yen165

brvbar166

sect167

uml168

copy169

ordf170

laquo171

not172

shy173

reg174

macr175

A0

260 deg176

plusmn177

sup2178

sup3179

acute180

micro181

para182

middot183

cedil184

sup1185

ordm186

raquo187

frac14188

frac12189

frac34190

iquest191

B0

300 Agrave192

Aacute193

Acirc194

Atilde195

Auml196

Aring197

AElig198

Ccedil199

Egrave200

Eacute201

Ecirc202

Euml203

Igrave204

Iacute205

Icirc206

Iuml207

C0

320 ETH208

Ntilde209

Ograve210

Oacute211

Ocirc212

Otilde213

Ouml214

times215

Oslash216

Ugrave217

Uacute218

Ucirc219

Uuml220

Yacute221

THORN222

szlig223

D0

340 agrave224

aacute225

acirc226

atilde227

auml228

aring229

aelig230

ccedil231

egrave232

eacute233

ecirc234

euml235

igrave236

iacute237

icirc238

iuml239

E0

360 eth240

ntilde241

ograve242

oacute243

ocirc244

otilde245

ouml246

divide247

oslash248

ugrave249

uacute250

ucirc251

uuml252

yacute253

thorn254

yuml255

F0

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430450 ptspazio interparola 333251 pt larghezza del quadrato 999755 ptallungamento interparola 166625 pt spazio extra 111083 ptaccorciamento interparola 111083 pt corpo nominale 1000000 pt

Figura 115 Il font latino a 256 caratteri con codica T1Tabella 114 Il font latino a 256 caratteri con codifica T1

I corpi piugrave piccoli di quello normale si differenziano di un punto lrsquouno dallrsquoaltroi corpi piugrave grandi sono invece in proporzione geometrica approssimativamente diragione 12 Per il corpo normale di 10 pt i corpi specificati con i comandi dellatabella 111 si susseguono cosigrave 5 pt 7 pt 8 pt 9 pt 10 pt 12 pt 144 pt 1728 pt2074 pt 2488 pt Fuori della sequenza in progressione geometrica crsquoegrave anche ilcorpo di 1095 pt usato come corpo normale con lrsquoopzione di 11pt si noti chequesto corpo approssima la media geometrica fra i valori adiacenti 10 pt e 12 pt1095 asymp

radic10times 12

Gli avanzamenti di riga sono prefissati a circa il 20 in piugrave del corpo aseconda delle classi dei documenti Se proprio si desidera allargare o restringerelrsquoavanzamento di riga rispetto al valore di default (a parte scriversi un file di classepersonalizzato) si puograve usare il comando linespread il cui argomento funzionada moltiplicatore dellrsquoavanzamento di default Per limitarne lrsquoefficacia bisognadare questo comando dentro ad un ambiente oppure dentro a un gruppo Sitenga perograve presente che lrsquoeffetto estetico combinato del corpo e dellrsquoavanzamentodi riga insieme allrsquoeffetto che questi valori hanno sulla comoditagrave di lettura sonoestremamente delicati e solo un grafico editoriale sa come modificare i valori didefault di frazioni di punto percentuale se un dilettante si mette a giocare conlinespread sappia che non egrave consigliabile superare mai il 5 in piugrave o in menovalori maggiori producono di solito risultati pessimi

210 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

1132 La scelta delle altre caratteristicheLe altre caratteristiche dei font tranne la codifica che come si egrave detto nonviene cambiata quasi mai o viene cambiata automaticamente quando si cambiaalfabeto possono essere cambiate autonomamente lrsquouna dallrsquoaltra con i comandigiagrave descritti se una certa combinazione di famiglia serie e forma non egrave disponibileLATEX provvede da solo a sostituire il font mancante con un font di default ocon un font che abbia il maggior numero possibile delle caratteristiche richiestenella tabella 115 vengono illustrate quasi tutte le combinazioni Si noteragrave che inalcune caselle il contenuto egrave rosso LATEX ha sostituito il font mancante con unfont che abbia un certo numero di caratteristiche fra quelle richieste

Per confrontare lrsquoeffetto dei comandi per la scelta dei font in modo testo o inmodo matematico si esamini il medaglione nella pagina 521

Vale la pena di mettere in guardia i vecchi utenti di LATEX209 che sonoabituati a usare comandi abbreviati del tipo rm per scegliere il font tondoo it per scegliere il corsivo eccetera Quei vecchi comandi possono esserestati conservati per compatibilitagrave in alcune classi standard ma operano moltodiversamente dai comandi della tabella 115 Essi infatti simulano perfettamenteanche in LATEX2ε il funzionamento che essi avevano in LATEX209 Cioegrave essiimpostano una sola caratteristica ripristinando le altre caratteristiche ai valoridi default essi di fatto eseguono un comando normalfont che imposta tutti ivalori di default (famiglia con grazie forma diritta serie media) e poi specificanosolo la famiglia o solo la forma o solo la serie richiesta Egrave ovvio che quei vecchicomandi non devono venire piugrave usati

Inoltre lrsquoabitudine allrsquouso di quei vecchi comandi puograve indurre a pensare chela dichiarazione rmfamily e il corrispondente comando textrm siano in tuttoe per tutto equivalenti a rm evidentemente questo egrave falso percheacute la primadichiarazione e il corrispondente comando impostano solo la famiglia lasciandoinalterata la forma e la serie preesistenti rm invece reimposta tutti i valoridi default anche la serie e la forma e poi specifica la forma diritta I vecchiutenti di LATEX209 sono quindi pregati di dimenticare completamente i vecchicomandi bencheacute avessero qualche funzionalitagrave comoda come per esempio quelladi poter essere usati anche in matematica

Piuttosto sia i vecchi affezionati a LATEX209 sia i nuovi utenti ricordinoche i nuovi comandi text〈xx〉 possono venire usati anche in matematica esotto certe condizioni (vedi piugrave avanti) persino in posizioni di apici o di pediciper scrivere brevi apposizioni testuali dove perograve gli spazi gli accenti testualieccetera possono venire usati regolarmente come se si trattasse di comporre deltesto normale Piugrave avanti verragrave spiegato in dettaglio percheacute bencheacute sia possibilenon sia affatto opportuno servirsi di questi comandi per i pedici e per gli apicisi veda piugrave avanti nel paragrafo 115

Nella tabella 115 compaiono solo le istruzioni per assegnare una certacaratteristica al font scelto Fra le altre cose si egrave indicata lrsquoistruzione uishapeche in LATEX non esiste la si egrave definita mediante un comando che verragrave descrittomeglio in seguito in modo da ricorrere a istruzioni di livello inferiore

newcommanduishapefontshapeuiselectfont

Le dichiarazioni usate nella composizione della tabella possono essere usateanche durante la composizione del testo tuttavia per comporre singole parole obrevi frasi egrave preferibile ricorrere ai comandi tutti sono della forma text〈xx〉

113 I COMANDI PER LA SCELTA DEI FONT 211

upshape slshape itshape scshape uishape

rmfamily abcABC abcABC abcABC abcABC abcABCmdseries sffamily abcABC abcABC abcABC abcABC abcABC

ttfamily abcABC abcABC abcABC abcABC abcABC

rmfamily abcABC abcABC abcABC abcABC abcABCbfseries sffamily abcABC abcABC abcABC abcABC abcABC

ttfamily abcABC abcABC abcABC abcABC abcABC

Tabella 115 Le varie combinazioni di serie e di forma per le varie famigliestandard dei font Computer Modern usabili con LATEX I caratteri rossi sono statisostituiti con altri caratteri aventi il maggior numero possibile delle caratteristicherichieste Con i font latini aventi la codifica T1 si hanno meno sostituzioni solola famiglia typewriter type continua a non disporre della serie nera La collezionedei font latini Latin Modern oltre la famiglia typewriter type contiene anche lafamiglia variable typewriter type (macchina da scrivere a spaziatura variabile)per entrambe esiste la serie nera ma solo nelle forme dritta e inclinata

dove 〈xx〉 sono le stesse due lettere che compaiono allrsquoinizio delle istruzioniavremo quindi textrm textsl textbf textsf eccetera

La sintassi di tutti questi comandi egrave la seguente

text〈xx〉〈testo〉

Percheacute egrave preferibile usare i comandi rispetto alle istruzioni Percheacute con ilcomando il programma LATEX puograve conoscere dove comincia e dove finisce iltesto da comporre con una particolare caratteristica e quindi sa dove inserirela lsquocorrezione italicarsquo una piccola correzione per allontanare o per avvicinare isegni che precedono o seguono il 〈testo〉 Spesso i caratteri che seguono sono deisegni di interpunzione lsquoaltirsquo come i due punti o il punto e virgola oppure come ilpunto esclamativo o interrogativo talvolta si tratta di parentesi si noti alloralrsquoeffetto di chiudere fra parentesi una parola scritta in corsivo se non egrave presenteo se egrave presente la correzione italica (XYZ) a confronto con (XYZ ) Chiaramenteil secondo caso egrave stato composto con il comando e il primo con lrsquoistruzione nelprimo la parentesi chiusa batte contro la Z nel secondo no4 Si osservi infine cheil caso piugrave frequente di necessitagrave della correzione italica si ha quando si usa ilcarattere corsivo tuttavia il fenomeno si produce anche con il tondo5 fF e fF

Fra i comandi per scegliere la forma dei segni di un font non bisogna scordarelrsquoistruzione em e il comando emph essi servono per evidenziare (in ingleseemphasize) una parola o una breve locuzione allrsquointerno di altro testo Questaistruzione e questo comando hanno la proprietagrave di cambiare inclinazione al font(eventualmente passando dal tondo al corsivo oppure al tondo inclinato) percui in questo testo scritto in tondo la parola emphasize egrave evidenziata in corsivomentre in questo testo composto in corsivo emphasize viene evidenziato in tondoIn entrambi i casi si egrave scritto emphemphasize

4Si noti che in tipografia si usano le parentesi non inclinate anche quando esse racchiudonotesto scritto con caratteri inclinati

5Lrsquoesempio non egrave cervellotico fF egrave il simbolo dellrsquounitagrave di misura lsquofemtofaradrsquo che si incontraspesso in microelettronica

212 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

Egrave drsquoobbligo segnalare un fatto importante le varie forme serie e corpi noncheacutele varie famiglie di font vanno usate con criterio Lrsquoabitudine di evidenziare leparole in corsivo o in neretto oppure ancora in corsivo nero egrave una operazioneda dilettante Esistono delle norme editoriali per lrsquouso di queste varianti deicaratteri e non egrave il caso di abusarne In tipografia non si sottolineano mai paroleo frasi per metterle in evidenza come si faceva con la macchina da scrivereEsistono poi anche delle lsquonormersquo psicosociologiche che sconsigliano di cambiarefont troppo spesso se qualcosa deve essere evidenziato questo non vuol direevidenziare tutto Alcuni studenti usano il pennarello colorato per evidenziarele parti che ritengono importanti finiscono con lrsquoevidenziare quasi tutto e ilrisultato ovvio egrave che nulla emerge dallo sfondo colorato se non appunto le cosemeno importanti

114 Altri font diversi da quelli di defaultTalvolta egrave necessario usare font diversi da quelli di default per ottenere effettidiversi per uniformarsi allo stile di documenti scritti con altri metodi peraumentare la leggibilitagrave per rendere piugrave compatto il testo eccetera

Sono stati predisposti diversi pacchetti per sostituire le famiglie di font usatedi default con altre famiglie generalmente con lo scopo di usare famiglie difont commerciali anche se disponibili gratuitamente Sul mercato infatti sonodisponibili migliaia di famiglie di font Essi costituiscono la croce e delizia deidisegnatori editoriali e richiedono appunto la loro professionalitagrave per usarlial meglio Per i lsquodilettantirsquo puograve essere difficile da un punto di vista estetico efunzionale usare i font commerciali ma la presenza dei pacchetti per lrsquouso diquesti font rende lrsquooperazione tecnicamente molto piugrave facile e lrsquouso di questi fontdiventa alla portata di tutti

Si possono dunque invocare diversi pacchetti che servono per sostituire unaalla volta le tre famiglie principali di font tuttavia la cosa non egrave semplice omeglio egrave semplicissimo con LATEX ma egrave difficile eseguire scelte in cui le famigliesi accordino alla perfezione in particolare per quel che riguarda lrsquoaltezza delleminuscole la famosa x-height

Per questo scopo allora si consiglia ai lettori di fare riferimento a due pacchettiin particolare txfonts e pxfonts

Il lettore confronti i capoversi presenti nella figura 116 si tratta di duetesti composti con font dello stesso corpo (10 pt) e con lo stesso avanzamento diriga (12 pt) ma con collezioni diverse di font Eventualmente usi una lente diingrandimento (anche quella fornita dal programma di visualizzazione del filePDF) per esaminare i dettagli di forma delle lettere inoltre noti il differentelivello di nero dei testi composti con questi font

115 I font per la matematicaI font per la matematica sono un argomento un porsquo particolare percheacute sono unaspecialitagrave del sistema TEX Ci sono anche altri font dotati di segni matematicima di solito sono assai modesti come qualitagrave tipografica a meno che non sianostati adattati completamente al sistema TEX come per esempio i font Times

115 I FONT PER LA MATEMATICA 213

Testo composto con i font Times extended 1

Il pacchetto txfonts consente di usare i font Times per il testo con grazie il fontHelvetica per il testo scritto senza grazie e una variante del Courier per la famigliaa spaziatura fissa I font sono caricati con fattori di scala predefiniti in modo che lealtezze x-height siano il piu possibile simili non esattamente identiche perche la formadei segni richiede delle curve leggermente abbondanti specialmente con lrsquoHelvetica

La lsquoxrsquo presente nel nome di questo pacchetto richiama il fatto che si tratta di unacollezione estesa infatti con lrsquouso di questi font diventano disponibili non solo tutti isimboli di LATEX standard arricchito dai font del pacchetto amsmath ma una ulteriorevarieta che ne aumenta ancora la versatilita Quindi tx sta per lsquoTimes eXtendedrsquo

Testo composto con i font Palatino extended 1

Lrsquoaltro pacchetto pxfonts mette a disposizione il Palatino esteso il Palatinoviene usato al posto del Times ma per le altre famiglie si usano ancora lrsquoHel-vetica e il Courier In questo caso i fattori di scala con cui sono invocati i fontaccessori sono diversi da quelli del Times perche il Palatino a pari corpo apparedecisamente piu grande e piu largo

Figura 116 Esempi di testi composti con i font Times e Palatino

forniti con il pacchetto txfonts o i font Palatino forniti con il pacchetto pxfontsdi questi font si egrave giagrave detto in precedenza

Tuttavia egrave doveroso presentare anche le tabelle dei font matematici affincheacutesia pure sotto forma di una specie di catalogo ci si possa rendere conto di qualisegni sono disponibili e quali sono gli indirizzi di ogni segno allrsquointerno di ognipolizza

Le tabelle 116 e 117 contengono la polizza del corsivo matematico che hacaratteristiche assai diverse dal font corsivo per il testo la polizza contiene ancheun certo numero di simboli e lrsquoalfabeto greco maiuscolo e minuscolo oltre alle cifrearabe minuscole I grandi maestri della tipografia unanimemente raccomandanodi usare le cifre arabe minuscole nel testo e di usare quelle maiuscole nelle tabellee in matematica La polizza dei simboli oltre a numerosi simboli matematici e peraltri scopi contiene anche lrsquoalfabeto calligrafico maiuscolo lrsquoalfabeto calligraficoviene selezionato in matematica con il comando mathcal

Vale la pena di commentare la polizza del segni estensibili 118 percheacute latabella sembra formata in modo diverso dalle altre Non egrave lsquocolparsquo della tabellama dei font tutti i segni hanno una altezza nulla e una profonditagrave corrispon-dente alla effettiva dimensione verticale del segno questo serve alla sezione dicomposizione della matematica per poter collocare correttamente tutti i segni inquella disposizione bidimensionale costituita da una espressione matematica Sinotino anche i mezzi delimitatori e i pezzetti che permettono sovrapponendoliin modo scalato di disegnare qualunque delimitatore con qualsiasi dimensionesia in altezza per quelli che devono espandersi in verticale sia in larghezza perquelli che devono espandersi in orizzontale

La gestione di questi simboli estensibili come si puograve facilmente immaginareegrave piuttosto complessa il bello egrave che lrsquointerprete fa tutto da solo e il compositorenon deve occuparsi di nulla per gestire questi simboli al massimo deve ricordarsi

214 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

1

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 Γ0

∆1

Θ2

Λ3

Ξ4

Π5

Σ6

Υ7

Φ8

Ψ9

Ω10

α11

β12

γ13

δ14

ε1500

rsquo020 ζ16

η17

θ18

ι19

κ20

λ21

micro22

ν23

ξ24

π25

ρ26

σ27

τ28

υ29

φ30

χ3110

rsquo040 ψ32

ω33

ε34

ϑ35

D36

E37

ς38

ϕ39

40

41

42

43

44

45

N46

O4720

rsquo060 48

49

50

51

52

53

54

55

56

57

58

59

lt60

61

gt62

Z6330

rsquo100 part64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

rsquo120 P80

Q81

R82

S83

T84

U85

V86

W87

X88

Y89

Z90

91

]92

^93

_94

`9550

rsquo140 a96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

ı123

124

weierp125

d126

e127

70

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 025000 x-height 430554 ptspazio interparola 000000 pt larghezza del quadrato 1019999 ptallungamento interparola 000000 pt spazio extra 000000 ptaccorciamento interparola 000000 pt corpo nominale 1000000 pt

Tabella 116 Il corsivo matematico con codifica OML questa polizza contieneanche le cifre arabe lsquominuscolersquo 1

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 minus0middot

1times

2lowast

3divide

4$

5plusmn

6∓

7oplus

8

9otimes

10)

11

12copy

13

14bull

1500

rsquo020 -16equiv

17sube

18supe

19le

20ge

213

224

23sim

24asymp

25sub

26sup

279

28

29≺

30lt

3110

rsquo040 larr32rarr

33uarr

34darr

35harr

36

37

38D

39lArr

40rArr

41uArr

42dArr

43hArr

44

45

46prop

4720

rsquo060 prime48infin

49isin

50P

51Q

52R

53S

54T

55forall

56exist

57not

58empty

59X

60Y

61Z

62perp

6330

rsquo100 alefsym64A

65B

66C

67D

68E

69F

70G

71H

72I

73J

74K

75L

76M

77N

78O

7940

rsquo120 P80Q

81R

82S

83T

84U

85V

86W

87X

88Y

89Z

90cup

91cap

92_

93and

94or

9550

rsquo140 b96c

97d

98e

99f

100g

101

102

103〈

104〉

105|

106

107k

108l

109

110m

11160

rsquo160 radic112

o113

nabla114

int115

r116

s117

t118

u119

sect120

dagger121

Dagger122

para123

clubs124

diams125

hearts126

spades127

70

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 025000 x-height 430554 ptspazio interparola 000000 pt larghezza del quadrato 1019999 ptallungamento interparola 000000 pt spazio extra 000000 ptaccorciamento interparola 000000 pt corpo nominale 1000000 pt

Tabella 117 La polizza dei simboli matematici non estensibili con codifica OMSQuesta polizza egrave usata anche come alfabeto matematico percheacute contiene anchele maiuscole calligrafiche

115 I FONT PER LA MATEMATICA 2151

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 (0

)1

[2

]3

lfloor4

rfloor5

lceil6

rceil7

8

9

lang10

rang11

∣12

∥13

14

∖1500

rsquo020 (16

)17

(18

)19

[20

]21

lfloor22

rfloor23

lceil24

rceil25

26

27

lang28

rang29

30

∖3110

rsquo040 (32

)33

[34

]35

lfloor36

rfloor37

lceil38

rceil39

40

41

lang42

rang43

44

∖45

46

∖4720

rsquo060 48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

6330

rsquo100 64

65

66

67

lang68

rang69

⊔70

⊔71

∮72

∮73

⊙74

⊙75

oplus76

oplus77

otimes78

otimes7940

rsquo120 sum80

prod81

int82

⋃83

⋂84

⊎85

and86

or87

sum88

prod89

int90

⋃91

⋂92

⊎93

and94

or9550

rsquo140 ∐96

∐97

98

99 100

˜101

˜102 103

[104

]105

lfloor106

rfloor107

lceil108

rceil109

110

111

60

rsquo160 radic112

radic113

radic114

radic115

radic116

radic117

radic118

119

120

121

︷122

︷123

︸124

︸125

126

127

70

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430554 ptspazio interparola 000000 pt larghezza del quadrato 1019999 ptallungamento interparola 000000 pt spazio extra 000000 ptaccorciamento interparola 000000 pt corpo nominale 1000000 pt

Tabella 118 I segni matematici estensibili con codifica OMX

di indicare con left i delimitatori di apertura e con right i delimitatori dichiusura Usando pdftex (che ricordiamo include anche le estensioni di etex)come interprete esiste anche il comando middle per un delimitatore intermedioche viene esteso in verticale nello stesso modo di quando si usa left o rightmacon una spaziatura a destra e a sinistra coerente con il significato di delimitatoreintermedio

In matematica la scelta dei font egrave molto piugrave complessa Innanzi tutto egravepossibile di default scrivere una formula in caratteri neri solo se

bull prima di entrare in modo matematico si dagrave la dichiarazione boldmathchiuso lrsquoambiente matematico bisogna poi dare il comando unboldmathaltrimenti la dichiarazione di comporre in nero rimane valida lsquoper semprersquoalternativamente la formula da comporre in nero puograve essere racchiusaassieme alla dichiarazione boldmath dentro ad un gruppo per esempio

inizio del gruppoboldmathbeginequationendequation fine del gruppo

216 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

bull si usa il pacchetto amsmath con il pacchetto accessorio amsymb che mettea disposizione il comando boldsymbol per comporre in nero un simbolomatematico isolatamente oppure si carica il pacchetto bm che mettea disposizione un comando simile bm per comporre in nero simboli osottoespressioni matematiche isolate o volendo una intera espressione

I comandi disponibili fanno riferimento agli alfabeti matematici caricati dallaclasse o dai pacchetti richiamati nel preambolo di default sono caricati i fontdella collezione Computer Modern a 128 caratteri predisposti per la matematicatabelle 116-118 questi font obbediscono in generale a codifiche specifiche nonusabili nel testo se non con comandi particolari Per esempio egrave possibile usarenel testo le cifre arabe minuscole 0123456789 attraverso lrsquouso del comandooldstylenums sebbene i loro segni derivino dal font destinato alle letterematematiche

In particolare ogni classe eo ogni pacchetto che carichi i font matematici didefault o alternativi a quelli di default carica quattro famiglie6 distinte

bull la famiglia per gli operatori (tabella 112) essa puograve coincidere con il fonttondo con grazie usato per il testo ma viene usato in modo matematiconon accetta gli accenti testuali e non accetta gli spazi Esso serve percomporre i piugrave comuni simboli matematici come +minus= e pochi altri lecifre arabe maiuscole diritte ma essenzialmente serve per comporre il nomedelle funzioni matematiche come lsquosinrsquo lsquocosrsquo lsquologrsquo lsquolimrsquo eccetera

bull La famiglia per le lettere (tabella 116) essa contiene lrsquoalfabeto latino elrsquoalfabeto greco corsivi usati per le variabili matematiche contiene anchenumerosi altri simboli binari o di relazione e le cifre arabe minuscole Ilcorsivo matematico latino non riconosce le legature percheacute ogni letterarappresenta una variabile e in matematica le variabili moltiplicate fra diloro sono generalmente scritte una dopo lrsquoaltra senza segni interposti Sipuograve scrivere ff = f2 e le due f non devono legarsi nella solita legaturatestuale ff Usare questi font per scrivere Veff per indicare la tensioneefficace produce una composizione orrenda Si egrave giagrave detto come scriverecorrettamente pedici eo apici testuali usati come apposizioni delle variabilimatematiche

bull La famiglia per i simboli (tabella 117) contiene lrsquoalfabeto maiuscolocalligrafico e moltissimi altri segni per gli operatori binari eo di relazione

bull La famiglia dei simboli estensibili (tabella 118) cioegrave i segni di radice e diintegrale e le parentesi di vari tipi che cambiano dimensioni a seconda delcontenuto su cui devono operare

Siccome le famiglie di font matematici in senso stretto che TEX puograve usaresono al massimo sedici non egrave il caso di caricare altre famiglie senza tenere contodi questo limite quando si carica direttamente o indirettamente il pacchettoamsfonts vengono definite altre due famiglie di segni matematici (tabelle 101e 102) Egrave raro raggiungere il limite di 16 famiglie ma a chi scrive egrave capitato

6Il nome famiglia qui egrave usato in modo un porsquo diverso da solito per TEX una famiglia di fontmatematici egrave un gruppo di font con lo stesso disegno ma usabili in tre corpi distinti quellonormale quello per i pedici e gli apici di primo livello e quello per i pedici e gli apici di secondolivello Questo egrave uno dei motivi per i quali la gestione dei font matematici egrave decisamente piugraveelaborata di quella per i font testuali

115 I FONT PER LA MATEMATICA 217

Per inserire variabili composte con altri alfabeti mediante i comandi mathsfo mathtt o mathit o simili LATEX2ε ricorre a delle dichiarazioni che usano ifont testuali in modo matematico (senza accenti e senza spazi) ma senza caricareeffettivamente altre famiglie di font matematici I dettagli sono abbastanza deli-cati per cui si rimanda alla guida fntguidepdf nella cartella doclatexbase che dedica una lunga sezione ai comandi per gestire i font matematiciPer vedere in azione quei comandi si puograve esaminare il file fontmathltx nellacartella texlatexbase dove sono usati tutti gli speciali comandi percaricare i font matematici di default

Il consiglio che si puograve dare in merito alla gestione dei caratteri matematiciegrave quello di cercare di avere sempre i font testuali e quelli matematici che siaccordino fra di loro armoniosamente come minimo devono avere lo stesso occhiodelle lettere minuscole e devono avere la stessa nerezza I pacchetti txfonts epxfonts caricano correttamente sia i font testuali sia quelli per la matematicama per esempio se si volessero usare il font Utopia per il testo basterebbeusare il pacchetto utopia questo pacchetto perograve imposta solo i font testualiconservando i font di default per la matematica Il risultato che si otterrebbe egravepessimo lrsquoocchio dei font Utopia e la loro nerezza contrasta vistosamente conlrsquoocchio e la nerezza dei font Computer Roman per cui lrsquouso di quel pacchettosarebbe accettabile solo per comporre un documento privo completamente dimatematica

Il pacchetto mathdesign specificando lrsquoopportuna opzione permette invecedi caricare font testuali e matematici che si accordano fra di loro armoniosamenteDando il comando

usepackage[utopia]mathdesign

si possono usare infatti i font Utopia anche per testi contenenti della matematicapercheacute i font matematici sono scelti in modo da accordarsi con i font per il testo

Il pacchetto mathdesign accetta come opzioni utopia (Adobe Utopia) char-ter (Bitstream Charter) garamond (URW Garamond) e ne sono previsti alcunialtri Bisogna usare qualche piccola cautela (per esempio non si deve contempo-raneamente caricare il pacchetto amsmath con i suoi font se non altro percheacutemathdesign ha giagrave ridefinito tutti i comandi) e per questo egrave necessario leggere conattenzione il file di documentazione mathdesign-docpdf in doclatexmathdesign Anche il pacchetto fourier consente di usare il font Utopia con icaratteri matematici congruenti il file di documentazione fourier-doc-enpdfegrave in docfontsfourier

Con alcune classi vengono di default usati font testuali e matematici chepossono venire facilmente modificati e sostituiti con altri In particolare talvoltaviene usato il pacchetto euler il file della documentazione eulerpdf si trova indoclatexeuler e va letto attentamente fra lrsquoaltro vi si dice che questotipo di font matematico si accorda abbastanza bene con diversi font vettorialima bisogna fare attenzione sulla sequenza delle chiamate ai vari pacchetti Ilpacchetto accetta anche diverse opzioni che vanno usate con attenzione Tuttaviabencheacute i singoli caratteri siano bellissimi e siano una imitazione (disegnatadal grande Hermann Zapf) dei segni che un matematico con bella calligrafiascriverebbe sulla lavagna essi sono sostanzialmente diritti e non hanno unaforma corsiva o comunque inclinata per questo motivo essi sono da preferireper comporre un documento di tipo prettamente matematico e non risultanoadatti ad un documento scritto da un fisico o un tecnologo Naturalmente egrave una

218 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

questione di gusti ma egrave opportuno ricordare che le norme ISO per la scritturadella matematica per la fisica e la tecnologia sono piuttosto stringenti e hannouna loro precisa ragion drsquoessere

114 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17

000 0

1

2

3

4

5

6

7

8

9

10

11

1213

13 14 1500

02016 17

18 19 20

21

22

23

24

25

26

27

28

29 30

3110

040 32 33 34 35

$36 37 38

39 40 41

42 43

44

-45

46

4720

060 048

149

250

351

452

553

654

755

856

957 58 59

lt60

=61

gt62 63

30

10064 65 66 67 68 69 70 71 72 73 74 75 76

M77 78

O7940

12080 81 82 83 84 85 86

W87 88 89 90

[91 92

]93

^94

_9550

140 `96 97

b98

c99

d100 101 102 103 104 105 106 107

l108

m109

n110 111

60

160112 113 114 115 116 117 118 119 120 121 122 123 124 125

~126

127

70

200 128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

80

220 144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

90

240 160

iexcl161

cent162

pound163

curren164

yen165

brvbar166

sect167

uml168

copy169

ordf170

laquo171

not172

shy173

reg174

macr175

A0

260 deg176

plusmn177

sup2178

sup3179

acute180

micro181

para182

middot183

cedil184

sup1185

ordm186

raquo187

frac14188

frac12189

frac34190

iquest191

B0

300192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207

C0

320208 209 210 211 212 213

Ouml214 215 216 217 218 219 220 221 222 223

D0

340224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239

E0

360240 241 242 243 244 245

ouml246 247 248 249 250 251 252 253 254 255

F0

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430450 ptspazio interparola 333251 pt larghezza del quadrato 999755 ptallungamento interparola 166625 pt spazio extra 111083 ptaccorciamento interparola 111083 pt corpo nominale 1000000 pt

Figura 116 Il Text Companion Font con codica TS1Tabella 119 Il Text Companion Font con codifica TS1

116 Il Text Companion FontLATEX consente di usare un numero enorme di simboli specialmente in mate-matica ma da solo LATEX non offre i simboli che si usano nel testo dai segnidelle unitagrave monetarie ad altri segni che possono trovare posto in scritti di variogenere

Cosigrave quando furono prodotti i primi font latini con la codifica T1 fu sentitaimmediatamente la necessitagrave di un certo numero di segni o comandi non coperticon i simboli di nessun altro font e fu predisposto il Text Companion Font i cuisimboli sono riportati nella tabella 119 ritorna per lrsquoennesima volta il segno delmho M il cui unico pregio egrave quello di poter essere scritto in modo testo con ilcomando textmho Ahimegrave trattandosi di un segno bandito dalle norme ISOquesto segno appare per la terza volta ma inutilmente percheacute non puograve essereusato7

Il Text Companion Font viene caricato e reso utilizzabile invocando il pacchet-to textcomp Per altro se si usa il pacchetto mathdesign egrave superfluo caricare il

7In realtagrave egrave ancora usato negli Stati Uniti dove le norme ISO hanno meno seguito che inEuropa In Europa invece non dovrebbe piugrave esserci nessuno che lo usi

117 GLI ALFABETI DIVERSI DA QUELLO LATINO 219

pacchetto textcomp percheacute tutti i simboli disponibili con i font Utopia Chartere Garamond sono giagrave tutti definiti

117 Gli alfabeti diversi da quello latinoPer scrivere in altre lingue bisogna avere invocato il pacchetto babel avendoindicato fra le opzioni le lingue che si vogliono usare lrsquoultima lingua indicatanellrsquoelenco delle opzioni diventa la lingua di default per lrsquointero documento

Quando si invoca una qualsiasi lingua che si scriva con lrsquoalfabeto cirillico(russo bulgaro ucraino eccetera) il pacchetto babel imposta direttamenteanche lrsquouso dellrsquoalfabeto cirillico Una versione a 128 caratteri egrave riportata nellatabella 113 perograve con alcune di quelle lingue puograve venire scelto un altro encodingmagari a 256 caratteri

1171 Caratteri cirilliciCome giagrave detto i font cirillici sono solitamente preinstallati in ogni distribuzionenon minimale del sistema TEX Le codifiche cirilliche oltre alla giagrave citata OT2a 128 caratteri sono tre diverse versioni a 256 caratteri T2A T2B e T2C einfine la codifica X2

In che cosa differiscono queste codifiche Nel fatto che la codifica a 128caratteri richiede espressamente di essere attivata quando si usa il cirillico esi scrive esclusivamente in russo Le codifiche T2x hanno i primi 128 carattericoincidenti con quelli della codifica T1 quindi sono caratteri latini mentre isecondi 128 caratteri sono quelli cirillici validi per scrivere in russo anche conortografie lsquoprerivoluzionariersquo Ma la variante A serve per scrivere oltre che incaratteri latini anche con il cirillico usato nei paesi dellrsquoEuropa orientale (UcrainaBulgaria Russia) La variante B serve per comporre con i segni cirillici usatinelle repubbliche della Siberia Orientale La variante C serve per scrivere inabcazio

Egrave chiaro che queste tre codifiche permettono di scrivere contemporaneamentenelle lingue dellrsquoEuropa occidentale e in una o lrsquoaltra delle lingue dellrsquoEuropaorientale e dellrsquoex Unione Sovietica Non tutte le collezioni di font perograve conten-gono sia il latino sia il cirillico dellrsquouna o dellrsquoaltra specie eo sono disponibili siain forma vettoriale come sarebbe desiderabile sia in forma a matrice di punti

Per scrivere testi cirillici senza i vincoli delle polizze e delle codifiche appenaviste si puograve usare la codifica X2 la cui matrice di segni egrave mostrata nellatabella 1110 Si noti che la distribuzione normale del sistema TEX almeno finoalla distribuzione di TEX Live 2009 conteneva questi font adatti alla codifica X2solo a matrici di punti non in formato scalabile Se si fosse dovuto avere bisognodi questi font non sarebbe stato un problema trasformarli in formato scalabileusando la procedura esemplificata nel paragrafo 11825 con la distribuzioneTEX Live 2010 non egrave piugrave necessario ricorrere a questa trasformaione

Va notata infine una cosa i font cirillici con codifica OT2 sono disponibilisia a matrici di punti sia in formato scalabile questi font sono adatti a scrivereparole russe semplicemente cambiando codifica e impedendo la sillabazione unatastiera latina egrave perfettamente in grado di immettere il testo russo ricorrendoalle sole lettere latine un porsquo come saragrave descritto nel paragrafo 11822 perscrivere in greco in altre parole la disposizione dei segni cirillici nella tabella 113

220 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo000 `0

acute1

ˆ2

˜3

uml4

˝5

˚6

ˇ7

˘8

macr9

˙10

cedil11

˛12

sbquo13

lsaquo14

rsaquo15

00

rsquo020 ldquo16

rdquo17

bdquo18

laquo19

raquo20

ndash21

mdash22

23

permil24

ı25

26

ff27

fi28

fl29

ffi30

ffl31

10

rsquo040 32 33 34 35 $ 36 37 amp 38 rsquo 39 ( 40 ) 41 42 + 43 44 - 45 46 47 20

rsquo060 048

149

250

351

452

553

654

755

856

957

58

59

lt60

=61

gt62

63

30

rsquo100 64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O79

40

rsquo120 P 80 Q 81 R 82 S 83 T 84 U 85 V 86 W 87 X 88 Y 89 Z 90 [ 91 92 ] 93 ^ 94 _ 95 50

rsquo140 lsquo96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p 112 q 113 r 114 s 115 t 116 u 117 v 118 w 119 x 120 y 121 z 122 123 | 124 125 ~ 126 shy 127 70

rsquo200 Ă128

Ą129

Ć130

Č131

Ď132

Ě133

Ę134

Ğ135

Ĺ136

Ľ137

Ł138

Ń139

Ň140

Ŋ141

Ő142

Ŕ143

80

rsquo220 Ř144

Ś145

Š146

Ş147

Ť148

Ţ149

Ű150

Ů151

Ÿ152

Ź153

Ž154

Ż155

IJ156

İ157

đ158

sect159

90

rsquo240 ă 160 ą 161 ć 162 č 163 ď 164 ě 165 ę 166 ğ 167 ĺ 168 ľ 169 ł 170 ń 171 ň 172 ŋ 173 ő 174 ŕ 175 A0

rsquo260 ř176

ś177

š178

ş179

ť180

ţ181

ű182

ů183

yuml184

ź185

ž186

ż187

ij188

iexcl189

iquest190

pound191

B0

rsquo300 Agrave192

Aacute193

Acirc194

Atilde195

Auml196

Aring197

AElig198

Ccedil199

Egrave200

Eacute201

Ecirc202

Euml203

Igrave204

Iacute205

Icirc206

Iuml207

C0

rsquo320 ETH 208 Ntilde 209 Ograve 210 Oacute 211 Ocirc 212 Otilde 213 Ouml 214 Π215 Oslash216 Ugrave217 Uacute 218 Ucirc 219 Uuml 220 Yacute 221 THORN222 d 223 D0

rsquo340 agrave224

aacute225

acirc226

atilde227

auml228

aring229

aelig230

ccedil231

egrave232

eacute233

ecirc234

euml235

igrave236

iacute237

icirc238

iuml239

E0

rsquo360 eth 240 ntilde 241 ograve 242 oacute 243 ocirc 244 otilde 245 ouml 246 œ 247 oslash 248 ugrave 249 uacute 250 ucirc 251 uuml 252 yacute 253 thorn 254 szlig 255 F0

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Font parameters

inclinazione 00pt x-height 43045ptspazio interparola 333252pt larghezza del quadrato 999756ptallungamento interparola 166626pt spazio extra 111084ptaccorciamento interparola 111084pt corpo nominale 1000000 pt

August 17 2010 1446 1

Tabella 1110 Il font cirillico esteso con la codifica X2

e un set di legature permette di usare i segni latini e la translitterazione latinadel russo secondo la norma anglosassone cosiccheacute non egrave affatto difficile inserirequalche parola russa allrsquointerno del testo scritto in caratteri latini Per esempiodopo aver definito un comando textcyrillic della forma8

newcommandciryllictexthyphenrulesnohyphenationfontencodingOT2fontfamilycmrselectfontDeclareTextFontCommandtextcyrilliccyrillictext

si puograve scrivere textcyrillicKhrushchev dentro un testo scritto in letterelatine per ottenere Hruwev Con gli altri encoding si possono fare cose analoghein particolare egrave possibile usare la codifica di entrata utf8 e disponendo di uneditor adeguato per lrsquoinput dei caratteri cirillici si puograve scrivere direttamente incirillico con la certezza che quel testo viene composto in caratteri cirillici e iltesto lsquolatinorsquo in caratteri latini Si puograve approfondire lrsquoargomento nel bellrsquoarticolodi Enrico Gregorio che espone tutte le procedure nei minimi dettagli e mostraanche le soluzioni a qualche piccolo problema che si puograve manifestare [20]

Per scrivere in russo bulgaro ucraino eccetera egrave meglio specificare la linguacome opzione a babel cosi si dispone direttamente della sillabazione specificadella lingua delle parole codificate per indicare lrsquoequivalente di lsquoCapitolorsquo lsquoFigu-rarsquo lsquoTabellarsquo eccetera e per disporre dei comandi specifici per introdurre certisegni cirillici nel testo Per la lingua russa sono utilizzabili tutte le codifichedisponibili con il sistema TEX ma quella suggerita egrave costituita dalla codifica

8Nel testo [20] lo stesso comando egrave definito in maniera molto piugrave raffinata nel senso cheprende in considerazione la possibilitagrave che la lingua nohyphenation non sia disponibile qui ilcomando egrave definito supponendo di disporre di una distribuzione sufficientemente moderna delsistema TEX

117 GLI ALFABETI DIVERSI DA QUELLO LATINO 221

T2A sebbene quella di default sembra di capire sia la codifica X2 In ogni casoognuna ha i propri vantaggi la codifica suggerita egrave particolarmente utile pergli utenti russi che operano con tastiere russe nelle quali con un semplice clicksi passa dai caratteri latini a quelli cirillici (e viceversa) Cosiccheacute lrsquoeventualecambio di lingua avviene al livello della tastiera Infatti sopra si egrave spiegato che iprimi 128 caratteri della codifica T2A coincidono con i caratteri latini secondola codifica ASCII (a 7 bit) mentre i secondi 128 caratteri contengono i carattericirillici validi per il russo quindi comporre in modo misto non coinvolge il cambiodel font di uscita Ovviamente i caratteri ASCII non sono raccomandabili altroche per scrivere in inglese forse lrsquounica lingua moderna occidentale priva diaccenti

1172 Caratteri greciQuando si invoca invece la lingua greca senza ulteriori specificazioni vieneanche impostato lrsquoalfabeto greco riportato nella tabella 1111 ma predispostoper la scrittura monotonica moderna cioegrave con gli accenti ridotti al solo accentoacuto nelle parole polisillabiche e dove sono eliminati gli spiriti con questesemplificazioni diventa piugrave frequente lrsquouso della dieresi per indicare gruppi divocali che non formano dittonghi Se si specifica invece lrsquoattributo polutonikoper la lingua greca ecco che diventano disponibili tutti i segni indicati nellatabella 1111 Per usare il greco bisogna leggere attentamente la documentazionebabel relativa a questa lingua per usare correttamente la transcodifica dellatastiera USA (o anche italiana) nei caratteri greci si noti che per la moltitudinedi accenti e altri segni diacritici presenti con molte vocali sono previste numeroselegature cosigrave la sequenza gt~a| produce il segno

116 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

questo segno appare per la terza volta ma inutilmente percheacute non puograve essereusato3

Il Text Companion Font viene caricato e reso utilizzabile caricando il pac-chetto textcomp

116 Gli alfabeti diversi da quello latinoPer scrivere in altre lingue bisogna avere invocato il pacchetto babel avendoindicato fra le opzioni le lingue che si vogliono usare lultima lingua indicatanellelenco delle opzioni diventa la lingua di default per lintero documento

Quando si invoca una qualsiasi lingua che si scriva con lalfabeto cirillicorusso bulgaro ucraino eccetera il pacchetto babel imposta direttamente an-che luso dellalfabeto cirillico Una versione a 128 caratteri egrave riportata nellatabella 114 perograve con alcune di quelle lingue puograve venire scelto un altro encodingmagari a 256 caratteri

Quando si invoca la lingua greca senza ulteriori specicazioni viene ancheimpostato lalfabeto greco riportato nella tabella 117 ma predisposto per lascrittura monotonica moderna cioegrave con gli accenti ridotti al solo accento acutonelle parole polisillabiche e dove sono eliminati gli spiriti con queste sempli-cazioni diventa piugrave frequente luso della dieresi per indicare gruppi di vocali chenon formano dittonghi Se si specica invece lattributo polutoniko per la lin-gua greca ecco che diventano disponibili tutti i segni indicati nella tabella 117Per usare il greco bisogna leggere attentamente la documentazione babel rela-tiva a questa lingua per usare correttamente la transcodica della tastiera USA(o anche italiana) nei caratteri greci si noti che per la moltitudine di accenti ealtri segni diacritici presenti con molte vocali sono previste numerose legaturecosigrave la sequenza gt~a| produce il segno

Per produrre testi greci nemente commentati con le notazioni lologiche delsettore si puograve estendere la funzionalitagrave di LATEX con il pacchetto teubner checonsente di introdurre una grande varietagrave di segni specici di usare una seriedi font greci inclinati particolarmente leggibili sviluppati preso la tipograaTeubner di Lipsia e in onore della quale egrave stato scelto il nome del pacchettoTuttavia va fatto osservare che pacchetti di vario genere possono collidere inparticolare il pacchetto teubner sembra collidere con i pacchetti amsmath ecompagni egrave vero che dicilmente in un lavoro di lologia classica greca cegravebisogno di usare matematica avanzata tuttavia questo problema esiste e inquesti casi lutente che si scontra con problemi derivanti dal conitto di pacchettidovrebbe avere `il senso civico di avvisare i curatori dei pacchetti come avvieneregolarmente con tutto il software libero il cui progresso avviene proprio graziea questa interazione fra programmatori e utenti

117 La gestione dei fontGestire la moltitudine di font sul proprio elaboratore puograve talvolta risultarefaticoso bisogna tenere presente che i font classici di LATEX sono per lo piugravedistribuiti sotto forma di sorgenti scritti con i linguaggio di programmazione

3In realtagrave egrave ancora usato negli Stati Uniti dove le norme ISO hanno poco seguito InEuropa non dovrebbe piugrave esserci nessuno che lo usi

Per ulteriori informazionicirca lrsquouso normale dei font greci si veda piugrave avanti il paragrafo 11822

Per produrre testi greci finemente commentati con le notazioni filologiche delsettore si puograve estendere la funzionalitagrave di LATEX con il pacchetto teubner checonsente di introdurre una grande varietagrave di segni specifici di usare una seriedi font greci inclinati particolarmente leggibili sviluppati preso la tipografiaTeubner di Lipsia e in onore della quale egrave stato scelto il nome del pacchettoTuttavia va fatto osservare che pacchetti di vario genere possono collidere inparticolare il pacchetto teubner inizialmente collideva con i pacchetti amsmathe compagni questo comportamento egrave stato corretto nel febbraio 2008 grazie alleindicazioni di un utente Egrave vero che difficilmente in un lavoro di filologia classicagreca crsquoegrave bisogno di usare matematica avanzata tuttavia questo problema esistee in questi casi lrsquoutente che si scontra con problemi derivanti dal conflitto dipacchetti dovrebbe avere lsquoil senso civicorsquo di avvisare i curatori dei pacchetticome avviene regolarmente con tutto il software libero il cui progresso avvieneproprio grazie a questa interazione fra programmatori e utenti

Recentemente il pacchetto teubner egrave stato arricchito di altre funzionalitagraveche permettono di comporre i testi filologici in modo tipograficamente miglioreIn particolare diversi segni che era stato necessario creare con soluzioni nonmolto azzeccate sono stati corretti sfruttando le proprietagrave grafiche del motoredi composizione pdflatex allo stesso tempo le crenature dei segni accentati checon le macro precedenti richiedevano non poca ingegnositagrave per essere applicatecorrettamente ora possono essere affrontate con macro che sfruttano meglioi comandi interni di LATEX Speriamo dunque che i filologi si possano trovaremeglio con la nuova versione

222 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

117 LA GESTIONE DEI FONT 117

00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17

000 mdash0

1

2

3

4

5

6

7

8

9

10

11

12

1313

14

1500

020 16

17

18

19

20

21

22

23

euro24

25

ə26

27

28

29

30

macr3110

040 32

33

34

΅35

$36

37

amp38

΄39

(40

)41

42

+43

44

-45

46

4720

060 048

149

250

351

452

553

654

755

856

957

58

59

lt60

=61

gt62

6330

100 64

Α65

Β66

C67

∆68

Ε69

Φ70

Γ71

Η72

Ι73

Θ74

Κ75

L76

Μ77

Ν78

Ο7940

120 Π80

Χ81

Ρ82

Σ83

Τ84

Υ85

V86

Ω87

X88

Ψ89

Ζ90

[91

92

]93

^94

_9550

140 `96

α97

β98

c99

δ100

ε101

φ102

γ103

η104

ι105

θ106

κ107

l108

micro109

ν110

ο111

60

160 π112

χ113

ρ114

σv115

τ116

υ117

v118

ω119

ξ120

ψ121

ζ122

123

ͺ124

125

~126

―127

70

200 128

129

130

131

132

133

134

135

ά136

137

138

139

140

141

142

143

80

220 144

145

146

147

148

149

150

151

152

153

154 155

156

157

158

159

90

240 ή160

iexcl161

cent162

pound163

curren164

yen165

brvbar166

sect167

uml168

copy169

ordf170

laquo171

not172

shy173

reg174

macr175

A0

260 deg176

plusmn177

sup2178

sup3179

acute180

micro181

para182

middot183

ώ184

sup1185

ordm186

raquo187

frac14188

frac12189

frac34190

iquest191

B0

300 Agrave192

Aacute193

Acirc194

Atilde195

Auml196

Aring197

AElig198 199

Egrave200

Eacute201

Ecirc202

Euml203

Igrave204

Iacute205

Icirc206

Iuml207

C0

320 ί208

Ntilde209

Ograve210

Oacute211

ύ212

Otilde213

Ouml214

times215

Oslash216

Ugrave217

Uacute218

Ucirc219

Uuml220

Yacute221

THORN222

szlig223

D0

340 agrave224

aacute225

acirc226

atilde227

auml228

aring229

aelig230

ccedil231

έ232

eacute233

ecirc234

euml235

ό236

iacute237

icirc238

iuml239

E0

360 eth240

ntilde241

ograve242

oacute243

ocirc244

otilde245

ouml246

divide247

oslash248

ugrave249

uacute250

ucirc251

uuml252 253

thorn254

yuml255

F0

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 430450 ptspazio interparola 333251 pt larghezza del quadrato 999755 ptallungamento interparola 166625 pt spazio extra 111083 ptaccorciamento interparola 111083 pt corpo nominale 1000000 pt

Figura 117 Il font greco a 256 caratteri con codica LGRTabella 1111 Il font greco a 256 caratteri con codifica LGR

1173 Scrivere con altri alfabeti

Egrave interessante vedere come il sistema TEX disponga di una miriade di caratterianche per lingue insolite e consenta di comporre i lingue che fanno uso di questialfabeti

Nella figura 117 vi egrave rappresentato il Credo cristiano come stabilito nelConcilio di Nicea esso egrave composto in latino in greco e in copto nella varietagravebohairica quella che viene usata nei testi liturgici della chiesa copta Il latinoaccentato egrave la normale versione del latino ecclesiastico per il quale esiste ilpacchetto ecclesiastic Per il greco si egrave giagrave detto Per il copto esiste il pacchettocoptic che perograve consente di comporre quella lingua nella varietagrave sahidica ilpacchetto bohairic esiste ma oggi (2010) non egrave ancora disponibile per la generalitagravedegli utenti Le due versioni differiscono solo per la presenza delle lettere accentateche per la liturgia copta svolgono piugrave o meno la stessa funzione delle lettereaccentate usate per il latino ecclesiastico

Non si ritiene opportuno di riportare il codice sorgente percheacute sarebbe moltocomplicato e di scarsissimo interesse per la maggior parte dei lettori Per altro sipotrebbero portare esempi anche con scritti in arabo o in ebraico si potrebberoportare esempi con brevi testi in cinese o giapponese o coreano in lingue deltutto esotiche come la lingua inuhit degli esquimesi e tanto altro Ogni linguadispone o puograve disporre di font adatti alla sua composizione e questa egrave una delleforze del sistema TEX e dei suoi vari motori di composizione

117 GLI ALFABETI DIVERSI DA QUELLO LATINO 223

Il Credo di Nicea in tre lingueCredo in unum Deum Pa- Πιστέυω εἰς ἕνα Θεόν Πα- Τ$amp o(o(amp )o(τ -

trem omnipoteacutentem Factoacuterem τέρα Παντοκράτορα ποιητήν o(amp -τ π-π$τo0$τ0 fi1-caeligli et terraelig visibiacutelium oacutemnium ουρανοῦ καὶ γῆες ὁρατῶν τε τ$23$4-ograve )5fi 4 6$- 1-et invisibiacutelium πάντων καὶ ἀοράντων τo($( 0o( 4 1τ )7$(

0o( $Et in unum Doacuteminum Ie- Καὶ εἰς ἕνα Κύριον ᾿Ιησοῦν Τ$amp o(8o-7 )o(τ 91-

sum Christum Fiacutelium Dei Uni- Χριστόν τὸν Ψἱὸν Θεοῦ τὸν μο- 7o(7 Π-0-7τo7 lt=10- gto(ampgeacutenitum et ex Patre natum an- νογενῆ τὸν ἐκ τοῦ Πατρὸς γε- π-4ooγ17 π-4-7- oABte oacutemnia saeligcula Deum de νηθέντα πρὸ πάντων τῶν αἰώνων -τ B$Co( )- τ10o( o(-Deo lumen de luacutemine Deum ve- φῶς ἐκ φωτός Θεὸν ἀληθινὸν ἐκ o(-- oAB o(o(-- o(o(amprum de Deo vero geacutenitum non Θεοῦ ἀληθινοῦ γεννηθέντα οὐ )τ$D41- oAB o(o(amp )τ$D-factum consubstantiaacutelem Patri ποιηθέντα ὁμοούσιον τῷ Πατρί 41- o(4-7- π o(3$4-ograve $ πper quem oacutemnia facta sunt δι΄ οὗ τὰ πάντα ἐγένετο o(4oo(7-o7 π 4 -τ fi1τ$

- =π- oA-τoτ2Qui propter nos hoacutemines Τὸν δι΄ ἡμᾶς τοὺς ἀνθτρώ- E$- τ 31τ Fo B$ --

et propter nostram saluacutetem de- πους καὶ διὰ τὴν ἡμετέραν σω- 04- 4 3 πo(C$- $2G -sceacutendit de caeliglis Et incarnaacutetus τηρίαν κατελθόντα ἐκ τῶν οὐρα- π71τ oAB 5fi $28-7$0H -est de Spiacuteritu Sancto ex Mariacutea νῶν καὶ σαρκωθέντα ἐκ Πνεύμα- oAB Π-6(4$ 3o($ 4 -Viacutergine et homo factus est τος Αγίου καὶ Μαρίας τῆς Παρ- oAB I$0-F ampπ$03o7 o(o

θένου καὶ ἐνανθτρωπήσαντα $2004-Crucifiacutexus eacutetiam pro nobis Σταυρωθέντα τε ὑπέρ ἡμῶν ἐ- O(o $(0Jτ$(0- gt4o2

sub Poacutentio Pilaacuteto passus et πὶ Ποντίου Πιλάτου καὶ παθόν- K01- C $0 Πoτ-o7 Π--sepuacuteltus est et resurreacutexit teacuter- τα καὶ ταφέντα Καὶ ἀναστάντα A$τo7 $2=π4$ o(o $(-tia die secuacutendum Scriptuacuteras et τῇ τρίτῃ ἡμέρᾳ κατὰ τὰς Γραφάς o72 O(o $2τ2 oABasceacutendit in caeliglum sedet ad deacutex- Καὶ ἀνελθόντα εἰς τοὺς οὐρανοὺς 134o(τ B π-oo( gt4$-teram Patris Et iacuteterum ventuacute- καὶ καθεζόμενον ἐκ δεξιῶν τοῦ =o4τ $τ$ -L0$fi1 M2=$2rus est cum gloacuteria iudicaacutere vivos Πατρός Καὶ πάλιν ἐρχόμενον με- 6=- -fi1o(G $247- 7$o(G-et moacutertuos cuius regni non erit τὰ δόξης κρῖναι ζῶντας καὶ νε- $4 gtπ2-τ N π$A- O1o(nis κρούς οὖ τῆς βασιλείας οὐκ ἔ- B π2Po( amp$π 1τoB 4

σται τέλος 134o(τ fi1τ τ24τo(0oo($34o( τ

Et in Spiacuteritum Sanctum Καὶ εἰς τὸ Πνεῦμα τὸ ῞Αγιον Q τ$amp Π-6(4$ 3o(-Doacuteminum et vivicaacutentem qui τὸ κύριον τὸ ζωοποιόν τὸ ἐκ τοῦ $ lt8o-7 )02amp gt6B fi13-ex Patre (Filioacuteque) proceacutedit Πατρὸς ἐκπορευόμενον τὸ σὺν 1o( oAB -τ 7o(=τ gt-Qui cum Patre et Fiacutelio simul Πατρὶ καὶ Ψἱῷ συμπροσκυνούμε- 4o2 7ampPo( $2 4 -τ 4adoraacutetur et congloricaacutetur qui νον καὶ συνδοξαζόμενον τὸ λα- lt=10- fi1τ$27$C- B -60ofi1-locuacutetus est per propheacutetas Et λῆσαν διὰ τῶν προφητ῀τον Εἰς τ17 Ro(G )Fγ-F )$3oA-1 )F-unam sanctam cathoacutelicam et μίαν Αγίαν Καθολικὴν καὶ Α- πo7τoA-1 )SA17-$ Τ0ograve-apostoacutelicam Eccleacutesiam Confiacute- ποστολικὴν ᾿Εκκλησίαν ῾Ομολο- 4oAoγ- )o(47 )o(τ 6T -teor unum baptiacutesma in remis- γῶ ἓν βάπτισμα εἰς ἄφεσιν ἁμαρ- oA )τ -o- ΤCo(=τ -sioacutenem peccatorum Et expecto τιῶν Προσδοκῶ ἀνάστασιν νε- oA B$51 )ampF$7τ$7-7 )τ --resurrectionem mortuorum et κρῶν Καὶ ζωὴν τοῦ μέλλοντος 024o(τ 4 π-B )τ π-vitam ventuacuteri saeligculi Amen αἰῶνος Αμήν 31o( F41

1

Figura 117 Il Credo di Nicea in tre lingue che fanno uso di alfabeti diversi

224 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

118 La gestione dei fontGestire la moltitudine di font sul proprio elaboratore puograve talvolta risultarefaticoso bisogna tenere presente che i font classici di LATEX sono per lo piugravedistribuiti sotto forma di sorgenti scritti con il linguaggio di programmazioneMETAFONT e che tutti i programmi delle distribuzioni del sistema TEX sonoin grado di lanciare METAFONT il programma in modo da generare al volo ifont in formato bitmapped adatti al tipo di schermo e di stampante che si sonoconfigurati durante lrsquoinstallazione del sistema

Tuttavia mentre su carta i font bitmapped creati per la densitagrave di stampadella stampante in uso danno luogo ad un risultato perfetto quegli stessi font nonsono il meglio che si possa usare per leggere il testo sullo schermo specialmentese si desidera leggere il testo con ingrandimenti diversi

Sarebbe meglio disporre dei font in formato outline ma questi sono difficilida ottenere dai file sorgente METAFONT quindi bisogna scaricarli dalla rete lsquogiagravefattirsquo Inoltre crsquoegrave la miriade di font che si possono comperare o che si trovano comefreeware sia in formato Adobe Type 1 (PostScript) sia in formato TrueType ein formato OpenType La loro installazione non egrave banale per i seguenti motivi

LATEX per lavorare non ha bisogno dei disegni dei font ma delle loro caratte-ristiche geometriche queste sono raccolte in file con lrsquoestensione tfm (TEX FontMetrics) se si usa LATEX saragrave poi il driver che trasforma il file DVI in formaleggibile quello che avragrave bisogno dei disegni che in formato bitmapped hannoestensioni del tipo 〈dpi〉pk in formato PostScript pfb (PostScript Font inBinary format) in formato TrueType ttf (TrueType Font) Se invece si usapdfLATEX esso ha bisogno simultaneamente sia dei file metrici sia dei file outlineo in mancanza dei file bitmapped

I font bitmapped di origine METAFONT vengono generati insieme con il filetfm quindi non crsquoegrave bisogno drsquoaltro

I font PostScript ottenuti dal mercato o dalla rete (non ottenuti trasformandoi font bitmapped che ne sono giagrave dotati) sono disponibili con il file metrico cheha formato diverso dal tfm ed ha estensione afm (Adobe Font Metrics)

I font TrueType non dispongono di un file metrico separato percheacute leinformazioni metriche sono giagrave contenute nel file ttf

In questa situazione bisogna leggere attentamente le guide che accompa-gnano il sistema TEX della propria distribuzione e seguirle scrupolosamente iprogrammi per le debite conversioni di formato dei file metrici fanno giagrave partedella distribuzione ma le operazioni da fare devono esser svolte dallrsquoutenteamministratore del PC con grande cura

La raccomandazione di leggere la documentazione in questo caso egrave piugrave cheuna raccomandazione egrave un obbligo

Perograve questa difficoltagrave egrave compensata dal fatto che il sistema TEX contrariamen-te a quel che si mormora da parte di coloro che non leggono la documentazionenon egrave affatto vincolato ai suoi font METAFONT ma puograve lavorare con qualunquefont esista al mondo

Infine va ricordato che lrsquoultimo nato della famiglia dei programmi di compo-sizione del sistema TEX X ETEX consente di lavorare con i font con la codificaUNICODE e apparentemente sa trovare da solo le informazioni metriche dicui necessita sia nei file tfm o afm sia allrsquointerno dei file ttf e quindi lrsquousodei font e degli alfabeti piugrave disparati (compresi quelli ad ideogrammi) diventadecisamente semplificata specialmente se si dispone di uno shell editor che possa

118 LA GESTIONE DEI FONT 225

scrivere il testo sorgente facendo uso direttamente della codifica UNICODEAnche ConTeXt-mk-iv oggi contiene LuaTeX ed egrave capace di lavorare con i fontOpenType in codifica UNICODE

Va fatta una precisazione il sistema TEX viene distribuito dalla rete omediante dischi di installazione ma generalmente lrsquoutente installa solo la versionebase arricchita dai pacchetti di estensione di cui necessita via via che usa questosistema di composizione

Lrsquoutente non necessariamente installa tutto percheacute il sistema e lrsquointeracollezione di estensioni egrave enorme e quindi piuttosto ingombrante sul disco

Questo egrave particolarmente vero per i pacchetti di estensione che arricchisconole potenzialitagrave compositive del sistema mediante una grande collezione di font idiversi formati perograve fanno sigrave che siano necessarie delle conversioni percheacute nontutti i programmi usano lo stesso formato

Inoltre come si egrave avuto occasione di commentare piugrave volte le codifiche deifont possono essere diverse spesso lo sono ma TEX conosce solo le sue codifichequindi talvolta egrave necessario anche provvedere al cambiamento di codifica Perquesto scopo si usano sia i lsquofont virtualirsquo sia i lsquovettori di codificarsquo Il discorsocome si vede puograve diventare assai complicato e non si procede oltre

Tuttavia per rendersi conto percheacute certe cose non sono fatte come unosi aspetterebbe bisogna ricordare che i file DVI possono essere mostrati suschermo da programmi come YAP o xdvi e questi quando devono rappresentaregraficamente i singoli segni dei font ricorrono di default alle loro immaginibitmapped

Altri programmi non facenti parte in senso stretto del sistema TEX come peresempio dvips (che trasforma i file dal formato DVI al formato PostScript) oppuredvipdfm (che trasforma i file dal formato DVI al formato PDF) preferiscono usarei font di tipo outline e ricorrono a quelli bitmapped solo in caso di necessitagraveHanno perciograve bisogno di sapere quali font outline siano disponibili e dove sitrovino percheacute questa informazione non egrave contenuta nel file DVI Il programmapdfLATEX invece ha bisogno di conoscere subito quali font siano disponibili inche formato e dove si trovino questi font percheacute nel file sorgente non crsquoegrave nessunaccenno a questa informazione E attenzione non dimentichiamo che quantoegrave disponibile su una macchina non egrave necessariamente disponibile su unrsquoaltrapercheacute il suo amministratore non ha caricato gli stessi pacchetti eo non hacomperato gli stessi prodotti commerciali

Ecco allora che sono necessari tre file per svolgere le funzioni appena descritteessi si chiamano psfontsmap dvipdfmmap e pdftexmap sono collocati in trecartelle diverse dellrsquoalbero di sistema o dellrsquoalbero personale delle cartelle diTEX essi contengono le opportune informazioni rispettivamente per dvips o perdvipdfm o per pdftex

Ogni volta che si installa una nuova collezione di font outline o anche dei filesorgente per la creazione di ulteriori font METAFONT di tipo bitmapped bisognaaggiornare il contenuto di psfontsmap e compagni Questa egrave una operazionedelicata e va eseguita esattamente come dicono le istruzioni che accompagnanola distribuzione del sistema TEX percheacute ovviamente tutto ciograve dipende dallaparticolare macchina e dal suo sistema operativo anche se dal lato TEX sicerca di fare in modo che le operazioni da eseguire siano il piugrave possibile similipossibilmente uguali

Ma durante la lavorazione di questo testo le persone che hanno contribuitosi sono rese conto che la loro configurazione bencheacute fortemente personalizzata

226 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

e piuttosto ricca di estensioni tuttavia rendeva difficile il lavoro di gruppo equalche volta lo rendeva impossibile Per questo inizialmente si egrave scelto di usarei font Computer Modern con codifica OT1 anche se non egrave la scelta ottimaleper le lingue con gli accenti come lrsquoitaliano ma egrave sicuramente presente su ogniinstallazione In realtagrave da diversi numeri di versione di questa Guida si usanoi font Latin Modern con la codifica T1 ma il master file dice esattamente checosa fare se questi font non fossero installati Finora nessun collaboratore si egravelamentato di questi font ed egrave un bene percheacute significa che persino le distribuzionibase fortemente personalizzate sono in grado di essere uniformi con questifont vettoriali forse persino un poco piugrave belli dei font Computer Modern macertamente piugrave adatti alla lingua italiana che fa uso relativamente spesso didiversi accenti

1181 Altri font giagrave disponibiliPrima di descrivere la delicata operazione dellrsquoinstallazione di nuovi font valela pena di descrivere i pacchetti che fanno riferimento a font giagrave disponibili inogni distribuzione del sistema TEX Talvolta egrave necessario scaricare da ctan edinstallare pacchetti giagrave predisposti con tutto il necessario ma spesso i pacchettifanno parte della dotazione ordinaria del sistema

Fra questi pacchetti si sono giagrave segnalati quelli corrispondenti ai txfonts eai pxfonts essi permettono di usare rispettivamente i font Times estesi e i fontPalatino estesi Lrsquoaggettivo lsquoestesorsquo si riferisce al fatto che le collezioni dei segniusabili sono piugrave ampie (estese) rispetto allrsquoinsieme di segni forniti ordinariamentedai font delle collezioni CM EC e TS arricchite dai segni delle collezioni fornitedallrsquoAmerican Mathematical Society

Il documento Using common PostScript fonts with LATEX reperibile nel filedoclatexpsnfsspsnfss2epdf descrive tutti i font PostScript con irelativi pacchetti e le rispettive opzioni giagrave predisposti per usare i font Palatino(font diversi e con prestazioni inferiori a quelle del pacchetto pxfonts) i Times(anche questi con prestazioni inferiori a quelle fornite dal pacchetto txfonts)Helvetica Avant Garde Courier Zapf Chancery Bookman New Century School-book Charter Il documento descrive anche i limiti di ogni pacchetto e segnalai pacchetti obsoleti da non usare se non per comporre vecchi documenti chericorrevano ad alcuni di questi font

Il documento segnala anche alcuni pacchetti per esempio Pifonts da caricareper disporre dei simboli e dei lsquodingbatsrsquo forniti dalle polizze che offrono soloquesto genere di segni Diventa cosigrave abbastanza semplice disporre di tutti queglilsquoideogrammirsquo usati nel mondo occidentale per segnalare luoghi specifici (telefonoluoghi di culto aeroporti ) delle manine che indicano e attraggono lrsquoattenzionesu un oggetto o una parola motivi di decorazione cifre da 0 a 10 variamentestilizzate molti tipi di frecce eccetera La figura 118 presenta una di questepolizze di segni speciali

Va segnalato che con alcuni di questi font e per altri non indicati il pacchettomathdesign consente di associare i font matematici e le collezioni di simboli inmodo che molte delle limitazioni e degli inconvenienti segnalati dal documento inquestione possono venire eliminati Questo pacchetto consente di estendere i fontUtopia Charter e Garamond esso consente quindi di personalizzare fortementelrsquoaspetto grafico dei propri lavori di composizione senza perograve rinunciare a nessunadelle prerogative di LATEX Chi scrive per altro ha raramente usato questi altri

118 LA GESTIONE DEI FONT 2271

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo0000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

00

rsquo02016 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

10

rsquo040 32

33

34

35

$36

37

amp38

39

(40

)41

42

+43

44

-45

46

4720

rsquo060 048

149

250

351

452

553

654

755

856

957

58

59

lt60

=61

gt62

6330

rsquo100 64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

rsquo120 P80

Q81

R82

S83

T84

U85

V86

W87

X88

Y89

Z90

[91

92

]93

^94

_9550

rsquo140 `96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

123

|124

125

~126 127

70

rsquo200128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143

80

rsquo220144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159

90

rsquo240160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

A0

rsquo260 176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

B0

rsquo300 192

193

194

iexcl195

cent196

pound197

curren198

yen199

brvbar200

sect201

uml202

copy203

ordf204

laquo205

not206

shy207

C0

rsquo320 reg208

macr209

deg210

plusmn211

sup2212

sup3213

acute214

micro215

para216

middot217

cedil218

sup1219

ordm220

raquo221

frac14222

frac12223

D0

rsquo340 frac34224

iquest225

Agrave226

Aacute227

Acirc228

Atilde229

Auml230

Aring231

AElig232

Ccedil233

Egrave234

Eacute235

Ecirc236

Euml237

Igrave238

Iacute239

E0

rsquo360240

Icirc241

Iuml242

ETH243

Ntilde244

Ograve245

Oacute246

Ocirc247

Otilde248

Ouml249

times250

Oslash251

Ugrave252

Uacute253

Ucirc254 255

F0

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Parametri

inclinazione 000000 x-height 399998 ptspazio interparola 277999 pt larghezza del quadrato 1000000 ptallungamento interparola 300000 pt spazio extra 000000 ptaccorciamento interparola 100000 pt corpo nominale 1000000 pt

Figura 118 I dingbats creati da Hermann Zapf

font non percheacute egli li consideri inadatti ma percheacute si egrave decisamente trovatomeglio con i font Latin Modern anche se i suoi scritti sembrano lsquomonotonirsquo permancanza di varietagrave di font

1182 Esempio di installazione di una collezione di font11821 Installare i font greci

Qui si cercheragrave di chiarire il procedimento di installazione con un esempio praticoci accingiamo a configurare il sistema per poter scrivere in greco Abbiamo bisognodi babel per poter gestire le lingue ma in particolare abbiamo bisogno che siaattrezzato per il greco oppure abbiamo bisogno di completarlo con le cose cheriguardano questa lingua Abbiamo bisogno dei file sorgente dei font METAFONTanche se preferiremmo usare i font outline Abbiamo perciograve bisogno dei fileoutline dei font greci della loro mappa e visto che ci siamo anche dei file metrici

Verifichiamo dapprima se il pacchetto babel installato nel nostro sistemasia giagrave attrezzato per il greco potremmo semplicemente lanciare LATEX con unsemplice file sorgente del tipo di questo

Testo di prova per il grecodocumentclassminimalusepackage[greek]babelbegindocumentQarsquoire

228 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

enddocument

Se LATEX esegue la compilazione e i font METAFONT sono giagrave disponibili sulloschermo del previewer appare la parola Χαίρε Ma se la lingua greca non disponedi tutto ciograve di cui necessita allora possono essere successe diverse cose

1 Subito allrsquoinizio LATEX si ferma dicendo che non dispone del file greekldfquesto indica che babel non egrave attrezzato per niente ai fini del greco Bisognainstallare una versione piugrave recente e ben configurata

2 LATEX si lamenta che la codifica LGR gli egrave sconosciuta babel egrave malconfigurato per il greco nel senso che ne conosce le specificitagrave ma ne ignorai font bisogna caricare i font greci con i vari file fd di descrizione delleloro famiglie

3 LATEX completa il suo lavoro senza messaggi drsquoerrore ma il previewer nonegrave in grado di rappresentare i font greci e forse scrive sullo schermo lsquoQaiacuterersquoo qualcosa del genere Vuol dire che LATEX ha trovato i file tfm dei fontgreci ma il previewer non ha trovato neacute i file dei font rasterizzati neacute hatrovato i file sorgente con estensione mf per crearli bisogna evidentementecaricare questi file sorgente

4 Invece di usare LATEX si egrave usato pdfLATEX tutto egrave andato bene ma ilpreviewer del file PDF mostra la parola Χαίρε con contorni mal definitioppure essi appaiono definiti se li si guarda senza ingrandimento maappaiono tutti scalettati se li si guarda attraverso la lente di ingrandimentodel previewer Questo significa che mancano i font outline oppure che ilfile psfontsmap e i suoi compagni non sono configurati correttamente

Come si vede le possibilitagrave che inizialmente ci sia qualcosa che non vadasono tante non egrave un caso frequente ma puograve succedere Allora bisogna cercarei file mancanti eo configurare correttamente il pacchetti esistenti o i file diconfigurazione Dopo ogni pacchetto installato non ci si dimentichi mai diaggiornare il database dei nomi dei file lanciando texhash sui sistemi di tipoUNIX o lanciando lrsquoapposito wizard della distribuzione MiKTEX sulle macchineWindows Questa operazione egrave essenziale se il database dei nomi dei file nonegrave aggiornato e completo nessun programma del sistema TEX puograve funzionarecorrettamente

1 Il pacchetto babel fa normalmente parte della distribuzione del sistema TEXquindi se non egrave in grado di gestire il greco vuol dire che egrave molto vecchio ose ne installa una versione nuova oppure egrave meglio controllare che tutto ilsistema TEX che si sta usando non sia troppo vecchio il greco dovrebbeessere gestibile correttamente dagli ultimi anni rsquo90 diciamo 1998 quindiil lettore valuti se la sua distribuzione egrave piugrave vecchia e nel caso reinstallicompletamente il sistema TEX Non sembra possibile che una versionerecente non sia in grado di gestire il greco tuttavia non si puograve escludere chescaricando il pacchetto qualche file si sia corrotto allora egrave meglio ricaricaretutto il pacchetto cercando su ctan lrsquoultima versione lrsquoindirizzo in cuicercare egrave wwwctanorgtex-archivemacroslatexrequiredbabelda questo sito si puograve scaricare lrsquointero pacchetto compresso in formatozip oppure si possono scaricare le singole componenti del pacchetto se si

118 LA GESTIONE DEI FONT 229

sceglie di scaricare lrsquointero pacchetto basta decomprimerlo e poi seguirele istruzioni del file README per sapere in quali cartelle mettere i vari filese si sceglie di scaricare solo le componenti per il greco basta scaricaregreekdtx greekfdd greekins e se si vuole athnumdtx LanciandoLATEX su greekins si estraggono tutti i file necessari mentre lanciandoLATEX sui file con estensione dtx e fdd se ne ottiene la documentazioneSi devono poi spostare i file cosigrave ottenuti nelle cartelle di babel per avere ifile mancanti oppure per sostituire i file corrotti

2 Nel sito precedentemente indicato si trova anche il file GreekFontstxtche contiene istruzioni varie per scaricare i font greci in particolare i filesorgente per il programma METAFONT e giagrave pronti i file metrici tfmSe si seguono le indicazioni contenute in quel file si puograve scaricare tutta lacollezione dei font greci rasterizzati o lsquorasterizzabilirsquo in realtagrave non vengonoscaricati i file pk ma scaricando i file sorgente il programma METAFONT

egrave in grado di creare i file rasterizzati lsquoon demandrsquo cioegrave quando occorrono

3 Se si vogliono usare i font outline bisogna scaricare anche i file pfb relativiai font greci Beccari e Syropoulos inizialmente avevano predisposto tuttii file pfb corrispondenti a tutti i corpi dei font rasterizzati Nel 2005Syropoulos ha deciso che lrsquoinsieme dei font pfb era troppo ingombranteed ha pensato che sarebbero bastati i font di corpo 10 pt tanto essendofont outline questi possono essere ingranditi o rimpiccioliti a piacere Egliquindi ha chiesto di eliminare dal sito ctan tutti i font di corpo diversoda quello di 10 pt e ha dato istruzioni di usare nel preambolo il pacchettotype1ec e di specificare nella chiamata del pacchetto

usepackage[10pt]type1ec

In questo modo i vari font greci da 10 pt vengono scalati secondo necessitagraveTrattandosi di un font da usare essenzialmente solo per le parti testua-li di un documento e non per le parti matematiche questa decisione egraveforse un porsquo discutibile ma certamente accettabile Sicuramente consentedi scaricare dalla rete molte decine di megabyte in meno Il sito ctantex-archivefontsgreekcbfonts consente di scaricare tutto quantoconcerne i font greci in particolare la cartella ctantex-archivefontsgreekcbfontstype1 contiene tutti i file dei font pfb mentre la car-tella ctantex-archivefontsgreekcbfontsfontsmap contiene ilfile cbgreek-fullmap necessario per configurare i file psfontsmap ecompagniNei sistemi TEX aggiornati al 2007 conformi quindi alla nuova strutturadelle cartelle a cui la distribuzione TEX Live si adegua cosigrave come gli altrisistemi piugrave o meno derivati da TEX Live nel proprio albero personale egraveconveniente creare una cartella fontsmapgreek e qui copiarvi il filecbgreek-fullmap cosigrave nelle operazioni successive aggiornato il databasedei nomi dei file il file viene trovato senza difficoltagraveAnalogamente i file metrici e i file dei font verranno collocati nelle cartellefontstfmlocalgreek e fontstype1localgreek se que-ste cartelle non esistessero ancora basta crearle con i comandi in linea

230 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

disponibili con ogni sistema operativo oppure ricorrendo alle opportuneinterfacce grafiche per la gestione delle cartelleVa notato che se il PC su cui si lavora egrave usato da un solo utente quantodetto sopra va bene se invece il PC viene usato da diversi utenti e tutti oalmeno alcuni di loro fanno uso del sistema TEX allora egrave bene scaricarequei file pfb tfm e map nellrsquoalbero locale mostrato dalla variabile disistema TEXMFLOCAL basta eseguire il comando

kpsewhich -var-value=TEXMFLOCAL

Sul portatile sul quale chi scrive sta lavorando quel comando mostra ilpercorso

usrlocaltexlive2010texmf-local

che di fatto significa

usrlocaltexlivetexmf-local

In altre parole la radice dellrsquoalbero locale egrave dentro la cartella texlive maallo stesso livello della cartelle contrassegnata con lrsquoanno questo significache se lrsquoanno successivo si aggiorna il sistema viene creato un altro alberocon un anno diverso per cui lrsquoalbero locale non viene toccato Quandoviene inserito qualcosa dentro lrsquoalbero locale bisogna aggiornare il databasedei nomi dei file anche sui sistemi Mac

4 Scaricati i file suddetti nelle opportune cartelle e aggiornato il database deinomi dei file bisogna procedere a configurare le mappe dei font outlineCi sono vari metodi ma con un sistema TEX recente egrave opportuno creare intexmf-localweb2c il file updmap-localcfg nel quale si inseriscela riga

Map cbgreek-fullmap

oltre ad eventuali altre righe di altre mappe locali di font che non sianodistribuiti con il sistema TEX Secondo chi scrive egrave anche opportuno inserirela riga

dvipsDownloadBase35 true

percheacute il sistema di default viene distribuito con questa variabile impostataal valore false questa impostazione egrave utile se si desiderano compilaredei documenti in formato PDFA (vedi il capitolo 21) questi file infattidevono contenere tutti i font usati nel documento compresi quelli chesolitamente non vengono inclusi percheacute fanno giagrave parte della dotazionestandard di ogni stampante PostScript e di ogni driver PostScript perstampanti qualsiasi questa esigenza egrave spiegata meglio nel capitolo 21Come si egrave giagrave detto ma egrave opportuno ripeterlo avendo creato un file inuno degli alberi gestiti dal sistema egrave necessario generare o rigenerare il

118 LA GESTIONE DEI FONT 231

database dei nomi dei file con il comando mktexlsr specificando eventual-mente che si desidera solo rigenerare il database solo per lrsquoalbero radicatoin texmf-local ovviamente questa operazione on egrave necessaria se il fileesisteva giagrave e lo si egrave solamente modificato per aggiungere altre righe dicomandi o di specificazioni In alcuni sistemi per rigenerare il database deinomi dei file bisogna acquisire i privilegi di amministratoreEseguite queste operazioni bisogna dare a mano come administator o rooti seguenti due comandi

tlmgr generate updmapupdmap-sys

Il primo comando genera un file updmapcfg con le informazioni di sistemacompletate con le informazioni contenute nel file locale updmap-localcfgil secondo genera i file pdffontsmap e compagni sulla base del file diconfigurazione generato nel passo precedenteSe si usa MiKTEX29 bisogna procedere come viene spiegato nel manualedi MiKTEX stesso bisogna cioegrave editare il file updmapcfg facendo uso delcomando

initexmf --edit-config-file updmap

che crea un nuovo file updmapcfg in una opportuna cartella dellrsquoutente inquesto nuovo file si possono aggiungere le righe corrispondenti alle mappedei font locali la specificazione true per la variabile dvipsDownloadBase35Dal manuale di MiKTEX non si evince una procedura diversa da questaper cui quando si esegue

initexmf --makemaps

si dovrebbe ottenere una mappa aggiornata per pdftex e compagni Ovvia-mente la cosa va a buon fine se il database dei nomi dei file egrave aggiornatoanche per quel che riguarda le mappe specifiche dei singoli font da aggiun-gere Con MiKTEX sembrerebbe che non esista la possibilitagrave di aggiungerenuovi font e le relative mappe a livello di ldquoAll Usersrdquo in modo che tuttigli utenti li possano usare senza bisogno di eseguire un loro installazionepersonale degli stessi fontDurante lrsquoesecuzione del programma updmap-sys sullo schermo scorronodiversi messaggi che conviene poi eventualmente andare a rileggere selrsquooperazione non fosse andata a buon fine Supponendo invece che tutto sisia svolto correttamente in un opportuna cartella compaiono ora tre nuovifile

fontsmapdvipdfmupdmapdvipdfmmap

fontsmapdvipsupdmappsfontsmap

fontsmappdftexupdmappdftexmap

Aprendo uno qualunque di questi file con un editor testuale vi si devonoritrovare tra gli altri ma in ordine alfabetico tutti i nomi dei font greci informato pfb insieme aalle altre informazioni che il programma ha trovatonel file cbgreek-fullmap

232 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

a b c d e f g h i j k l m n o p q r s t u w x y zα β ς δ ε φ γ η ι θ κ λ μ ν ο π χ ρ σ4 τ υ ω ξ ψ ζ

gt lt rsquo lsquo ˜ rdquo rdquo | (( ))᾿ ῾ ΄ ` ῀ uml4 rsquo ͺ laquo raquo

Tabella 1112 Corrispondenze fra i tasti della tastiera latina e i segni dellrsquoalfabetogreco

5 Eseguite tutte queste operazioni ogni programma eseguibile che produca lacompilazione o la trasformazione del file sorgente tex deve poter trovarei font greci e deve poter lavorare con i file di descrizione dei font greci ebabel non puograve lamentarsi di non conoscere la codifica LGR Insomma tuttodeve filare liscio se ciograve non succedesse bisogna ripetere scrupolosamente ipassi indicati eliminando gli errori che sono stati commessi

11822 Scrivere in greco

Vale la pena a questo punto aggiungere poche righe per ricordare come si fa acomporre in greco usando la tastiera latina Innanzi tutto il file sorgente deveinvocare babel indicando (solo o) anche la lingua greca se perograve si vuole scriverein greco moderno con lrsquoortografia monotonica non occorre altro se si vuolescrivere in greco classico o in greco moderno con lrsquoortografia politonica bisognaaggiungere una dichiarazione di attributo per la lingua greca cosigrave

usepackage[greekitalian]babellanguageattributegreekpolutonikousepackage[10pt]type1ec

Volendo si potrebbe caricare anche il pacchetto teubner

usepackage[greekitalian]babelusepackage[10pt]teubner

ma di solito se non occorrono speciali strutture filologiche lrsquouso del pacchettoteubner egrave eccessivo

Si noti ancora che specificare il pacchetto type1ec con lrsquoopzione 10pt oppurequella stessa opzione al pacchetto teubner serve solo e solamente se non si egravecaricata lrsquointera collezione di font greci ma ci si egrave accontentati della installazionedi default a 10 pt per le versioni PostScript

Le corrispondenze fra i tasti della tastiera lsquolatinarsquo con le lettere greche sonoriportate nella tabella 1112 Gli accenti e gli spiriti vanno preposti in unasequenza qualunque alle vocali (o al ρ) senza nessun uso di backslash lo iotasottoscritta va inserita invece posponendo il segno | alla vocale che la deveaccogliere Il segno seguito da uno spazio si traduce in un apostrofo mentre seprecede un iota o un upsilon vi colloca la dieresi in questa funzione la dieresipuograve essere anche preceduta o seguita dal segno di accento grave o acuto ocirconflesso Lrsquounica difficoltagrave che si incontra a scrivere con la tastiera italiana egraveche da questa manca una combinazioni di tasti per generare lrsquoaccento grave elrsquoaccento tilde che funziona da circonflesso per il greco la tastiera italiana delMac consente di ottenere questi segni con lrsquoaiuto del tasto lsquocomandorsquo ma conWindows egrave necessario ricorrere al tasto Alt e alla digitazione dei numeri 96 e126 rispettivamente sul tastierino numerico su un laptop Windows egrave una vera

118 LA GESTIONE DEI FONT 233

beginquotebeginotherlanguagegreekitshape

Torsquoutou qrsquoarin gtaprsquoeliprsquoon se gten Krrsquohth| ltrsquoina tlsquoa lersquoiponta

gtepidiortrsquowsh| kalsquoi katastrsquohsh|s katlsquoa prsquoolin presbitrsquoerous ltws

gtegrsquow soi dietaxrsquoamen egtrsquoi trsquois gtestin gtanrsquoegklhtos mi~as

gunaiklsquoos gtanrsquohr trsquoekna gtrsquoeqwn pistrsquoa mlsquoh gten kathgorrsquoia|

gtaswtrsquoias gtlsquoh gtanuprsquootakta de~i glsquoar tlsquoon gteprsquoiskopon

gtanrsquoegklhton egt~inai ltws Jeo~u ogtikonrsquoomon mlsquoh agtujrsquoadh

mlsquoh gtorgrsquoilon mlsquoh prsquoaroinon mlsquoh plrsquohkthn mlsquoh agtisqrokerd~h

gtalllsquoa filrsquooxenon filrsquoagajon srsquowfrona drsquoikaion ltrsquoosion

gtenkrat~h gtanteqrsquoomenon to~u katlsquoa tlsquohn didaqlsquohn pisto~u lrsquoogou

ltrsquoina dunatlsquoos lt~h| kalsquoi parakale~in gten t~h| didaskalrsquoia| t~h|

ltugiainorsquoush| kalsquoi tolsquous gtantilrsquoegontas gtelrsquoegkein

nullhfillupshapeT 15-9

endotherlanguage

endquote

Τούτου χάριν ἀπέλιπόν σε ἐν Κρήτῃ ἵνα τὰ λείποντα ἐπιδιορτώσῃ καὶκαταστήσῃς κατὰ πόλιν πρεσβιτέρους ὡς ἐγώ σοι διεταξάμεν εἴ τίςἐστιν ἀνέγκλητος μιᾶς γυναικὸς ἀνήρ τέκνα ἔχων πιστά μὴ ἐν κατη-γορίᾳ ἀσωτίας ἢ ἀνυπότακτα δεῖ γὰρ τὸν ἐπίσκοπον ἀνέγκλητον εἶναιὡς Θεοῦ οἰκονόμον μὴ αὐθάδη μὴ ὀργίλον μὴ πάροινον μὴ πλήκτηνμὴ αἰσχροκερδῆ ἀλλὰ φιλόξενον φιλάγαθον σώφρονα δίκαιον ὅσιονἐνκρατῆ ἀντεχόμενον τοῦ κατὰ τὴν διδαχὴν πιστοῦ λόγου ἵνα δυνατὸς ᾗκαὶ παρακαλεῖν ἐν τῇ διδασκαλίᾳ τῇ ὑγιαινούσῃ καὶ τοὺς ἀντιλέγονταςἐλέγκειν Τ 15-9

Figura 119 Esempio di composizione in greco

contorsione ma se lo shell editor lo consente questi segni possono essere ottenuticon un semplice click del mouse in una apposita tabellina proposta dallrsquoeditor

Scrivere in greco diventa ora abbastanza facile anche se sullo schermo apparela versione traslitterata in lettere latine Si prenda ad esempio il piccolo fileseguente

documentclassbookusepackage[greekitalian]babelusepackage[10pt]teubnerbegindocumentbeginquotebeginotherlanguagegreekitshapeTorsquoutou qrsquoarin gtaprsquoeliprsquoon se gten Krrsquohth| ltrsquoina tlsquoa lersquoipontagtepidiortrsquowsh| kalsquoi katastrsquohsh|s katlsquoa prsquoolin presbitrsquoerous ltwsgtegrsquow soi dietaxrsquoamen egtrsquoi trsquois gtestin gtanrsquoegklhtos mi~asgunaiklsquoos gtanrsquohr trsquoekna gtrsquoeqwn pistrsquoa mlsquoh gten kathgorrsquoia|gtaswtrsquoias gtlsquoh gtanuprsquootakta de~i glsquoar tlsquoon gteprsquoiskopongtanrsquoegklhton egt~inai ltws Jeo~u ogtikonrsquoomon mlsquoh agtujrsquoadhmlsquoh gtorgrsquoilon mlsquoh prsquoaroinon mlsquoh plrsquohkthn mlsquoh agtisqrokerd~hgtalllsquoa filrsquooxenon filrsquoagajon srsquowfrona drsquoikaion ltrsquoosiongtenkrat~h gtanteqrsquoomenon to~u katlsquoa tlsquohn didaqlsquohn pisto~u lrsquoogoultrsquoina dunatlsquoos lt~h| kalsquoi parakale~in gten t~h| didaskalrsquoia| t~h|ltugiainorsquoush| kalsquoi tolsquous gtantilrsquoegontas gtelrsquoegkeinnullhfillupshapeT 15-9endotherlanguageendquoteenddocument

Dopo averlo elaborato con pdfLATEX si ottiene il risultato mostrato nellafigura 119 (dove fra lrsquoaltro il testo egrave composto con il font Lipsiano) Si noti ancheche il testo sorgente non usa mai la traslitterazione lsquocrsquo per il sigma terminalema la lettera lsquosrsquo questo egrave voluto per agevolare chi scrive in greco ma questa nonegrave la sua lingua madre tanto che ha bisogno di usare la tastiera latina Scrivendoabitualmente in una lingua occidentale sarebbe troppo facile sbagliarsi nelloscrivere il sigma terminale per questo il font egrave congegnato in modo da rendersiconto da solo di quanto il sigma cade in posizione terminale e automaticamente

234 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

esegue una legatura di sostituzione introducendo un sigma terminale bencheacutenel file sorgente comparisse una lsquosrsquo Questo meccanismo egrave talmente robusto chediventa difficile scrivere un σ iniziale o mediale isolato per questo scopo bisognaintrodurre nel file sorgente sv dove la lsquovrsquo serve per far credere al meccanismo disostituzione che la lsquosrsquo introdotta non sia terminale per altro come si vede dallatabella 1112 la lettera latina lsquovrsquo non corrisponde a nessun segno greco

Se si deve scrivere a lungo in greco e si dispone di una tastiera bilingueo meglio ancora di mezzi comodi per scrivere direttamente in greco nel filesorgente si puograve usare la codifica utf8 nella variante utf8x in questa maniera

documentclassbookusepackage[T1]fontencusepackagelmodernusepackageucsusepackage[utf8x]inputencusepackage[greekitalian]babellanguageattributegreekpolutoniko

begindocument

beginotherlanguagegreek

Τούτου χάριν ἀπέλιπόν σε ἐν Κρήτῃ ἵνα τὰ λείποντα

ἐπιδιορτώσῃ καὶ καταστήσῃς κατὰ πόλιν πρεσβιτέρους ὡς

ἐγώ σοι διεταξάμεν εἴ τίς ἐστιν ἀνέγκλητος μιᾶς

γυναικὸς ἀνήρ τέκνα ἔχων πιστά μὴ ἐν κατηγορίᾳ

ἀσωτίας ἢ ἀνυπότακτα δεῖ γὰρ τὸν ἐπίσκοπον

ἀνέγκλητον εἶναι ὡς Θεοῦ οἰκονόμον μὴ αὐθάδη

μὴ ὀργίλον μὴ πάροινον μὴ πλήκτην μὴ αἰσχροκερδῆ

ἀλλὰ φιλόξενον φιλάγαθον σώφρονα δίκαιον ὅσιον

ἐνκρατῆ ἀντεχόμενον τοῦ κατὰ τὴν διδαχὴν πιστοῦ λόγου

ἵνα δυνατὸς ᾗ καὶ παρακαλεῖν ἐν τῇ διδασκαλίᾳ τῇ

ὑγιαινούσῃ καὶ τοὺς ἀντιλέγοντας ἐλέγκειν

nullhfillupshapeT 15-9endotherlanguage

Altro testo in italianoenddocument

11823 Altri font outline

In questo testo sono stati usati tra gli altri i font della famiglia Text CompanionFont i suoi file pfb non sono caricati di default ma lrsquoinstallazione del sistemacarica solamente i file sorgente per METAFONT

Nel solito archivio ctan nella cartella ctantex-archivefontsps-type1cm-super si trovano i font della collezione CM-super che contengono sia la colle-zione Text Companion Font in formato outline sia i font testuali della collezioneEC sia anche i font cirillici Scaricare lrsquointera collezione sarebbe pesantissimocome lo sarebbe stato per i font greci comunque egrave una via percorribile anchepercheacute alcune distribuzioni Linux consentono di scaricare e installare il tutto conapt-get senza bisogno di preoccuparsi drsquoaltro

118 LA GESTIONE DEI FONT 235

Nella cartella ctantex-archivefontslm si trovano i font Latin Modern(LM) che pur non essendo definitivamente fissati offrono una migliore collezionedi segni outline apparentemente migliori dei CM-super secondo gli intenditoriCertamente se non si ha bisogno di usare il cirillico questa collezione egrave moltopiugrave parca per quel che riguarda lo spazio sul disco

I font della collezione Latin Modern comprendono anche i file di ricodificaconformi alle norme Adobe per i font PostScript e permettono di servirsi dicodifiche diverse dalle solite Tuttavia nel momento di caricare il file di mappasi consiglia di inserire nella propria versione personale del file updmapcfg ilnome del file lmmap (eventualmente decommentandolo visto che di solito vi egravegiagrave inserito) Si consiglia di non inserire il nome specifico corrispondente ad unaparticolare codifica percheacute questi ultimi file specificano solo le transcodifichedei font testuali mentre non danno nessuna informazione sui font matematicial contrario il file di mappa lmmap contiene tutte le informazioni relative allacollezione Latin Modern con riferimento a tutte le codifiche esistenti e senzadimenticare i font matematici

Tra le codifiche con cui possono essere usati i font Latin Modern crsquoegrave anche lacodifica LY1 egrave una codifica interessante percheacute consente di evitare il caricamentodei font Text Companion a meno che non si debbano usare simboli moltoparticolari per esempio ora egrave necessario usare il simbolo dellrsquoeuro il comandotexteuro richiederebbe lrsquouso di font Text Companion se per il testo si usa lacodifica T1 mentre se si usa la codifica LY1 non ce nrsquoegrave bisogno lo stesso valeper altri pochi segni egrave meglio verificare sulla tabella 1113 per vedere che cosa egravedisponibile e che cosa manca

Nella cartella ctantex-archivesystemsvtexcommon si trovano diversifile compressi in formato zip che contengono diverse collezioni di font tra lrsquoaltrosono presenti anche i font greci lsquoabbastanza completirsquo cioegrave non solo quelli dicorpo 10 pt tuttavia la collezione manca di molte famiglie serie e forme percheacutecontiene poco meno di 300 file mentre la collezione completa ne contiene 944

Ma sempre nella stessa cartella si trova il file compresso vtex-fonts2zipche contiene davvero i font EC e TS la cui installazione dovrebbe risultare moltosemplice anche se nel file compresso la documentazione (per altro interessante)fa riferimento ancora ai font DC (i font EC in versione sperimentale) i file pfbe i rispettivi file tfm sono nelle apposite sottocartelle del file compresso Lagenerazione delle mappe non presenta difficoltagrave percheacute nel file updmapcfg lerighe relative ai font EC e ai font TS esistono giagrave salvo che eventualmente sonocommentate quindi non appaiono attive

11824 Installare un set di font da zero

Supponiamo di voler usare i font per i lettori ottici di caratteri i font OCR Sene possono scaricare dagli archivi ctan i file sorgente per METAFONT questisono i font da ocrb5mf a ocrb10mf piugrave i file di servizio non egrave difficile nelproprio albero di cartelle creare una nuova cartella fontssourceocr edepositarvi i sorgenti mf naturalmente avendo modificato le cartelle eo i lorocontenuti bisogna aggiornare il database dei nomi dei file

Se ci si accontenta dei file rasterizzati questo egrave tutto quel che serve Se sivogliono usare le versioni outline bisogna crearsele

236 CAPITOLO 11 LATEX I CARATTERI DA STAMPA1

rsquo00 rsquo01 rsquo02 rsquo03 rsquo04 rsquo05 rsquo06 rsquo07 rsquo10 rsquo11 rsquo12 rsquo13 rsquo14 rsquo15 rsquo16 rsquo17

rsquo0000euro

1 2 3frasl

7fl

8 9

10ff

11fi

12 13ffi

14ffl

1500

rsquo020 ı16

17

`18

acute19

ˇ20

˘21

macr22

˚23

cedil24

szlig25

aelig26

œ27

oslash28

AElig29

Œ30

Oslash3110

rsquo040 32

33

34

35

$36

37

amp38

rsquo39

(40

)41

42

+43

44

-45

46

4720

rsquo060 048

149

250

351

452

553

654

755

856

957

58

59

lt60

=61

gt62

6330

rsquo100 64

A65

B66

C67

D68

E69

F70

G71

H72

I73

J74

K75

L76

M77

N78

O7940

rsquo120 P80

Q81

R82

S83

T84

U85

V86

W87

X88

Y89

Z90

[91

92

]93

ˆ94

_9550

rsquo140 lsquo96

a97

b98

c99

d100

e101

f102

g103

h104

i105

j106

k107

l108

m109

n110

o111

60

rsquo160 p112

q113

r114

s115

t116

u117

v118

w119

x120

y121

z122

123

|124

125

˜126

uml127

70

rsquo200 Ł128

129

sbquo130

ƒ131

bdquo132

hellip133

dagger134

Dagger135

ˆ136

permil137

Š138

lsaquo139

Œ140

Ž141

^142

minus143

80

rsquo220 ł144

lsquo145

rsquo146

ldquo147

rdquo148

bull149

ndash150

mdash151

˜152

trade153

š154

rsaquo155

œ156

ž157

~158

Ÿ159

90

rsquo240 160

iexcl161

cent162

pound163

curren164

yen165

brvbar166

sect167

uml168

copy169

ordf170

laquo171

not172

-173

reg174

macr175

A0

rsquo260 deg176

plusmn177

2178

3179

acute180

micro181

para182

middot183

cedil184

1185

ordm186

raquo187

frac14188

frac12189

frac34190

iquest191

B0

rsquo300 Agrave192

Aacute193

Acirc194

Atilde195

Auml196

Aring197

AElig198

Ccedil199

Egrave200

Eacute201

Ecirc202

Euml203

Igrave204

Iacute205

Icirc206

Iuml207

C0

rsquo320 ETH208

Ntilde209

Ograve210

Oacute211

Ocirc212

Otilde213

Ouml214

times215

Oslash216

Ugrave217

Uacute218

Ucirc219

Uuml220

Yacute221

THORN222

szlig223

D0

rsquo340 agrave224

aacute225

acirc226

atilde227

auml228

aring229

aelig230

ccedil231

egrave232

eacute233

ecirc234

euml235

igrave236

iacute237

icirc238

iuml239

E0

rsquo360 eth240

ntilde241

ograve242

oacute243

ocirc244

otilde245

ouml246

divide247

oslash248

ugrave249

uacute250

ucirc251

uuml252

yacute253

thorn254

yuml255

F0

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

Parametri

inclinazione 000000 x-height 430549 ptspazio interparola 333332 pt larghezza del quadrato 1000000 ptallungamento interparola 166665 pt spazio extra 111111 ptaccorciamento interparola 111111 pt corpo nominale 1000000 ptalfabeto maiuscolo 18618060 pt alfabeto minuscolo 12758364 pt

Tabella 1113 Il font latino con codifica LY1

11825 Creare i font vettoriali con mftrace

Bisogna installare nel proprio calcolatore nelle apposite cartelle che conservano iprogrammi specifici della macchina i file mftrace potrace e FontForge tutti e trepossono essere scaricati dalla rete si possono trovare i luoghi da cui scaricareil tutto cercandoli con un motore di ricerca a piacere Esistono versioni perogni piattaforma tranne che per le macchine Windows su queste perograve si puograveinstallare un ambiente di simulazione di UNIX che si chiama CygWin e allrsquointernodi questo si possono installare i programmi suddetti come se la piattaformaWindows fosse una piattaforma UNIX

Dalla finestra comandi terminal console o xterm che dir si voglia si lanciaprima lrsquoapplicativo per creare il file metrico mktextfm e poi il programmamftrace seguito dalle opzioni e dal nome del file da trasformare per esempio

mktextfm ocrb5mftrace -f PFB --simplify --potrace ocrb5

Spesso sarebbe desiderabile specificare anche un file di codifica con lrsquoestensioneenc se non si specifica nulla mftrace assume il file di codifica tex256encche corrisponde alla codifica T1 se si convertono al formato vettoriale dei fontin alfabeti diversi o con un numero di caratteri diverso da 256 si puograve semprepredisporre il vettore di codifica con lo stesso schema del file tex256enc ma

118 LA GESTIONE DEI FONT 237

ovviamente con contenuti diversi Egrave opportuno usare per i nomi dei caratteriquelli che si trovano nei file afm (Adobe Font Metrics vedi piugrave avanti) oppure inomi della codifica UNICODE Per questa operazione si puograve usare direttamenteil programma FontForge lrsquooperazione non egrave complicata ma si rinvia il lettorealla documentazione dello stesso programma FontForge

Se le variabili di environment anche per CygWin sono a posto mftraceproduce i font pfb al massimo quel che resta da fare consiste nello spostarei file prodotti nelle opportune cartelle eventualmente creandole apposta nelnostro esempio nelle cartelle fontstfmocr e fontstype1ocr esi aggiorna il solito database dei nomi dei file

Se si vuol sapere che cosa succede durante lrsquoesecuzione di mftrace si sappia chedapprima viene lanciato METAFONT sul file sorgente ocrb5mf con un fortissimoingrandimento il file di uscita di METAFONT viene convertito in un altro formatoi cui dettagli non ci interessano e questo file viene passato a potrace Questo deter-mina i poligoni che descrivono al meglio i contorni delle lettere rasterizzate di cuiegrave necessario determinare le spline9 di Beacutezier componenti il lavoro viene ripetutoper ogni carattere nel font e tutti questi poligoni vengono utilizzati per determi-nare i nodi e i punti guida delle curve di Beacutezier osculatrici dei contorni da definirecon queste informazioni e altre tratte dal file tfm che era stato precedentementegenerato da mktextfm nel primo passo viene costruito un file temporaneo cheviene poi inviato a FontForge con lrsquoordine di semplificare le curve che descrivono icontorni e di costruire il file ocrb5pfb Certo egrave piugrave complicato da dire che da fare

Creati i file pfb di tutta la collezione si crea una semplice mappa in questocaso i font sono pochi e si puograve procedere a mano in condizioni diverse condecine o centinaia di font bisogna sfruttare le potenzialitagrave del proprio sistemaoperativo La mappa saragrave dunque nel nostro semplice caso

ocrb5 ocrb5 ltocrb5pfbocrb6 ocrb6 ltocrb6pfbocrb7 ocrb7 ltocrb7pfbocrb8 ocrb8 ltocrb8pfbocrb9 ocrb9 ltocrb9pfbocrb10 ocrb10 ltocrb10pfb

e la si puograve chiamare ocrbmap mettendola in una cartella dove updmap la puogravetrovare cioegrave nellrsquoalbero locale nella cartella fontsmap come egrave giagrave statodescritto per i font greci al punto 3 nella pagina 229 in ogni caso bisognaaggiornare il database dei nomi dei file Ovviamente bisogna poi aggiungere lariga10

Map ocrbmap9La parola spline indica in inglese quello strumento di disegno formato da un curvilinee

flessibile che consente di adattarlo a determinati profili Serviva ai disegnatori per eseguiredei raccordi molto ben fatti nel disegno di linee curve nei disegni tecnici Le curve spline diBeacutezier svolgono in un certo senso la stessa funzione nel senso che se ne puograve fissare il punto dipartenza e il punto di arrivo specificandone anche la tangente e la curvatura Esempi di curvedel secondo e del terzo ordine sono mostrati nella figura 72

10Se si vuole consentire sia lrsquouso dei font vettoriali sia quello dei font a matrici di puntiinvece di Map basta specificare MixedMap Percheacute questo funzioni correttamente bisogna che sulparticolare calcolatore siano disponibili sia i sorgenti mf sia i file binari pfb Egrave per questoche il file updmapcfg distribuito con il sistema TEX si incontrano spesso delle righe con ilcomando iniziale MixedMap

238 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

al file updmap-localcfg e procedere come si egrave spiegato con i font greci nellapagina 229 e successive

11826 I file di descrizione dei font

Bisogna ancora creare il file fd per poter accedere a questi font da latex e dapdflatex Detto file molto semplice appare cosigrave

ProvidesFileuocrfd[20070805 v10 Custom OCR font definitions]

DeclareFontFamilyUocrhyphencharfont-1DeclareFontShapeUocrmn

lt5gtlt6gtlt7gtlt8gtlt9gtgenocrlt10-gtocr10

endinput

Lrsquoencoding di questo font egrave dichiarato lsquounknownrsquo non percheacute sia del tuttosconosciuto ma percheacute esso non egrave completo come quello dei font che rispettanoper esempio la codifica OT1 Viene specificato il codice -1 per la lineetta dilsquoa caporsquo siccome nessun carattere ha lrsquoindirizzo -1 questo significa che le parolescritte con questo font non possono venire divise in sillabe

La famiglia viene definita con un nuovo nome cosiccheacute egrave necessario definireanche un comando per poter scegliere questa famiglia Egrave conveniente allorapredisporre un piccolo file di estensione che contenga tutto il necessario

ProvidesPackageocrsty[20070805 v10 Extension package for using OCR fonts]

inputuocrfdDeclareRobustCommandocrfamily

fontencodingUfontfamilyocrselectfontDeclareTextFontCommandtextocrocrfamilyendinput

In questo modo la dichiarazione ocrfamily dichiara di voler usare i font perlettura ottica mentre il comando textocr esegue la stessa operazione sul suoargomento provvedendo anche se occorre allrsquoinserimento della correzione italica

Si noti che nel file fd i corpi da 5 pt a 9 pt sono ricavati ciascuno dal suofile specifico mentre i corpi da 10 pt in su sono tutti ricavati per (eventuale)ingrandimento del font disegnato per il corpo di 10 pt Per maggiori delucidazionisulla manipolazione dei font e dei loro file di definizione il lettore egrave invitato ariferirsi al file doclatexbasefntguidepdf

A questo punto il proprio sistema se non si sono commessi errori egrave prontoper usare senza problemi i nuovi caratteri per lettura ottica

1183 Installare font commercialiLrsquoinstallazione di font commerciali font Type1 o TrueType giagrave presenti sulproprio calcolatore corrisponde a fare operazioni simili a quelle viste nel paragrafoprecedente ma in un certo senso piugrave facili

I font Type1 sono disponibili insieme ai rispettivi file metrici con estensioneafm i font TrueType non ne hanno bisogno percheacute le informazioni metrichesono giagrave contenute nel file ttf che li descrive

118 LA GESTIONE DEI FONT 239

Ogni sistema TEX contiene giagrave alcuni file eseguibili fra i quali spiccanoafm2tfm e ttf2pt1 Il primo programma accetta numerose opzioni da rilevaredalla documentazione e produce un file tfm adatto al sistema TEX partendo daun file in formato afm esso produce anche il file con il vettore di codifica enc eil file virtuale vf che consentono a ogni programma di composizione del sistemaTEX di trattare il font come se fosse un normale font generato con METAFONTnel momento in cui si tratta di generare un file di uscita in formato PostScripto PDF gli eseguibili appositi sanno dove trovare le mappe e le informazioni diricodifica per mettere i segni giusti nel file di uscita

Il programma ttf2pt1 invece trasforma il font TrueType in un font PostScriptType1 generando anche il file afm a questo si puograve applicare la procedura delcapoverso precedente

Come al solito bisogna fare attenzione ad aggiornare sempre il database deinomi dei file se i programmi non lo fanno da soli bisogna provvedere a creare lamappa specifica per ogni font trasformato e inserirne la riga apposita in un filemap da far leggere a updmap per generare i soliti tre file generali che verrannousati dai programmi destinati a produrre i file di uscita nel formato finale

Talvolta questi programmi specificando le opzioni giuste sono in grado diprodurre anche il file di descrizione fd per definire le nuove famiglie altrimentiegrave necessario provvedere a mano in modo autonomo

1184 Riassunto delle operazioni di gestione dei font edella loro connessione con lrsquointero sistema TEX

Vale la pena di riassumere graficamente il modo di operare del sistema TEXquando si usi LATEX o pdfLATEX Molte delle informazioni sono sparse in diversialtri capitoli ma qui dove si parla di font sembra il posto giusto per collegaretutto assieme

Nelle figure 1110ndash1114 i simboli grafici hanno i significati seguenti

Font I file che si riferiscono ai font in senso stretto sono rappresentati da cerchigialli

Programmi di sistema Sono rappresentati da rettangoli rosso chiaro

Programmi esterni Sono rappresentati da rettangoli azzurri

File accessori per la gestione dei font Sono rappresentati da cerchi verdi

File finali Sono rappresentati da cerchi marroncino chiaro lsquofile finalersquo indica ilfile che contiene un documento giagrave composto

Risorse esterne Sono gruppi di file di programmi eo di font da reperiregratuitamente in rete o onerosamente presso i rivenditori specifici Sonorappresentati da ellissi blu chiaro

Uscite Lrsquouscita su schermo su carta su lastre per fotolitotipografia o su altrisupporti sono rappresentati mediante ellissi arancione

Nella figura 1110 sono rappresentati i due processi di composizione descrittiin questo testo quello attraverso LATEX e quello attraverso pdfLATEX Si noti lasemplicitagrave del processo attraverso LATEX a confronto con la relativa complicazioneattraverso il processo pdfLATEX Il primo richiede solo il file sorgente e il file

240 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

CBeccari

ndashti

kzpi

cture

1

TEX system

PostScript

TrueType ttf

pfb

afm

mf

ttf2pt1

pfb

afm afm2tfm

enc

vf

tfm

map

METAFONT

mftrace

editor map

pfb

tfm

pk

map1

mapn enc

editorupdmapcfg

updmap

dvipdfmmap

dvipsmap

pdftexmap

tex

vf tfm pfb ttf

pdfLATEX pdf

pdftexmap

tex LATEX dvi

tfm

Figura 1110 Schema grafico del processo di composizione

CBeccari

ndashti

kzpi

cture

2

vf

tfm

dvi

pfb dvipdfmmap

dvipdfm pdf

vf

tfm

dvi

pfb

psfontsmap

dvips ps pstopdf pdf

pdf

pdfdriver

schermostampa

ps

psdriver

schermostampa

dvipk vf

dvidriver

schermostampa

Figura 1111 Presentazione allrsquoesterno dei risultati della composizione

metrico dei font usati e in uscita presenta il risultato lsquofinalersquo mediante un filedvi Questo file egrave finale solo in senso logico percheacute comunque per essereutilizzato ha ancora bisogno di trasformazioni specialmente se vi sono stateincluse delle immagini ottenute da file esterni

Al contrario il processo di composizione mediante pdfLATEX egrave completo e ilfile finale si puograve considerare definitivo per fare ciograve perograve esso ha bisogno di tuttii file concernenti i font specialmente quelli di tipo outline

Il file dvi puograve essere visualizzato eo stampato direttamente mediantesoftware che solitamente fa giagrave parte del corredo del sistema TEX saragrave il visua-lizzatore YAP di MiKTEX oppure xdvi di Linux oppure altri programmi similiLo stesso puograve dirsi del file pdf in uscita da pdfLATEX cosigrave come del file psin uscita dal convertitore dvips nel caso che sia richiesto questo formato perlrsquouso successivo Nella figura 1111 sono rappresentati graficamente i processi dipresentazione mediante i vari programmi specifici e sono messi in evidenza i filedi cui necessitano con particolare rilievo per quelli che riguardano i font

Generalmente perograve il file dvi ha bisogno di essere trasformato o in filepdf o in file ps questrsquoultimo a sua volta puograve richiedere la trasformazioneulteriore in file pdf il processo di conversione egrave rappresentato graficamentenella figura 1112 ancora evidenziando lrsquoimportanza dei file concernenti i font

Come si vede da queste figure i file direttamente o indirettamente legati

118 LA GESTIONE DEI FONT 241CBeccari

ndashti

kzpi

ctur

e

2

vf

tfm

dvi

pfb dvipdfmmap

dvipdfm pdf

vf

tfm

dvi

pfb

psfontsmap

dvips ps pstopdf pdf

pdf

pdfdriver

schermostampa

ps

psdriver

schermostampa

dvipk vf

dvidriver

schermostampa

Figura 1112 Processi di conversione dei vari formati di uscita dai programmi dicomposizione

ai font sono tanti e spesso bisogna crearli apposta con il supporto delle utilityfornite con il sistema TEX o con lrsquoausilio di programmi esterni La figura 1113mostra in forma schematica le risorse esterne da cui trarre i font necessari e cometrasformare questi ultimi in modo da renderli usabili con il sistema TEX Si vedechiaramente che i font in formato METAFONT sono i piugrave facili da usare il che egravelogico visto che TEX e METAFONT sono programmi lsquofratellirsquo entrambi concepitida Donald Knuth e sono sempre distribuiti assieme e completi di una buonacollezione di file sorgente di tipo mf Ma i font outline distribuiti secondo lostandard Adobe (PostScript Type1) oppure i font TrueType nati da un progettocomune della Adobe e dalla Microsoft richiedono ulteriori trattamenti se nonaltro percheacute non sono dotati dei file tfm che bisogna quindi generare ma spessohanno anche codifiche diverse certamente diverse da quelle che TEX si aspettae quindi sono necessarie conversioni a diversi livelli I programmi che operanoqueste conversioni e il loro modo di procedere sono illustrati schematicamentenella figura 1113 in questa figura per altro egrave indicata anche la conversione deifont mf in font di tipo vettoriale (mediante il programma mftrace) che sonocosigrave utili specialmente per la visualizzazione su schermo dove egrave necessario poteringrandire o rimpicciolire la schermata e quindi il suo contenuto secondo lenecessitagrave di lettura

In particolare le mappe parziali dei font disponibili sulla macchina particolaresulla quale viene eseguita la composizione vanno unite in modo coerente fino

242 CAPITOLO 11 LATEX I CARATTERI DA STAMPA

CBeccari

ndashti

kzpi

ctur

e

1

TEX system

PostScript

TrueType ttf

pfb

afm

mf

ttf2pt1

pfb

afm afm2tfm

enc

vf

tfm

map

METAFONT

mftrace

editor map

pfb

tfm

pk

map1

mapn enc

editorupdmapcfg

updmap

dvipdfmmap

dvipsmap

pdftexmap

tex

vf tfm pfb ttf

pdfLATEX pdf

pdftexmap

tex LATEX dvi

tfm

Figura 1113 Trasformazioni di formato dei font e generazione dei file ausiliari

CBeccari

ndashti

kzpi

ctur

e

1

TEX system

PostScript

TrueType ttf

pfb

afm

mf

ttf2pt1

pfb

afm afm2tfm

enc

vf

tfm

map

METAFONT

mftrace

editor map

pfb

tfm

pk

map1

mapn enc

editorupdmapcfg

updmap

dvipdfmmap

dvipsmap

pdftexmap

tex

vf tfm pfb ttf

pdfLATEX pdf

pdftexmap

tex LATEX dvi

tfm

Figura 1114 Gestione delle mappe dei font

a formare le mappe generali di cui necessitano i programmi di conversione deifile finali Il procedimento egrave indicato schematicamente nella figura 1114 ilprogramma indicato con il nome lsquoeditorrsquo egrave un qualunque programma di gestionedi file testuali ASCII potragrave essere Notepad dei sistemi Windows oppure vimdei sistemi Linux ma va benissimo anche lo shell editor usato per gestire i filesorgente da comporre con il sistema TEX

119 CONCLUSIONI 243

119 ConclusioniTutte queste operazioni descritte forse con troppo dettaglio possono impaurire ilneofita tuttavia ci si puograve consolare pensando che lrsquoinstallazione di un nuovo fontnon egrave una operazione da eseguirsi tre volte al giorno drsquoaltra parte se cosigrave fossequeste operazioni finirebbero per venire eseguite in modo del tutto automatico enon apparirebbero cosigrave intricate

Ci si potrebbe domandare percheacute il sistema TEX che egrave dotato di un grannumero di font accessori non sia dotato anche di un programma che consenta dieseguire tutte le operazioni indicate in questi ultimi paragrafi in modo automaticoBuona domanda Una risposta possibile egrave che per ogni font o collezione di fontbisogna agire in modo diverso da ogni altro font o collezione I nomi le codificheil contenuto dei file che contengono le informazioni che descrivono i vari fontpotrebbero essere forse oggetto di un programma o di uno script in linguaggiobash oppure python oppure perl oppure java oppure ma le possibilitagrave dierrore sono cosigrave numerose che il lavoro del programmatore diventerebbe troppooneroso specialmente in relazione al fatto che lrsquoinstallazione di nuovi font nonavviene come si egrave detto tre volte al giorno

Chi scrive generalmente reinstalla i propri font non standard una voltaallrsquoanno quando aggiorna il suo sistema talvolta aggiunge un nuovo font di cuicrea a mano la mappa e di cui aggiunge il nome ad un file locale localmap etutto il resto si ripete di anno in anno senza bisogno di avere un comportamentodiverso per ogni nuovo font Chi scrive spende diciamo cinque minuti allrsquoannoper reinstallare i propri font vecchi e nuovi egli opera a mano senza bisogno dinessuno script in linguaggio arcano e lo fa percheacute si egrave organizzato bene con ilproprio albero personale e con le proprie impostazioni locali in modo da nondover ogni volta ristudiare come si fa Al massimo fra un aggiornamento e ilsuccessivo del sistema TEX il TEX Live Team ha deciso qualche cambiamentoin merito alla struttura standard delle cartelle del sistema TEX il TDS TEXDirectory System per cui bisogna spostare qualche file da qualche cartella aqualche altra11 ma non egrave un problema

11Egrave successo in questi ultimi anni dal 2007 per la grande vitalitagrave del sistema TEX non egravequindi il caso di lamentarsi

Capitolo 12

LATEX le presentazioni

121 IntroduzioneNon egrave possibile tralasciare nemmeno in una guida introduttiva lrsquoargomentodelle presentazioni

Per lsquopresentazionirsquo si intendono quelle proiezioni che accompagnano unaconferenza un discorso pubblico un seminario una lezione eccetera

Se il contenuto delle schermate da proiettare egrave prevalentemente o completa-mente testuale al massimo include delle figure vanno benissimo i programmiliberi oppure commerciali i quali spesso producono proiezioni molto accatti-vanti ricche di effetti speciali e piene di parti colorate spessissimo anche losfondo della schermata contiene delle parti disegnate o delle fotografie o il logodellrsquoistituzione di appartenenza dellrsquooratore percheacute non disturbino la letturaqueste immagini di sfondo dovrebbero essere molto chiare o comunque alterareil meno possibile il colore dominante dello sfondo

Tuttavia preparare delle belle presentazioni egrave unrsquoarte se poi la presentazionedeve contenere dello scritto tecnico (formule matematiche schemi filologici oaltre cose non facenti parte della prosa lsquonormalersquo) allora egrave opportuno usareLATEX il che comporta la necessitagrave di saper usare LATEX al meglio delle suepotenzialitagrave bisogna conoscere lrsquoarte di comporre con LATEX oltre che lrsquoarte dipredisporre delle schermate efficaci per il trasferimento sintetico dellrsquoinformazionedallrsquooratore allrsquoascoltatore

122 Le classi per le presentazioniLATEX nasce con una semplicissima classe per le presentazioni slides nonostantela sua semplicitagrave estensibile facilmente con i vari pacchetti di estensione descrittianche negli altri capitoli essa contiene alcuni elementi importanti da tenerepresente

1 Poicheacute lrsquoascoltatore recepisce e ricorda meglio quello che legge che sente eche vede sullo schermo egrave importante che ogni slide o schermata contengaun solo concetto e che lrsquoascoltatore non sia sottoposto a piugrave di un nuovoconcetto al minuto

245

246 CAPITOLO 12 LATEX LE PRESENTAZIONI

In realtagrave un concetto puograve essere svolto anche su due o tre slide ma egravepreferibile essere sintetici e non egrave il caso di sommergere lrsquoascoltatore sottouna valanga di slide ognuna necessariamente proiettata per poco tempoPer questo scopo egrave quindi necessario essere molto sintetici

2 I due elementi illustrati sopra implicano che ogni slide non deve contenerepiugrave di una dozzina di righe di testo (e 12 forse sono giagrave tante) contandoanche le righe occupate da espressioni matematiche o da testi in alfabetispeciali o contenenti segni speciali ognuna di queste righe va forse contataper due

3 Perciograve se la slide viene stampata su fogli di metacrilato (i lucidi chiamatianche impropriamente lsquotrasparenzersquo) allora i font lsquonormalirsquo devono essereoltre che facilmente leggibili anche di corpo molto grande La classe slidesusa di default per il corpo normale il corpo da 20 pt (per lrsquoesattezza19907 pt) della famiglia senza grazie per migliorare la leggibilitagrave questafamiglia in realtagrave egrave una famiglia speciale con lrsquoaltezza delle minuscolemaggiore del solito abcdefg lrsquoesempio ha lo stesso corpo usato nel restodel testo ma come si vede le sue minuscole sembrano decisamente piugravegrandi in realtagrave egrave piugrave grande la x-height ma sono piugrave corti gli ascendenti

4 Tenendo conto che lo schermo di proiezione ha solitamente il rapporto4 3 fra base ed altezza anche il foglio di metacrilato o la slide vienestampata facendo riferimento alla base come il lato lungo del foglio ebisogna usare nella dichiarazione di classe lrsquoopzione landscape in questomodo aumenta un poco la giustezza ma diminuisce lrsquoaltezza e il numerodi righe disponibile rimane necessariamente basso non egrave possibile perciogravemettere troppa informazione in ciascuna slide

5 La classe slides non consente di eseguire animazioni specialmente si sifa uso dei lucidi di metacrilato altre classi lo consentono se e solo se nonsi usano i lucidi ma si proietta direttamente dal PC o dal laptop medianteun videoproiettorePerograve con lrsquouso del pacchetto color egrave possibile colorare lo sfondo e sceglierecolori diversi di ogni parte della slide composta con LATEX sia testo siamatematica sia disegni eseguiti con lrsquoambiente picture o altri ambientinativi del sistema TEX

123 Altre classi per le presentazioniOgni distribuzione del sistema TEX contiene diverse classi per predisporre ottimepresentazioni si possono citare i pacchetti prosper e il suo successore powerdotseminar pdfscreen pdfslide ppower4 texpower per finire con beamer

Ognuno di questi pacchetti produce slide bellissime e le presentazioni didimostrazione che accompagnano ogni pacchetto fra la sua documentazionesono tutte accattivanti

Ogni pacchetto offre una o piugrave classi per la predisposizione di vari tipi dipresentazione ognuno finisce poi per affezionarsi ad un particolare pacchettoma le possibilitagrave di personalizzazione sono tali e tante che non si corre il rischiodi eseguire presentazioni con lo stesso stile standard

124 LA CLASSE BEAMER 247

124 La classe beamer

In inglese beamer significa videoproiettore Il pacchetto beamer mette a dispo-sizione del compositore sia la classe beamer sia una serie di file di estensionemodulari con i quali egrave possibile personalizzare le proprie presentazioni e le mo-dalitagrave per attribuire valori diversi ai diversi parametri che caratterizzano sia illayout delle slide sia i tipi di comandi o di segni particolari che appaiono nelleslide

Queste sono concepite con file PDF interattivi per cui ogni slide contieneanche disegnati in colore molto tenue tanto da non disturbare la letturaanche i lsquopulsantirsquo per muoversi nella sequenza di slide che costituiscono lapresentazione Inoltre egrave possibile avere a disposizione una specie di indice generaledella presentazione sempre visibile cosigrave che gli ascoltatori possano seguire ilcambiamento di colore del titoli delle lsquosezionirsquo che costituiscono la presentazionequesti stessi titoli costituiscono degli hyperlink utili allrsquooratore per navigarerapidamente attraverso la propria presentazione senza avere la necessitagrave di farscorrere la presentazione fino a trovare la slide giusta

La classe prevede lrsquouso dei pacchetti pgf e xcolor cosigrave che si possano sfruttarele molteplici funzionalitagrave del pacchetto pgf per quel che riguarda la possibilitagravedi eseguire dei bellissimi disegni o per inserire le funzionalitagrave di quel pacchettoper lrsquoinserimento delle immagini esterne

Invece il pacchetto xcolor consente di gestire molto semplicemente i coloriper ottenere sia colori misti sia gradienti di colore lineari o sferici il tutto concomandi di alto livello molto semplici per il compositore

Le slide possono avere il loro contenuto esposto incrementalmente vale a direche per esempio la dimostrazione di un teorema puograve essere fatta esponendouna dopo lrsquoaltra le frasi che ne costituiscono la sequenza logica senza che iltesto giagrave esposto cambi posizione via via che nuovo testo viene esposto Unodei vantaggi per lrsquooratore egrave che quanto verragrave esposto in slide successive apparescritto in colore chiarissimo anche sulle slide precedenti cosigrave che lrsquoascoltatorequasi non se ne accorge ma lrsquooratore ne trae un notevole aiuto percheacute sa giagrave inanticipo vedendola quale saragrave la slide successiva

Ovviamente la classe beamer consente di eseguire delle transizioni fra unaslide e lrsquoaltra agevolando lrsquoascoltatore nel capire sia i collegamenti fra una slidee la successiva sia con transizioni diverse nel capire quando si passa da unasezione allrsquoaltra della presentazione

La predisposizione delle slide egrave piuttosto semplice ognuna corrisponde ad unambiente frame ogni frame accetta un titolo e il testo della slide se la slide deveessere presentata in fasi successive il file di uscita conterragrave diverse lsquopaginersquo mail frame resta invariato semplicemente i comandi per lrsquoesposizione incrementaledelle varie parti della slide fanno parte nel file sorgente del testo contenuto nelframe

Non egrave possibile in un testo stampato presentare questi effetti dinamici ma siinvita il lettore ad esaminare con attenzione uno dei file lsquodemorsquo che accompagnail pacchetto beamer si trovano tutti in doclatexbeamerexamplessuggerisco beamerexample5pdf ma certi file sono solo per presentare alcunidettagli altri sono per presentazioni complete Un altro esempio egrave formato dallacoppia di file beamerexample2articlepdf e beamerexample2beamerpdfderivati dal medesimo file sorgente a seconda di quali parametri vengono stabilitinel preambolo dallo stesso sorgente si possono ricavare sia la presentazione sia

248 CAPITOLO 12 LATEX LE PRESENTAZIONI

un articolo che puograve costituire direttamente il materiale lsquocartaceorsquo da distribuireallrsquouditorio

125 La documentazioneTutti i pacchetti nominati dispongono della loro propria documentazione sulpercorso doclatex〈pacchetto〉 Il file di documentazione di beamer sichiama beameruserguidepdf ed egrave particolarmente interessante non solo per-cheacute contiene una documentazione molto ben fatta tenendo conto anche dellaversatilitagrave del pacchetto e quindi della moltitudine di comandi e ambienti cheesso fornisce ma anche per le preziose informazioni sulla preparazione di presen-tazioni professionali questo genere di informazioni non egrave facilmente reperibile inaltra documentazione o in altri libri

La sostanza egrave che quasi tutto quello che egrave opportuno fare da un punto di vistatecnico-compositivo egrave disponibile con LATEX e con i comandi messi a disposizionedai pacchetti di servizio pgf e xcolor ma quello che deriva dalla professionalitagravee dal buon gusto non puograve e non egrave solitamente descritto da nessuna parte tranneappunto nel manuale di beamer

Egrave sorprendente notare come la maggior parte delle presentazioni compostecon noti programmi dedicati sia commerciali sia freeware pur essendo queiprogrammi del tutto validi per lo scopo peccano percheacute gli autori non conoscevanoe non avevano nessun modo di ricavare dalla documentazione le regole di stilee di buon gusto per la predisposizione di slide efficaci queste sono efficaci sesono prive di quegli elementi lsquodecorativirsquo che invece di favorire la trasmissionedella comunicazione distraggono lo spettatoreascoltatore il quale alla fine dellaconferenza o della lezione si ricorda di queste animazioni ma non si ricorda diquello che ha detto lrsquooratore

Egrave quindi assai raccomandabile leggersi attentamente il manuale di beamersi impareranno moltissime cose che permetteranno di usare lo strumento com-positivo al meglio per ottenere lo scopo di una presentazione cioegrave quello ditrasmettere un messaggio allrsquoascoltatore nel modo piugrave efficace possibile

126 Una breve presentazioneNella figura 121 sono rappresentate 8 slide corrispondenti a 5 frame di unabrevissima presentazione Esse sono disposte in verticale la prima colonnacontiene le slide da 1 a 4 e la seconda colonna da 5 a 8

Il codice per produrre queste slide egrave il seguente e serve per interpretare ilrisultato ottenuto nelle slide rappresentate nella figura 121

file per produrre alcune slide per GuidaGuitdocumentclassbeamer PreambolousethemeAnnArboruseoutertheme[right]sidebarsetbeamercoloralerted textfg=red90blackusepackage[T1]fontencusepackage[latin1]inputencusepackagepgf

126 UNA BREVE PRESENTAZIONE 249

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

I numeri complessiConferenza internazionale

del Gruppo Italiano degli utenti di TEX

Mario Rossi

guIt

Pisa 2022 ottobre 2015

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 1 5

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

I numeri complessi nascono nel 500

1 Nel XVI secolo Tartaglia e Cardano introducono la radicequadrata di minus1

2 Il nome di unitagrave immaginaria viene creato da ReacuteneacuteDescartes nel 1637

3 Gauss nel 1799 contribuisce con i suoi scritti a diondere inumeri complessi

4 Hamilton nel 1833 pubblica la teoria dei numeri complessi

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 4 5

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

Indice

1 Introduzione storica

2 Nascita dei numeri complessi

3 I numeri complessi in pict2e

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 2 5

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

I numeri complessi nascono nel 500

1 Nel XVI secolo Tartaglia e Cardano introducono la radicequadrata di minus1

2 Il nome di unitagrave immaginaria viene creato da ReacuteneacuteDescartes nel 1637

3 Gauss nel 1799 contribuisce con i suoi scritti a diondere inumeri complessi

4 Hamilton nel 1833 pubblica la teoria dei numeri complessi

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 4 5

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

Una breve storia dei numeri

Allinizio del vii secolo gli Indiani inventarono la notazioneposizionale e le nove cifre dall1 al 9 lo zero veniva detto avoce ma non aveva ancora un suo segno

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 3 5

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

I numeri complessi nascono nel 500

1 Nel XVI secolo Tartaglia e Cardano introducono la radicequadrata di minus1

2 Il nome di unitagrave immaginaria viene creato da ReacuteneacuteDescartes nel 1637

3 Gauss nel 1799 contribuisce con i suoi scritti a diondere inumeri complessi

4 Hamilton nel 1833 pubblica la teoria dei numeri complessi

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 4 5

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

I numeri complessi nascono nel 500

1 Nel XVI secolo Tartaglia e Cardano introducono la radicequadrata di minus1

2 Il nome di unitagrave immaginaria viene creato da ReacuteneacuteDescartes nel 1637

3 Gauss nel 1799 contribuisce con i suoi scritti a diondere inumeri complessi

4 Hamilton nel 1833 pubblica la teoria dei numeri complessi

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 4 5

I numeri

complessi

Mario Rossi

Introduzione

storica

Nascita dei

numeri

complessi

I numeri

complessi in

pict2e

guItmeeting

1

I numeri complessi come operatori geometrici

x

y

a

b

ϕ

m

vettore unitarioVisto come operatore geometrico il numero complessomeiϕ = a + ib agisce su un vettore in questa gura agisce sulvettore unitario blu lo scala tramite il fattore m e lo ruotadellangolo ϕ producendo il vettore rosso

Mario Rossi (guIt) I numeri complessi Pisa 2022 ottobre 2015 5 5

Figura 121 Otto slide per una presentazione di cinque frame Vale la penadi osservare che i comandi usati per il diagramma dellrsquoultima slide sono statieseguiti con i comandi definiti nella versione del 2004 del pacchetto pict2e

250 CAPITOLO 12 LATEX LE PRESENTAZIONI

usepackagepict2ecurve2eusepackage[color]guitusepackage[italian]babel

beamertemplatetransparentcovereddynamic

titleI numeri complessisubtitleConferenza internazionaledel~Gruppo~Italiano~degli~utenti~di~TeXauthorMario RossiinstituteGuIT

datePisa 20--22 ottobre 2015

pgfdeclareimage[width=textwidth]CifreIndianeCifreIndianeVIIsecolo

pgfdeclareimage[width=155mm]guitlogoGuITlogo

logopgfuseimageguitlogo Fine del preambolo

begindocument Inizio della presentazione

beginframe Primo frame prima slidetitlepageendframe

beginframe Secondo frame seconda slideframetitleIndicetableofcontentsendframe

sectionIntroduzione storica

beginframe Terzo frame terza slideframetitleUna breve storia dei numeriAllrsquoinizio del textscvii secolo gli Indiani inventaronola notazione posizionale e le ltltnovegtgt cifre dallrsquo1 al 9lo zero veniva detto a voce ma non aveva ancora un suo segno

begincenterpgfuseimageCifreIndianeendcenterendframe

sectionNascita dei numeri complessi

126 UNA BREVE PRESENTAZIONE 251

beginframe Quarto frame diviso in quattro slideframetitleI numeri complessi nascono nel rsquo500beginenumerateitemlt1-gt Nel XVI secolo Tartaglia e Cardano introduconola radice quadrata di $-1$itemlt2-gt Il nome di emphunitagrave immaginaria viene creatoda Reacuteneacute Descartes nel 1637itemlt3-gt Gauss nel 1799 contribuisce con i suoi scrittia diffondere i numeri complessiitemlt4-gt Hamilton nel 1833 pubblica la teoria dei numericomplessiendenumerateendframe

sectionI numeri complessi in textttpict2e

beginframe Quinto frame ottava slideframetitleI numeri complessi come operatori geometricibegincenterunitlength=1mm

beginpicture(6040)put(00)vector(10)60put(601)makebox(00)[br]$x$put(00)vector(01)45put(145)makebox(00)[lt]$y$thicklinesput(00)textcolorredvector(346412)40thinlinesmultiput(40-5)(02)12line(01)1multiput(-523094)(20)20line(10)1put(411)makebox(00)[bl]$a$put(1241)makebox(00)[bl]$b$VectorArc(00)(200)30put(204)makebox(00)[bl]$varphi$put(20126)rotatebox30makebox(00)[b]$m$put(00)thicklinestextcolorbluevector(10)10put(5-1)textcolorbluemakebox(00)[t]vettore

unitarioendpicture

endcenterVisto come operatore geometrico il numero complesso$mmathsfe^mathsfivarphi=a+mathsfib$ agisce suun vettore in questa figura agisce sultextcolorbluevettore unitario blu lo scala tramiteil fattore alert$m$ e lo ruota dellrsquoangolo alert$varphi$producendo il alertvettore rossoendframe

enddocument

Nel preambolo appaiono diversi comandi alcuni dei quali sono giagrave familiariper invocare babel con lrsquoopzione italian al fine di comporre in italiano per

252 CAPITOLO 12 LATEX LE PRESENTAZIONI

invocare inputenc con lrsquoopzione latin1 per scrivere usando le lettere accentateper invocare fontenc con lrsquoopzione T1 per scrivere nel file di uscita con le lettereaccentate direttamente non ottenute per sovrapposizione del segno dellrsquoaccentosopra il segno della vocale Si invoca anche il pacchetto pgf per poter usufruiredella grafica avanzata e per la gestione delle figure il pacchetto guit per gestirei loghi del Gruppo degli utilizzatori Italiani di TEX i pacchetti pict2e e curve2eper disegnare in uno dei frame della presentazione

Ma ai fini di questo esempio sono interessanti gli altri comandi

usetheme serve per scegliere il layout generale dei frame sia come colori siacome disposizione delle informazioni che corredano la presentazione inquesto caso si egrave scelto lo stile AnnArbor che egrave uno dei vari stili messi adisposizione dellrsquoutente di beamer ovviamente questi sono predefiniti malrsquoutente puograve crearsi dei temi a suo piacimento partendo da zero oppurepuograve copiare e modificare quelli esistenti mediante gli altri comandi che sivedranno qui di seguito

useoutertheme serve per scegliere le parti che contornano i frame ai fianchiin questo caso si egrave scelto di usare la barra laterale (una striscia con uncolore di fondo nella quale appariranno certe informazioni) e si egrave scelto dimantenerla a destra

setbeamercolor serve per impostare uno dei colori che beamer usa per certitipi di testo in questo caso il colore dellrsquoallerted text il testo su cuirichiamare lrsquoattenzione viene impostato con il 90 di rosso e il restante(10) nero insomma si preferisce un rosso un porsquo piugrave scuro del normale

beamertemplatetransparentcovereddynamic egrave una dichiarazione con la qua-le si chiede che il testo da esporre in slide successive sia lsquotrasparentersquo moltochiaro in modo da intravvederlo anche quando il testo non egrave esposto

title author e date sono vecchie conoscenze ma beamer consente dispecificare anche un sottotitolo per la presentazione mediante il comandosubtitle Il modo particolare con cui egrave scritto il sottotitolo serve pergarantire che la frase sia divisa in due sottofrasi in modo che ognunacontenga le sue congiunzioni e preposizioni semplici o articolate

institution serve per inserire il nome o il logo dellrsquoistituzione a cui appartienelrsquooratore

pgfdeclareimage egrave un comando che consente di assegnare non solo certecaratteristiche allrsquoimmagine da usare in questo caso la larghezza ma ancheun nome con cui richiamarle insieme alle loro proprietagrave Attenzione non sitratta di una cosa da poco lrsquoimmagine GuITlogo viene riprodotta in ognislide quindi se ogni volta si ricaricasse il file del disegno si correrebbeil rischio di finire con file dalle dimensioni enormemente grandi usandoinvece pgfdeclareimage il particolare file che contiene lrsquoimmagine vienecaricato una sola volta grazie al fatto che il programma pdfLaTeX egrave ingrado di riutilizzare quellrsquoimmagine un numero illimitato di volte senzacopiarla ma facendovi riferimento mediante i suoi meccanismi interni digestione degli hyperlink

126 UNA BREVE PRESENTAZIONE 253

logo dice quali comandi devono venire usati per produrre lrsquoimmagine del logonel punto in cui questo deve apparire

pgfuseimage infine egrave il comando che riferendosi al nome di unrsquoimmagineprecedentemente dichiarato mediante pgfdeclareimage effettivamentecrea gli hyperlink interni che rendono visibile lrsquoimmagine nel punto voluto

Con lrsquoinizio del documento appaiono le dichiarazioni dei vari frame mediantei successivi ambienti frame Il primo frame contiene il titolo della presentazioneil comando titlepage fa sigrave che il frame sia composto in modo un porsquo differentedagli altri ma che contenga buona parte delle informazioni relative al titolo alpresentatore e alla sua istituzione di appartenenza allrsquoevento nellrsquoambito delquale si svolge la presentazione eccetera la prima slide e primo frame dellafigura 121 mostra tutti questi dettagli Nellrsquoangolo in basso a destra compareanche il numero progressivo del frame riferito al numero complessivo dei frameche compongono la presentazione nellrsquoesempio compare la frazione 15 per direche si tratta del primo di cinque frame

Il secondo frame contiene lrsquoindice della presentazione egrave utile che questo indicevenga presentato allrsquoinizio percheacute egrave un semplice mezzo per consentire allrsquooratoredi delineare allrsquouditorio il piano della sua presentazione Questo stesso elencoegrave collegato internamente agli hyperlink che consentono di navigare allrsquointernodella presentazione le stesse voci di questo indice compaiono anche nella barralaterale destra e si illuminano di un colore piugrave chiaro ogni volta che si entra adesporre le varie slide che compongono una data sezione gli ascoltatori seguendoquesta barra possono rendersi conto istante per istante del punto a cui egrave arrivatolrsquooratore senza bisogno di controllare lrsquoorologio con mosse ampie e vistose perfarsi notare dallrsquooratore affincheacute ci dia un taglio Spero che nessuno dei lettoridi queste note si trovi mai a fare o a subire queste azioni

Tra il secondo frame e il terzo egrave inserito un comando di sezionamento ilsuo contenuto consente di creare lrsquoindice ma non compare mai al di fuoridellrsquoindice egrave bene che una presentazione sia strutturata in sezioni eventualmenteanche in sottosezioni ma non si frammenti troppo lrsquoesposizione durante uncongresso egrave possibile che ogni oratore abbia a sua disposizione 20 minuti di cuicinque sono destinati alle risposte alle domande poste dagli ascoltatori quindi lapresentazione non dovrebbe contenere piugrave di 15ndash20 slide due o tre sezioni sonopiugrave che sufficienti per strutturare la presentazione Per una lezione magari didue ore egrave evidente che si puograve strutturare maggiormente ma anche in questacircostanza non egrave il caso di fare un unico file con un indice interminabile gliallievi si demoralizzerebbero specialmente tenendo conto che durante una lezioneassistita da una presentazione quanto viene detto egrave molto di piugrave di ciograve che sipotrebbe esporre con le sole parole o con lrsquoaiuto di una lavagna su cui scrivereo disegnare Una simile lunga lezione egrave meglio che sia strutturata in due parti(due distinti file) da presentare con un congruo intervallo fra le due

Si vede che nel terzo frame egrave richiamata per nome una delle due immaginiprecedentemente dichiarate e si fa uso di pgfuseimage che svolge il ruolo chenormalmente avrebbe il comando includegraphics del pacchetto graphicx

Il quarto frame corrisponde a 4 slide si vede che esso contiene una enumerazio-ne ma dopo ogni comando item compare una strana espressione due parentesilsquoacutersquo racchiudono un intervallo nel quale sono indicate le slide da proiettareil primo termine dellrsquoelencazione deve essere proiettato dalla slide 1 in poi ilsecondo elemento dalla slide 2 in poi eccetera la sintassi di questo intervallo di

254 CAPITOLO 12 LATEX LE PRESENTAZIONI

numerazione delle slide segue questa regola se le parentesi acute contengono unsolo numero senza il trattino la slide viene proiettata solo quando tocca a lei(in base al numero drsquoordine) se invece lrsquoespressione contiene un intervallo deltipo 2-3 il termine dellrsquoelencazione appare solo per le slide da 2 a 3 compresema non compare mentre viene proiettata la slide numero 1 neacute quando vieneproiettata la numero 4 Se manca un numero prima del trattino si intende ilnumero 1 se manca un numero dopo il trattino si intende fino allrsquoultima slidedi questo frame Il fatto perograve egrave che le slide dello stesso frame hanno tutte lostesso contenuto ma quelle che devono mostrare solo una parte del contenutoce lrsquohanno in colore trasparente molto chiaro quasi invisibile per chi non sa checosa crsquoegrave scritto ma non per lrsquooratore che invece intravede quanto appariragrave nellaslide successiva

Infine nel quinto frame crsquoegrave un disegno eseguito con i comandi dellrsquoambientepicture come ridefinito dal pacchetto pict2e ed esteso con i comandi definiti nelpacchetto curve2e

127 Creare un nuovo stileGli stili di presentazione nel gergo di beamer si chiamano temi piugrave precisamentecon la parola inglese theme la cartella di beamer contiene diverse sottocartelleper le configurazioni di diversi temi separati in modo modulare in modo checambiare un tema non vuol dire cambiare gli altri Se un autore vuole costruirsiuno stile di presentazione proprio puograve fare in modi diversi il piugrave semplice forseegrave quello di vedere sulla documentazione di beamer i vari temi giagrave predispostiscegliere quello che piugrave si avvicina allo stile desiderato e poi modificarlo caricandodopo quel tema gli altri moduli tematici uno per i colori uno per le barre unoper i campi da inserire nelle riga di testa e nella righe in calce eccetera

Lrsquoaltra via egrave quella di leggere con attenzione la documentazione relativa aitemi e scrivere autonomamente le macro che occorrono non egrave semplice ma nonegrave nemmeno impossibile

Il modo piugrave semplice egrave quello di ricorrere al sito httptitilogfreefrindexEnghtm in questo sito crsquoegrave solo una finestra con una slide di modello siclicca sulle varie parti che si vogliono personalizzare scegliendo dal menugrave sul latodestro sia i colori dello sfondo si quelli dei font da usare eccetera Alla fine siclicca il grosso bottone ovale contenente la scritta Finish e il gioco egrave fatto sottoalla slide modello crsquoegrave il bottone di download per scaricare direttamente il filesty contenente il tema appena creato Il nome di questo file deve cominciarecon la locuzione beamertheme e deve proseguire con una parola o locuzionemnemonica per esempio il nome del congresso durante il quale la presentazioneviene esposta ai congressisti per esempio ecoc2010 il file del tema avragrave quindi ilnome complessivo beametrhemeecoc2010sty Cliccando sul bottone Downloadsi esegue lo scaricamento del file sul proprio disco

Per usare questo nuovo tema basta inserire nel preambolo

usethemeecoc2010

Ovviamente dopo aver creato il nuovo tema nessuno vieta di eseguire delle altremodifiche agendo direttamente sul file ma il grosso egrave giagrave fatto in modo graficointerattivo quindi il tema dovrebbe essere giagrave a posto e usabile immediatamente

128 OSSERVAZIONI 255

128 OsservazioniQuesto capitolo serve per richiamare lrsquoattenzione del lettore sullrsquoopportunitagrave didocumentarsi a fondo nelle rispettive guide in merito alle potenzialitagrave dei varipacchetti citati Alcuni come beamer sono nati per produrre il risultato finaledirettamente in formato PDF altri come prosper e il suo discendente powerdotricorrono al pacchetto PSTricks e quindi devono subire due trasformazioni primadevono essere composti con LATEX per ottenere il file DVI poi questo deve esseretrasformato in formato PDF attraverso il doppio passaggio dvips e ps2pdf1 Ilgioco puograve valere la candela come si dice ma dipende dal tipo di disegni che egravenecessario inserire nelle slide

Egrave inevitabile che ognuno si affezioni ad una particolare classe anche percheacutebisogna usare molti nuovi comandi dai nomi talvolta non cosigrave facili da ricordareperciograve lrsquoabitudine diventa un fattore importante

Perograve parlando di arte di comporre con LATEX non si puograve negare che LATEXegrave uno strumento formidabile ma da solo non egrave sufficiente per predisporrepresentazioni efficaci e accattivanti La necessitagrave di documentarsi nellrsquoarte dellacomunicazione orale e visiva diventa essenziale padroneggiando bene questrsquoartediventa poi abbastanza facile usare lo strumento LATEX con i suoi pacchetti diestensione in modo da ottenere il meglio

1Il programma dvipdfm non egrave in grado di interpretare il codice PostScript complesso generatodai comandi di PSTricks

Capitolo 13

LATEX composizione di testiletterari e filologici

La composizione di testi letterari o filologici egrave forse un argomento troppospecializzato per un guida introduttiva come questa

Tuttavia dopo aver dedicato due capitoli alla matematica bisogna trattarela filologia che egrave una scienza molto esatta e che si avvale di una notazione bidi-mensionale come la matematica Nello stesso tempo sembra necessario trattaredelle classi che consentono di comporre testi letterari con stili assai diversi daquelli dei testi tecnico-scientifici Sigrave egrave vero che LATEX si egrave sviluppato inizialmentenel mondo delle scienze tecnico-scientifiche ma la sua forza compositiva egrave statariconosciuta anche da coloro che si occupano di scienze umane e non egrave un casoche fra i primi umanisti ci siano stati proprio i filologi

Talvolta egrave difficile distinguere un testo letterario da un testo filologico percheacuteil testo ha entrambe le caratteristiche quindi la suddivisione della descrizioneche ora si faragrave con sezioni distinte egrave puramente semplificativa e una sezione nonesclude lrsquoaltra

131 La composizione di testi letterariIn un certo senso la composizione di testi letterari come romanzi saggi e simili egravepiugrave semplice di quelli tecnico-scientifici in realtagrave segue delle norme e convenzionidi stile compositivo un porsquo differenti grazie al fatto che la mancanza di numerosiinserti in display permette di essere piugrave rigidi per quel che riguarda la scelta deifont la giustezza e lrsquointera geometria della pagina questa rigidezza si riflettespecialmente sullrsquoavanzamento di riga che deve assolutamente essere costante ereplicarsi esattamente sul recto e sul verso dello stesso foglio

Se non occorrono altre strutture compositive di sezionamento gerarchico lageometria della pagina egrave piuttosto semplice e permette di usare le proporzionidella gabbia descritte nei capitoli 14 e 19 Tuttavia merita citare qui alcunesemplici classi preconfezionate che consentono di comporre testi letterari moltosemplici

Fra i pacchetti che offrono queste possibilitagrave non puograve essere trascurata laclasse octavo Questa semplice classe si basa sulla classe book ma ha dei formatidi carta dai nomi molto britannici (vedi la tabella 131) ed egrave prevista per la

257

258 TESTI LETTERARI E FILOLOGICI

Formato base per altezza Formato base per altezzafoolscalp 108mm times 171mm crown 127mm times 191mmpost 122mm times 194mm largepost 137mm times 210mmdemi 143mm times 222mm medium 146mm times 229mmroyal 159mm times 254mm superroyal 171mm times 267mmimperial 191mm times 279mm

Tabella 131 Formati britannici della pagina

composizione in ottavo proprio come dice il nome I margini sono prefissatie la gabbia egrave proporzionata al corpo normale Sono disponibili tutte le strut-ture compositive della classe book ma secondo lo scrivente questa classe egraveparticolarmente indicata per i testi letterari Si richiama anzi lrsquoattenzione sulformato largepost la cui altezza corrisponde al formato A5 mentre la larghezzaegrave un poco inferiore facendo un porsquo di attenzione e sfruttando adeguatamente leindicazioni della documentazione egrave possibile stampare nellrsquoordine giusto fronteretro quattro fogli A4 per poter disporre di un fascicoletto di 8 pagine e 16facciate che puograve costituire una piccola brochure giagrave da sola oppure puograve costituireuna segnatura in ottavo di un documento piugrave vasto Stampate tutte la segnatureanche su una normale stampante per formato A4 le segnature possono esserecucite in modo da formare un libretto completo che risulta di un formato unporsquo piugrave stretto del formato A5 quando si siano rifilati i margini esterni conuna taglierina cosigrave da rispettare le dimensioni secondo il disegno originario delformato largepost

Per avere disponibile anche il formato A5 non egrave difficile modificare la classe(dopo averle cambiato il nome per esempio in ottavo ) aggiungendo le tre righerelative a questo formato

mainmattertrue Opzione a5paperDeclareOptiona5paper

setlengthpaperheight210mmsetlengthpaperwidth1485mm

DeclareOptionfoolscap

Anche la classe layaureo che verragrave descritta meglio nel capitolo 14 funzionadavvero bene per la stampa di lavori letterari in formato A4 ma con la gabbiae i margini disposti rispettando in parte la proporzione aurea Naturalmentequesta classe serve anche per i documenti tecnico-scientifici ma sempre secondolo scrivente egrave molto indicata per i testi letterari

Nel capitolo 14 viene descritta anche la classe memoir sempre secondolo scrivente questa classe egrave la piugrave versatile specialmente dopo le aggiuntepresenti nella versione del 2008 usando bene le opzioni disponibili e i comandidi personalizzazione egrave abbastanza agevole disporre di una gabbia adatta al testoletterario con una scelta assolutamente libera per i font dei titolini correntiin modo da rispettare facilmente le indicazioni fornite nel testo [41] indicateprincipalmente per i testi letterari

Se perograve si vogliono scrivere testi letterari di tipo antologico con le righenumerate sia per le parti in prosa sia per quelle in poesia allora conviene riferirsi

131 LA COMPOSIZIONE DI TESTI LETTERARI 259

al pacchetto technica il cui nome almeno nella documentazione egrave scritto ingreco τεχνικα

Si tratta di un lavoro molto completo e di largo respiro consente di comporreil testo letterario puro e semplice quello relativo ai libretti teatrali il testopoetico gli esempi allegati alla documentazione riportano testi in latino italianogreco classico inglese francese spagnolo e tedesco cosigrave da mostrare anche lepossibilitagrave compositive in lingue diverse dallrsquoitaliano Per ogni esempio egrave indicatolo stile della casa editrice eo della collana che egrave stato riprodotto con una certa(ottima) approssimazione La cosa curiosa egrave che i comandi della classe sono tuttiin latino e lrsquoautore Gianfranco Boggio-Togna afferma che lrsquoutente puograve ancheusare i casi per i nomi latini in modo da non urtare la sensibilitagrave dei latinistiche cosigrave possono scrivere dei costrutti di comandi in latino (quasi) perfetto Illdquoquasirdquo egrave drsquoobbligo percheacute buona parte dei comandi si riferisce a comandi diformattazione che certamente non hanno equivalenti latini nemmeno cercandosul vocabolario ufficiale edito dalla Tipografia Vaticana1

Quello che puograve trovare un poco stupiti egrave che gli esempi greci non fanno usodei font di default di babel e nemmeno del nome greek per lrsquoopzione per lalingua greca lrsquoautore non dice che il suo pacchetto non sia adatto ad essereusato con i font di default e con la normale opzione greek ma lui usa sempreesempi con la lingua ibycus che a sua volta fa riferimento ad un altro font grecocon una codifica chiamata Beta Code Lrsquoaspetto dei singoli caratteri egrave moltosimile anche se non proprio identico ai caratteri mostrati nella tabella 1111tuttavia la scrittura con una tastiera latina prevede una corrispondenza dei tastileggermente diversa e quel che piugrave conta i segni diacritici sono tutti indicatiinvariabilmente dopo la lettera a cui si riferiscono (tranne per le maiuscole dovevanno indicati prima) e vengono ottenuti con tasti diversi da quelli che vengonousati con i font di default Percheacute questa differenza Percheacute i grecisti molto spessofanno riferimento al Theasurus Linguae Graecae in rete e questo Thesaurus ha isuoi testi scritti in Beta Code per il letterato egrave quindi molto agevole servirsidel metodo ldquocopia e incollardquo per riportare brani giagrave presenti sul Thesaurus eper i quali sia concesso di operare in questo modo Il letterato risparmia nonpoco tempo e fatica ma principalmente risparmia un gran numero di errori dibattitura

Per altro egrave curioso che il Beta Code preveda nel file sorgente solo simboliASCII (e fin qui va bene) ma tutte le lettere devono essere maiuscole nel filesorgente gli applicativi che consentono di leggere i file sorgente giagrave resi in letteregreche rendono tutte le lettere in minuscolo a meno che la maiuscola non siamarcata con un asterisco La codifica Beta Code di ibycus egrave molto piugrave semplicenel senso che le minuscole vengono scritte con lettere minuscole e le maiuscolevengono scritte direttamente con lettere maiuscole un file sorgente scritto inlettere latine sfruttando il Beta Code non appare a prima vista molto diversodallo stesso testo scritto in lettere latine con la codifica di default del font usato

1Non crsquoegrave niente di ironico in questo riferimento la lingua latina egrave quella ufficiale nelloStato della Cittagrave del Vaticano vi egrave anche una Commissione apposita per adattare il latinocon neologismi o locuzioni inedite necessarie per riferirsi a oggetti eo a situazioni della vitacontemporanea Ricordo che ldquoaereo a reazionerdquo egrave stato reso con la locuzione ldquoaereonavis inversavi propulsardquo mentre ldquoslot machinerdquo egrave stata resa con ldquomachina nummis operatardquo Tutto ciogravedeve apparire sul vocabolario ufficiale il quale deve anche venire aggiornato piuttosto spesso acausa della velocitagrave con cui si formano nuovi concetti nelle altre lingue moderne

260 TESTI LETTERARI E FILOLOGICI

ΕΠΤΑ ΕΠΙ ΘΗΒΑΣ

ΕΤΕΟΚΛΗΣ

Κάδμου πολῖται χρὴ λέγειν τὰ καίριαὅστις φυλάσσει πρᾶγος ἐν πρύμνῃ πόλεωςοἴακα νωμῶν βλέφαρα μὴ κοιμῶν ὕπνῳεἰ μὲν γὰρ εὖ πράξαιμεν αἰτία θεοῦ

εἰ δrsquo αὖθ΄ ὃ μὴ γένοιτο συμφορὰ τύχοι᾿Ετεοκλέης ἂν εἷς πολὺς κατὰ πτόλινὑμνοῖθrsquo ὑπrsquo ἀστῶν φροιμίοις πολυρρόθοιςοἰμώγμασὶν θrsquo ὧν Ζεὺς ἀλεξητήριοςἐπώνυμος γένοιτο Καδμείων πόλει

ὑμᾶς δὲ χρὴ νῦν καὶ τὸν ἐλλείποντrsquo ἔτιἥβης ἀκμαίας καὶ τὸν ἔξηβον χρόνῳ

ὥραν τrsquo ἔχονθrsquo ἕκαστον ὥστε συμπρεπέςβλαστημὸν ἀλδαίνοντα σώματος πολύν

πόλει τrsquo ἀρήγειν καὶ θεῶν ἐγχωρίωνβωμοῖσι τιμὰς μὴ rsquoξαλειφθῆναί ποτε

Figura 131 Breve estratto dellrsquoopera di Eschilo Sette contro Tebe

da babel tuttavia le due codifiche sono profondamente diverse e incompatibililrsquouna con lrsquoaltra

Percheacute allora il font greco di default non egrave stato fatto secondo la codificaBeta Code Ci sono almeno tre spiegazioni (a) i font CBgreek sono stati fattiestendendo un font giagrave presente negli archivi ctan che aveva giagrave una sua codificae questa codifica egrave stata mantenuta (b) la codifica del font preesistente erastata definita da Sylvio Levy uno scienziato di origine greca ndash nato in Brasile eora operante negli USA ndash che sapeva usare bene sia la tastiera greca sia quellalatina se un greco aveva scelto quella codifica aveva le sue buone ragioni e nonera certo Beccari che poteva arrogarsi il diritto di mettere a disposizione di unpubblico comprendente anche tutti i greci un font incompatibile con le abitudinidi diteggiatura sulla tastiera greca dove i diacritici hanno sempre la posizioneprefissa invece che postfissa come nel Beta Code (c) in rete egrave disponibile ilpacchetto bgreek che permette di usare i font di default con la notazione del filesorgente che segue le convenzioni Beta Code

Ciograve premesso il pacchetto technica va usato con la classe book anche se nemodifica tutte le impostazioni e aggiunge un numero enorme di estensioni nonpermette ancora di comporre una edizione critica ma ci va molto vicino

Nella figura 131 egrave rappresentato un breve brano in versi della tragedia diEschilo Sette contro Tebe il parlante Eteocle egrave riportato sul margine sinistro inmaiuscolo inclinato mentre i versi sono numerati con una numerazione che ad uncerto punto presenta i versi 12 e 13 scambiati rispetto al codice originale Si notiche lrsquoesempio della figura 131 egrave stato ricomposto con lrsquoopzione greek di babelspecificando lrsquoattributo polutoniko tanto per verificare se i font di default conla loro notazione dei diacritici ldquoprefissardquo invece che ldquopostfissardquo dessero qualche

132 FONT ADATTI AI TESTI CLASSICI 261

fastidio al pacchetto technica ma non si sono osservati difetti di sorta

132 Font adatti ai testi classiciFra i font usabili con il sistema TEX (in numero sterminato) pochi in veritagravecontengono le legature presenti nei testi classici a stampa secondo la tradizionedei secoli XVI e XVII Questi font contenevano sia la s lsquolungarsquo sia la s lsquocortarsquo laprima usata come s iniziale e mediale la seconda come s finale e come secondoelemento della doppia s ss minusrarr szlig Contenevano inoltre diverse legature peresempio nei nessi lsquoctrsquo e lsquostrsquo contenevano anche le legature aelig e œ assenti nellatino classico ma entrate in uso sia nei codici tardomedievali sia negli incunabolie nelle cinquecentine assieme allrsquouso della lsquoursquo minuscola per indicare sia la lsquoursquosia la lsquovrsquo e rsquoVrsquo maiuscola per indicare sia la rsquoUrsquo sia la rsquoVrsquo La maggior parte diqueste abitudini tipografiche cessarono verso la fine del Settecento a partire daiPaesi Bassi per poi estendersi al resto drsquoEuropa e nel resto del mondo

Desiderando comporre testi classici o antichi conservando lrsquoatmosfera dellacomposizione originale si possono usare font OpenType lsquoespertirsquo che contenganoanche le numerose legature A questo proposito conviene segnalare il lavoro diMassimiliano Dominici [12] che ha usato i font FellType per usare i quali hadovuto creare lrsquoinsieme di file di descrizione di questi font ricodificandoli inmodo da poterli usare con LATEX che non gestisce i font OpenType direttamenteanche i TrueType usati da Dominici si estendevano ben oltre i 256 caratterigestibili con LATEX

Probabilmente ne esistono altri ma qui si segnalano i font chiamati conla sigla Kp-fonts2 e richiamabili nei file da comporre con pdflatex mediante ilpacchetto kpfonts Secondo la descrizione che ne ha fatto lrsquoautore ChristopheCaingnaert [5] sono direttamente derivati dal font Palatino adeguatamentereinterpretati dando loro un asse ottico distintamente obliquo La proprietagrave diquesti font egrave che dispongono delle serie chiara media e nera il maiuscoletto veropuograve essere composto con lettere lsquominuscolersquo di dimensioni piccole o medie ilmaiuscoletto chiaro medio e nero puograve essere composto anche in forma inclinataesistono le varianti che contengono oppure escludono le legature lsquoctrsquo e lsquostrsquo e usanodi default la lsquoQrsquo a coda lunga oppure la lsquoQrsquo normale nello stile veryoldstylepossono usare anche altre legature sono presenti sia la s lunga sia la s corta sonocomponibili sia con la codifica OT1 sia con quella T1 dispongono delle cifrelsquominuscolersquo consentono la composizione della matematica in vari stili moderni eantichi utili anche per le edizioni critiche di testi matematici antichi Le possibilivarianti si ottengono con opportune opzioni esplicitate durante la chiamata delpacchetto kpfonts I simboli disponibili sono moltissimi molti di piugrave che nonunendo le collezioni dei simboli matematici di LATEX e quelli della AmericanMathematical Society Questi font sono quindi raccomandabili sia per i testiletterari sia per le edizioni critiche sia per testi moderni anche se contengonomolta matematica composti con una collezione di font molto completa forseuna delle piugrave ricche fra quelle distribuite con il sistema TEX

Nella figura 114 nella pagina 202 si vede lrsquouso di questi font sia con lo stilecompositivo oldstyle sia con lo stile veryoldstyle specificati come opzioni alpacchetto kpfonts

2Forse le lettere lsquokprsquo derivano dal nome di Kepler essendo stati sviluppati per il JohannesKepler project Non hanno invece nessuna relazione con i font Kepler della Adobe

262 TESTI LETTERARI E FILOLOGICI1

Font texturabcˇfghmdashklmnopqrltuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Font frakturabcdefghijklmnopqrĆuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Font schwabacherabcdefghijklmnopqrĆuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Capilettera

Figura 132 Alcuni alfabeti gotici che includono anche i capilettera ornati

133 La composizione del tedesco classicoFra le lingue classiche e moderne solo il tedesco egrave molto noto per usare i fontgotici decisamente diversi da quelli latini anche se le lettere semanticamentesono le stesse

Dalla prima Bibbia di Gutenberg alla fine della seconda guerra mondialeil gotico egrave stato spesso usato ma anche impropriamente come simbolo di unanazione Per il nazismo era stato lrsquoalfabeto caratterizzante quel regime

I modelli della scrittura a cui in italiano ci si riferisce con lrsquoaggettivo goticosono sostanzialmente tre (a) il textur usato da Gutenberg (b) il fraktur usatonei secoli piugrave recenti e (c) lo schwabacher usato come alfabeto elegante sempredi tipo gotico ma con le lettere piugrave rotondeggianti specialmente le maiuscoleNella figura 132 sono mostrati alcuni alfabeti gotici disponibili con il sistemaTEX

In realtagrave anticamente non crsquoera nessuna distinzione fra la lsquoirsquo e la lsquojrsquo nei fontmostrati nella figura 132 le due lettere minuscole sono leggermente differenziatementre le maiuscole sono rimaste identiche

Si noti che nelle distribuzioni di TEX Live recenti certamente nella distribu-

134 LA COMPOSIZIONE DI TESTI IN LINGUE CLASSICHE 263

zione del 2010 i tre font textur fraktur e schwabacher sono disponibili come fontvettoriali e sono giagrave disponibili come tali senza bisogno di ricorrere allrsquoinstallazio-ne delle loro mappe I font corrispondenti ai bellissimi e ornatissimi capiletterasono in forma bitmapped forse la loro delicata e fitta ornamentazione impedisceloro di venire trasformati in font vettoriali ma nelle prove fatte su carta non sinota nessun difetto tipico dei font bitmapped anche sullo schermo si presentanomolto bene

Per fare uso di questi font basta impiegare il pacchetto mfnfss che defi-nisce i comandi usuali gothfamily e textgoth per selezionare il font tex-tur frakfamily e textfrak per selezionare il font fraktur swabfamily etextswab per selezionare il font schwabacher Per selezionare il font dei capilet-tera il file di documentazione suggerisce una macro che contemporaneamentesceglie il font e lo compone ribassato Qui la si riporta adeguatamente ldquocorrettardquovisto che come egrave riportata nella documentazione fa riferimento ad una macronon descritta

newcommandyinitial[1]hangindent=254cmhangafter=-4hskip-324cmlower-27mmhboxfontencodingUfontfamilyyinitselectfont 1hskip15mm

dove le misure indicate possono essere ritoccate a discrezione dellrsquoutenteI caratteri contengono le necessarie legature antiche e per le umlaut consentono

di usare sia il doppio apice (a produce auml) sia lrsquoasterisco (a produce una lsquoarsquosovrastata da una minuscola lsquoersquo) queste seconde legature sono specificamentedescritte per lo schwabacher

In sostanza se si dovesse riprodurre una pagina della Bibbia di Gutenberglo si potrebbe fare in modo quasi identico compresi i capilettera anche se questihanno un disegno di un paio di secoli successivi a quelli usati da Gutembergstesso

134 La composizione di testi in lingue classicheIn questo breve paragrafo si accenna alla scrittura in latino e in greco che siritiene che siano le lingue classiche piugrave diffuse fra gli umanisti italiani Non siscende nei dettagli di che cosa sia necessario fare con scritture molto particolarisi segnala solo che fra i font del sistema TEX compare anche il Lineare A peresempio al fine di riportare testi molto antichi

1341 Scrivere in latinoScrivere in latino non richiede altro che specificare lrsquoopzione latin a babeltuttavia se si desidera estendere la funzionalitagrave alla marcatura della lunghezzadelle sillabe bisogno provvedere alla specificazione dellrsquoattributo della lingua

usepackage[latin]babel

264 TESTI LETTERARI E FILOLOGICI

languageattributelatinwithprosodicmarks

Un altro attributo che si puograve specificare egrave quello relativo allrsquoortografia medievale

usepackage[latin]babellanguageattributelatinmedieval

La differenza egrave che in lettere minuscole le lettere lsquoursquo e lsquovrsquo si scrivono entrambelsquoursquo mentre in lettere maiuscole esse vengono scritte entrambe lsquoVrsquo Di per seacute nonsarebbe un problema per il tastierista a scriverle come appena detto ma quandoci sono delle trasformazioni automatiche in minuscolo o in maiuscolo i comandiMakeUppercase e MakeLowercase devono operare correttamente anche conlrsquoortografia medievale

Una cosa che va osservata attentamente egrave che la divisione in sillabe sia conlrsquoortografia moderna sia con quella medievale funziona bene in modo foneticobuona parte dei suffissi e dei prefissi sono riconosciuti correttamente in mododa dividerli etimologicamente ma lrsquoinsieme di pattern per la sillabazione latinanon garantisce una divisione corretta in ogni caso Per questo diventa particolar-mente importante lrsquouso del carattere attivo che introduce un punto di cesurafacoltativo senza impedire la divisione del resto della parola Si scriveragrave pertantotransierat per consentire la divisione dopo la lsquoirsquo senza impedirla negli altripunti leciti

Le date vengono composte con il calendario gregoriano ma i numeri relativiai giorni e agli anni vengono scritti con la numerazione romana sottrattiva inmaiuscoletto il numero dei giorni in maiuscolo quello degli anni Un tentativodi trasformare la data gregoriana in una data ldquoab urbe conditardquo non ha avutoseguito (per ora)

1342 Scrivere in grecoSi egrave giagrave detto molto sia in questo capitolo sia nel paragrafo 11822 Non siripeteranno quelle cose qui ma si sottolinea lrsquouso opportuno e consigliabiledel pacchetto teubner nella versione 3x Infatti in questa versione sono statiaumentati molto i comandi per gestire le varie forme dei font greci (CBgreek)tenendo conto che in un testo letterario o filologico verosimilmente si passaattraverso unrsquoalternanza di testo in lingua greca con altro testo in una linguaoccidentale

La gestione dei segni diacritici egrave anche molto migliorata e permette di evitaredi usare le decine di macro strane per comporre i caratteri marcati con i lorodiacritici senza ricorrere al meccanismo delle legature questo si rende necessariospecialmente quando si usa il font Lipsiano i cui segni hanno disegni dalle formedelicate che richiedono crenature accurate

Quando il testo greco egrave abbondante sarebbe desiderabile che lrsquoumanistadisponesse di una tastiera bilingue oppure di comodi mezzi software per disporredi una tastiera virtuale su cui comporre il testo greco In queste condizioni illsquotastieristarsquo puograve comporre direttamente in greco senza doversi ricordare nessunacorrispondenza fra la tastiera con caratteri latini e quella con i caratteri greciPerograve necessita dellrsquoopzione utf8x per la codifica di entrata questa particolare

135 LA COMPOSIZIONE DI TESTI FILOLOGICI 265

opzione permette di tradurre i segni greci UNICODE che appaiono sullo schermoquando si compone il file sorgente nei corrispondenti comandi interni che pdflatexusa e che solo in fase di scrittura del file di uscita trasforma nei caratteri presentipoi per il font specificato con la codifica di uscita si veda anche lrsquoappendice D

Per il greco esistono almeno tre metodi di divisione in sillabe corrispondentialle tre ortografie o varietagrave della lingua la sillabazione per lrsquoortografia monotonicaquella per lrsquoortografia politonica moderna e quella per lrsquoortografia politonicaantica Si tenga presente che di default le impostazioni per la sillabazione grecacon qualunque ortografia prevede una lunghezza minima della prima e dellrsquoultimasillaba di qualunque parola formata da una sola lettera quando in italiano essedevono essere di almeno due lettere e nelle altre lingue occidentali con molteparole che finiscono in consonante la prima sillaba deve essere di almeno duelettere e lrsquoultima sillaba di almeno tre lettere Queste vistose differenze fannosigrave che la prosa normale possa avere capoversi che terminano con un righinocontenente una sola lettera tipograficamente molto brutto LATEX pone unafortissima penalitagrave alla cesura nella penultima riga di un capoverso ma questonon impedisce che possa verificarsi quellrsquoevento

I vari esempi di testo greco classico scritti in questa guida sono stati tutticomposti usando il pacchetto teubner e lrsquoattributo polutoniko e senza avvalersidi una tastiera greca neacute della codifica utf8x A questo proposito visto che oggi glielaboratori con schermo touch screen diventano sempre piugrave diffusi disponendodi un tale dispositivo non egrave impossibile scrivere direttamente in greco toccandolo schermo in corrispondenza dei tasti virtuali corrispondenti alla tastiera grecabasta aver installato il driver della tastiera greca ed aver toccato la sua iconanella barra opportuna dello schermo Ecco allora che i sistemi touch screen chelo scrivente considera validi solo per certi usi che nulla hanno a che far con lacomposizione dei testi diventano utili proprio a questo scopo quando si debbanousare alfabeti diversi o disposizioni diverse dei tasti

Va poi sottolineato che per scrivere agevolmente con alfabeti diversi daquello latino egrave utile (o necessaria) una tastiera apposita come detto sopra madiventa utilissimo anche usare il programma di composizione xelatex e il mark-upX ELATEX come giagrave spiegato questo programma consente di usare la codificaUNICODE e di gestire direttamente i font OpenType cosiccheacute la scelta dei fontlatini greci cirillici eccetera non egrave piugrave legata a quanto offre di default il sistemaTEX ma si estende alla moltitudine di font che formano la dotazione del sistemaoperativo della macchina che si sta usando Esso apre le porte allrsquoimpiego diqualsiasi font commerciale gratuito o a pagamento senza bisogno di ricorrerealle procedure di installazione necessarie con pdfLATEX che per altro non puogravegestire direttamente i font OpentType Per il resto il programma di composizionexelatex ha un mark-up che differisce da quello di LATEX solo per qualche dettaglioriguardante la gestione dei font ma per il resto un file sorgente concepito peressere elaborato con pdfLATEX spessissimo viene compilato senza modificheanche da X ELATEX

135 La composizione di testi filologiciLa pubblicazione di scritti filologici include le edizioni critiche e include scrittiin prosa o in versi in lingue scritte non necessariamente in caratteri latini Essisono scritti letterari ma in piugrave richiedono diversi apparati critici formati da

266 TESTI LETTERARI E FILOLOGICI

annotazioni composte in varie maniere Questi apparati di note spesso compaionoassieme nella stessa pagina ma devono venire distinti in modo inequivocabile gliuni dagli altri e chiaramente non basta solo un filetto orizzontale per distinguerli

Serve anche una numerazione delle singole righe sia per i testi in prosa siaper quelli in poesia generalmente i numeri sono nel margine esterno e sonoesplicitati quelli multipli di 5 le note invece che legate a richiami come numerinia esponente possono essere legate al numero di riga per cui nel richiamo bisognaripetere una breve sequenza di testo a cui la nota si riferisce

Chiaramente LATEX non egrave in grado da solo di svolgere questi compiti e bisognaricorrere a pacchetti di estensione

Il piugrave noto pacchetto di estensione si chiama ledmac ed egrave in grado di comporreogni aspetto delle edizioni critiche esso egrave documentato in doclatexledmacledmacdvi

Lrsquoautore Peter Wilson ha cercato con ledmac di implementare le capacitagravesviluppate dai pacchetti di macro per Plain TEX edmac tabmac e edstanzaaggiungendovi del suo

Esso egrave particolarmente indicato per le edizioni critiche e il suo forte sono lenumerazioni marginali e gli apparati di note sia a piegrave di pagina sia come notefinali a fine capitolo o a fine documento Egrave possibile legare le note finali al numerodi pagina e di riga invece che a richiami numerici ad esponente Anche per quelche riguarda lrsquoindice analitico egrave possibile fare riferimento anche al numero diriga invece che solamente alla pagina

Altri pacchetti per edizioni critiche sono endnotes specializzato nelle notefinali e poemscol destinato alle forme poetiche ai testi in versi

Va per esempio citato il pacchetto di estensione opcit che dispone di un suoparticolare file di stile per la composizione della bibliografia con BIBTEX il pac-chetto consente di scrivere i riferimenti bibliografici in nota invece che in elencoa fine capitolo o a fine documento le citazioni successive alla prima vengonoripetute in forma abbreviata nella forma ldquoAutore op citrdquo se la precedentecitazione corrisponde alla stessa opera il comando di citazione riporta solamenteldquoIbidem p 33rdquo (dove lrsquoindicazione della pagina la post-citazione costituisce lrsquoar-gomento facoltativo del comando cite) Sono possibili diverse personalizzazionicosigrave che gli umanisti possano continuare ad usare il loro metodo tradizionale dicitazione in nota Lrsquouso di LATEX e dei suoi pacchetti assicura lrsquoaspetto omogeneodelle citazioni in modo da garantire la massima professionalitagrave compositiva Ladocumentazione del pacchetto si trova in doclatexopcitopcitpdf

Quando si va nella filologia vera e propria le cose si possono fare molto dureanche percheacute i filologi delle varie discipline hanno notazioni diverse per renderegli stessi concetti

Chi scrive ha collaborato con un filologo di greco classico e con un filologodi lingua copta altomedievale ovviamente i due filologi non erano drsquoaccordosu come esprimere i concetti comuni alle due lingue questa non egrave una criticama una osservazione anchrsquoio che scrivo usando molta matematica ho dovutoarrangiarmi con i simboli disponibili percheacute certi concetti che dovevo esprimeremalgrado le norme ISO non avevano un simbolo specifico cosigrave alla fine hodovuto usare simboli che in altre branche della matematica hanno significatidiversi Succede in ogni scienza e anche allrsquointerno della stessa scienza

Per quanto concerne il greco classico come giagrave detto esiste il pacchettoteubner scaricabile dalla rete e abbastanza ben documentato mediante il filedoclatexteubnerteubner-docpdf

135 LA COMPOSIZIONE DI TESTI FILOLOGICI 267

Con la pubblicazione della versione 3x del pacchetto teubner egrave disponibileuna nuova funzionalitagrave oltre a macro per gli accenti che rendono inutile il ricorsoa quel centinaio di macro per accedere per nome ai caratteri accentati inveceche con le comode legature permette di far convivere i font con codifica LGRvirtualmente con tutti i font disponibili sullrsquoelaboratore che si sta usando Giagravela versione 29 era compatibile sia con i fonte CM EC e CM-super sia con ifont Latin Modern tutti con la codifica T1 Con la versione 3x il pacchettoriconosce da solo se si stanno usando i font Times o Palatino eXtended e si creada solo i necessari file di descrizione dei font necessari per questa convivenza Ilpacchetto mette a disposizione anche il comando ifFamily che crea le necessarieassociazioni anche con famiglie di font diverse da quelli sopra menzionati

Per esempio se si volessero usare in font Helvetica come font latini propor-zionali senza grazie allora basterebbe dare i seguenti comandi

renewcommandsffamilyphv Font latini senza grazieifFamilyphvcmss Font greci senza grazie

In questo modo teubner genera i file di descrizione dei font che sostituiscono agliinesistenti Helvetica codificati con la codifica LMR i font greci della collezioneCBgreek con la codifica giusta certo i segni grafici sono diversi ma se egrave possibile isegni greci sono meno vistosi e ingombranti dei segni lineari con lo stile HelveticaNessuno vieta poi di usare X ELATEX come mostrato alla fine di questo capitolocosigrave da evitare le piccole acrobazie necessarie per poter usare il programmapdflatex che non egrave in grado di gestire da solo i font codificati in UNICODE

Il pacchetto consente di accentare ogni lettera con qualsiasi segno diacriticopersino con accenti impilati collocandoli correttamente tenendo conto dellrsquoin-clinazione dei caratteri Esso puograve inserire segni speciali sopra o sotto singolelettere o gruppi di lettere puograve racchiudere gruppi di lettere con delimitatorispeciali per indicare la lectio incerta o altre simili indicazioni per interpolazionio omissioni puograve numerare i versi di poemi anche con due serie di numerazionicontemporaneamente puograve disegnare le metre dei vari versi con una notevolericchezza di segni che consentono anche di specificare per esempio se una sillabaancipite egrave piugrave sovente lunga invece che breve eccetera

Va detto che Gianfranco Boggio-Togna ha prodotto anche il pacchetto metreche svolge alcune funzioni svolte dal pacchetto teubner I due pacchetti differi-scono per la loro estensione ma anche quando si tratta delle metre le notazioniritmiche dei versi per come sono prodotti i simboli da usare teubner usa unfont particolarmente disegnato allo scopo mentre metre usa segni costruiticomponendoli con i simboli dei vari font giagrave disponibili per esempio usandosimboli tratti dalle polizze per la matematica

Per quanto concerne il copto oltre ai font necessari per scrivere con i caratterialtomedievali crsquoegrave una certa varietagrave di simboli e segni che permettono di annotareil testo antico si puograve scaricare il tutto da ctanlanguagecopticcopticzipIl file README contenuto nel file compresso spiega come decomprimere il pacchettoe dove sistemare ogni componente del pacchetto per altro con le distribuzionirecenti di TEX Live anche il pacchetto coptic egrave giagrave preinstallato

Certamente esistono altri pacchetti in rete destinati a risolvere problemispecifici di composizione filologica tuttavia ogni lavoro di filologia richiede lapredisposizione di comandi particolari per problemi particolari lo scrivente egraveal corrente che da alcuni anni a Pisa si sta costruendo lrsquoedizione critica delleopere del matematico Maurolico sono giagrave disponibili diverse parti ma lrsquoopera

268 TESTI LETTERARI E FILOLOGICI

non egrave finita si capisce bene che nonostante il Maurolico scrivesse in latinoegli scriveva di matematica e di geometria quando le convenzioni a cui siamooggi abituati non esistevano ancora non parliamo delle norme ISO I curatoridi questa edizione critica stanno lavorando con passione ma devono inventarsisoluzioni nuove per problemi di composizione che finora non sono mai statiaffrontati meno che mai risolti

In Italia oltre che a Pisa si egrave al corrente che anche alla Pontificia Universitagravedi Santa Croce di Roma crsquoegrave un gruppo di utenti che si occupa di filologia e diedizioni critiche Essi hanno anche predisposto un corso e un CD-ROM per gliutenti del corso

136 Un esempio di composizione con X ELATEXSi vuole qui presentare un breve esempio di composizione in greco classicopolitonico facendo uso del programma xelatex Si presenta dapprima il filesorgente e dopo qualche commento il risultato della composizione

Dividiamo lrsquoempio in due parti (a) lrsquoesempio vero e proprio e (b) alcunicommenti in merito alla selezione dei font

Unrsquoutile introduzione a X ELATEX scritta in modo relativamente semplice egravecostituita dal testo di Enrico Gregorio [21] permette di verificare e di approfon-dire molti degli argomenti esposti qui e di studiarne diversi altri Esiste ancheun manuale iniziale e piugrave o meno ufficiale di X ETEX [18] che perograve deve essereancora considerato sperimentale almeno non cosigrave approfondito come gli altrimanuali della serie ldquoThe [ ] Companionrdquo Unrsquoaltra breve guida per X ETEX egravestata predisposta da Will Robertson [40] uno dei collaboratori piugrave importantialla squadra che si occupa della diffusione di questo programma

1361 Esempio di composizione in grecoIl file sorgente egrave stato predisposto con lo shell editor TEXShop su una piattaformaMac nella quale era installato anche il driver per la tastiera greca politonica leparti in greco sono state scritte direttamente usando la tastiera greca

Il prologo egrave il seguente

TEX encoding = UTF-8 UnicodeTEX TS-program = xelatex

documentclass[b5paper11pttitlepage]book

setmainfont[Ligatures=TeXNumbers=OldStyle]TeX Gyre Bonumsetsansfont[Ligatures=TeXScale=MatchUppercase]Futura

newfontfamilygreekfontOld Standard

Scelta delle lingue

usepackagepolyglossiasetmainlanguageitaliansetotherlanguage[variant=ancient]greek

136 UN ESEMPIO DI COMPOSIZIONE CON X ELATEX 269

begindocument

Le prime due righe del file specificano a TEXShop lrsquoencoding con cui egrave statoscritto il file sorgente e il nome del programma con il quale cliccando il pulsanteTypeset egli deve agire indipendentemente dalle impostazioni predefinite Nonsi insisteragrave mai abbastanza sulla comoditagrave ed opportunitagrave della presenza delle duerighe suddette TEXShop e TeXworks interpretano queste righe ed eventualmentemodificano temporaneamente le proprie impostazioni gli altri editor possonomancare di questa funzionalitagrave o possono averla ma con una sintassi diversaLa persona che ricevesse questo file da altri vedrebbe subito non appena apre ilfile se eventualmente deve riconfigurare il suo shell editor per poter comporre ildocumento

Le tre righe dopo la dichiarazione di classe (che egrave del tutto normale) specificanoil modo di dichiarare i font Opentype da usare nel documento Per il testo incaratteri latini si usa un facsimile del font Bookman attraverso il font dellacollezione TEX Gyre giagrave presenti nella distribuzione del sistema TEX Le opzionichiedono di usare le legature standard del sistema TEX (comprese per esempiolsquolsquo e rsquorsquo e le lineette medie e lunghe) e chiedono di usare le cifre arabe minuscole(old style)

Il secondo font Futura viene usato solo per i caratteri senza grazie lrsquoopzioneserve per scalarlo un pochino affincheacute le sue lettere minuscole senza ascendenti ediscendenti abbiano la stessa grandezza di quelle del font con grazie Il terzo fontOld Standard di per seacute potrebbe essere usato anche come ldquomainfontrdquo percheacutecontiene i caratteri latini greci e cirillici oltre a una quantitagrave di altri segni maqui lo si definisce solo come famiglia di caratteri da assegnare alla composizioneper la lingua greca poicheacute il suo nome greekfont comincia con il nome dellalingua esso viene usato automaticamente come font di default quando si scrive inquella lingua Lo stesso espediente puograve essere usato per differenziare con la formao lo stile del font la lingua in cui si sta scrivendo per esempio si potrebberovoler usare i caratteri fraktur per comporre in tedesco brani di periodi storici incui quella tipologia di font era normalmente usata per quella lingua

Seguono poi i tre comandi per la scelta delle lingue il pacchetto polyglossiasostituisce babel in realtagrave xelatex accetta anche di usare il pacchetto babel eil suo modo di specificare le lingue ma egrave preferibile usare polyglossia percheacute egravegiagrave costruito per lavorare con xelatex e inoltre usa giagrave i caratteri UNICODE perspecificare i nomi infissi nei comandi di sezionamento e negli altri comandi chegenerano anche del testo in lingua Inoltre egrave chiaro qual egrave la lingua di default illdquomainlanguagerdquo e quali sono le lingue accessorie qui in particolare si specifica ilgreco e gli si specifica anche una opzione e cioegrave che si tratta della variante delgreco antico

Come si vede il preambolo egrave piuttosto semplice (oltre che esuberante per ilpiccolo esempio che si sta mostrando)

Il corpo del documento contiene le righe contenute nel medaglione dellafigura 133Lanciando xelatex su questo piccolo file sorgente si ottiene il risultatomostrato nella figura 134

Come si vede chiaramente il font TEX Gyre Bonum propone dei caratterimolto scuri mentre il greco tratto dal font Old Standard egrave della serie media chesi accorderebbe benissimo con i font Latin Modern usati in questo testo Lrsquoac-coppiata egrave quindi infelice ma la si egrave mostrata lo stesso per indicare nellrsquoesempioquali generi di font si possono usare con il programma xelatex

270 TESTI LETTERARI E FILOLOGICI

Figura 133 Completamento del file sorgente

1362 X ELATEX i font Opentype e i font Type 1Nel paragrafo precedente abbiamo visto come specificare i font per il testo comescegliere diversamente i font per una diversa famiglia (sans serif rispetto ai fontcon grazie) o per una lingua diversa Quel modo di specificare i font vale ancheper i font TreueType se contengono le tabelle con le specificazioni delle varianticome gli OpenType Secondo gli standard e lrsquouso corrente I font Type 1 hannosolo 256 caratteri per polizza senza varianti e hanno i contorni dei vari segnidescritti mediante spline di Beacutezier di terzo grado I font TrueType hanoo polizzecon un numero di segni non limitati a 256 ma possono rispettare le specificheUNICODE hanno i contorni dei segni descritti da spline di secondo grado

Talvolta potrebbe essere necessario specificare lrsquouso di font Type 1 di questibosogna specificare la codifica e chiamarli con il loro nome vero non quello cheusa pdflatex questi nomi sono indicati nel file pdftexmap come seconda vocedi ogni riga bisogna stare attenti che possono essere costituiti da diverse parolePer esempio se un desiderasse usare i font URW Avant Garde Light Book lariga corrispondente nel file pdftexmap serabbe

pagk8r URWGothicL-Book TeXBase1Encoding ReEncodeFont lt8rencltuagk8apfb

dove pagk8r egrave il nome del file pagk8rpfb che contiene i disegni dei segni diquesto particolare font a cui si riferisce il file pagfd di descrizione dei fontinvocato in definitiva dal pacchetto avant Questo font Type 1 deve esserericodificato percheacute nativamente non ha la codifica T1 ecco percheacute la riga del filepdftexmap egrave cosigrave relativamente complessa Per il nostro caso quello che importaegrave il nome vero del font da dedurre del nome compresso URWGothicL-Book ilnome completo egrave URW Gothic L e questo bisogna usare nei comandi accettatidal programma xelatex

136 UN ESEMPIO DI COMPOSIZIONE CON X ELATEX 271

Figura 134 Risultato della composizione con X ELATEX

272 TESTI LETTERARI E FILOLOGICI

In particolare bisogna assicurare che xelatex conosca lrsquoencoding T1 e chesappia cercare correttamente lo stesso file di descrizione die fonnt che userebbepdflatex Per far questo bisogn specificare attentamente nella giusta successione icomandi seguenti

usepackage[T1]fontencusepackagefontspecrenewcommandsfdefaultpagusepackageetoolboxcspretosffamily fontencodingT1

dove

usepackage[T1]fontencrenewcommandsfdefaultpag

sono gli stessi comandi che si darebbero a pdflatex ma dop il primo lrsquoencodingdi default sarebbe lrsquoencoding T1 se non si specificasse la chiamata a fontspecnon si potrebbero usare i font OpenType per cui egrave necessario chiamare questopacchetto ma a questo punto lrsquoencoding di default diventerebbe quello dei fontOpenType cioegrave la codifica UNICODE EU1 Allora bisogna caricare il pacchettoetoolbox che mette a disposizione lrsquoultimo comando cspreto che permette diassociare lrsquoencoding T1 al font specificato per la famiglia senza grazie tramitecomando sfdefault

Sembra complicato e forse la spiegazione lo egrave davvero ma in fondo si trattasolo di aggiungere due righe nellrsquoordine giusto a quelle che andrebbero comunquespecificate per usare sia i font OpenType in generale sia i font Type 1 particolariche si desiderano

137 ConclusioneSulla composizione di testi letterari e filologici ci sarebbe da scrivere molto dipiugrave di quanto si egrave esposto in questo capitolo tutto sommato introduttivo nelvastissimo territorio della composizione di questo tipo di documenti

Si sono indicati pacchetti e programmi di composizione che possono aiutaremolto lrsquoumanista nel procedere lungo questo particolare sentiero di composizionetipografica I pochi esempi mostrati indicano moltissime possibilitagrave di azioneSta dunque allrsquoumanista che tanto cura i suoi studi a curare anche lrsquoaspettocompositivo dei suoi lavori I programmi pdflatex e xelatex gli offrono deglistrumenti potentissimi di composizione gli resta quindi il compito di usarli apiena potenza

Capitolo 14

LATEXi vari tipi di documentie stili di composizione

141 IntroduzioneI file di classe che servono per definire i parametri compositivi del particolaredocumento che si intende comporre sono il cuore di LATEX e sono proprio loroche interpretano il mark-up di LATEX per eseguire la composizione in accordocon questo mark-up

142 Classi standardLATEX viene distribuito con una piccola dotazione di file di classe abbastanzagenerici da poter affrontare la composizione di qualunque documento tuttaviaquesta genericitagrave ha favorito lo sviluppo di classi particolari di cui si diragravebrevemente nei prossimi paragrafi

book egrave la classe con cui egrave stato composto questo testo Essa prevede di usare didefault tutte le strutture di sezionamento da chapter fino alla piugrave minutasuddivisione del testo costituita da subparagraph prevede la composi-zione sul recto e sul verso dei fogli prevede la pagina contenente il titolocome pagina a seacute stante il disegno grafico prevede uno spostamento dellagabbia verso il margine interno le testatine contengono il titolo correntee il numero della pagina il titolo corrente egrave scritto in caratteri maiuscoliinclinati il documento puograve essere suddiviso in materiale iniziale corpodel testo e materiale finale con caratteristiche compositive adeguatamentediverse eccetera

report egrave la classe con cui si scrivono i rapporti lsquotecnicirsquo testi relativamentebrevi di solito non superiori ad una cinquantina di pagine con il titolofacente parte della prima pagina dove comincia anche il testo di defaultsono composti sul recto delle pagine per cui la gabbia del testo egrave centrataNon prevede la definizione dei comandi frontmatter mainmatter e

273

274 CLASSI ED ESTENSIONI

backmatter percheacute un rapporto non egrave cosigrave strutturato come un libro maper il resto la classe assomiglia abbastanza alla classe book

article egrave la classe con cui vengono composti brevi articoli di solito di lun-ghezza non superiore alla decina di pagine con il titolo sulla stessa paginadove comincia il testo spesso sono scritti su due colonne hanno esplici-tamente lrsquoambiente abstract per redigere un breve sunto del contenutonon egrave definito il comando chapter anche se continua ad essere definitoil comando part nessuno vieta di dividere un articolo in parti ma lastruttura di sezionamento piugrave alta egrave section spesso gli articoli sonosenza indice generale neacute indice analitico ma dispongono quasi sempre diuna bibliografia

letter serve per comporre lettere commerciali lo stile egrave molto americano manon egrave cosigrave difficile personalizzarlo per conformarsi allo stile italiano dellelettere commerciali consente volendo di scrivere lettere con il medesimotesto ad una moltitudine di destinatari cosigrave come consente di scriverediverse lettere a destinatari diversi inserendole nello stesso file sorgente

ltnews serve per comporre una semplice newsletter di solito di una sola paginacomposta su due colonne

ltxdoc serve per comporre la documentazione dei file sorgente dei pacchettiche vengono distribuiti questi file sorgente contengono simultaneamente ladocumentazione e il codice e possono servire per produrre diverse classi eofile di estensione il loro formato egrave molto particolare ma sono preziosi per iprogrammatori per poter scrivere dei programmi in linguaggio TEX o LATEXin una forma ben documentata senza che questi commenti disturbino illavoro del motore TEX quando deve comporre un documento

ltxguide serve per comporre le guide di documentazione dei vari aspetti diLATEX si tratta delle guide incluse in ogni distribuzione e si trovano gene-ralmente nella cartella doclatexbase queste guide sono la fonteprincipale di informazione che lrsquoutente dovrebbe consultare e lsquoconoscere amemoriarsquo

minimal egrave una classe minima fatta apposta per avere una classe che garantisca ilminimo di performance essenzialmente pensata per collaudare la definizionedi nuovi comandi o lo sviluppo e le prestazioni di nuovi pacchetti diestensione quando il programmatore li sta costruendo

proc egrave una classe simile ad article che serve per produrre degli articoli secondouno stile da proceedings (atti di una conferenza)

slides serve per predisporre dei lucidi di presentazione di un discorso o diuna conferenza In realtagrave una volta si usavano le lavagne luminose oggisi usano i videoproiettori con questi ultimi non si producono lucidi ma siproietta direttamente dal calcolatore le prestazioni di slides sono adatteproprio ai lucidi su fogli di metacrilato Per le presentazioni oggi si possonousare diversi programmi ma restando in ambito LATEX esistono delleclassi come beamer ottenuta con il pacchetto beamer che produconodelle presentazioni a colori bellissime con animazioni finalizzate alla pre-sentazione e con la qualitagrave della composizione della matematica e della

143 LA CREAZIONE DI NUOVE CLASSI 275

gestioneimportazione di immagini efficaci come quelle che solo LATEX puograveoffrire

143 La creazione di nuove classiLrsquoutente puograve crearsi nuove classi con due approcci (in veritagrave non mutuamenteesclusivi) molto semplici (a) modificare le prestazioni di una classe esistente e(b) creare una classe ex novo

Il primo approccio egrave decisamente il piugrave semplice ed egrave affrontabile da chiunqueil file clsguide che si trova nella solita cartella doclatexbase contienele indicazioni per seguire questa via e presenta non pochi esempi

Il secondo approccio egrave decisamente molto piugrave complesso ma consente unapersonalizzazione maggiore A questo proposito puograve essere interessante legge-re la documentazione relativa alla classe octavo in doclatexoctavooctavopdf Questa classe egrave un rifacimento della classe book dove perograve sonostate fatte scelte particolari sia nel dimensionamento della gabbia e delle altreinformazioni lsquogeometrichersquo per la composizione ma sono stati anche ridefinitinumerosi comandi per ottenere risultati particolari usando la classe octavo alposto della classe book il compositore non deve imparare nessun comando nuovoal massimo deve familiarizzarsi con le nuove opzioni per il formato della cartache si riferiscono alla terminologia tradizionale britannica Se nel preambolo diun documento da comporre con la classe book si sostituisce la parola book conla parola octavo la composizione risulta assai simile salvo la giustezza e ladensitagrave delle righe che risultano perfettamente adattate al corpo dei caratteriusati ma se si specifica qualche opzione scelta fra quelle nuove lrsquoaspetto dellacomposizione cambia in modo abbastanza significativo La documentazione egravemolto istruttiva e spiega sia i motivi delle scelte fatte sia come queste sianostate rese nel linguaggio di programmazione di TEX il compositore che vuolecimentarsi nella creazione di nuove classi ha molto da imparare dalla lettura diquesta documentazione

Una via di mezzo egrave quella di utilizzare classi non standard ma fortementepersonalizzabili come si vedragrave nel prossimo paragrafo

Infine la via maestra egrave quella di non creare nessuna classe nuova a menoche non sia fortemente indispensabile Esistono infiniti pacchetti di estensioneper modificare le prestazioni delle classi esistenti qui se ne citeranno solamentealcuni quelli piugrave usati e considerati piugrave utili

fancyhdr serve per personalizzare le testatine ed i piedini di ognuno si puogravepersonalizzare quello che compare nella pagina di sinistra oppure nellapagina di destra di ognuno si puograve specificare che cosa scrivere nel centroa sinistra oppure a destra cosigrave da avere sei posizioni in ogni pagina perinserire informazioni che in definitiva aiutano a navigare nel testo e quindisono particolarmente indicate nei documenti molto strutturati Mentre letestatine lsquoordinariersquo per esempio della classe book oltre al numero dellapagina possono contenere solo il titolo (corto) del capitolo o del paragrafocorrenti con fancyhdr si riesce anche a inserire informazioni di terzo livelloper esempio il titolo dei sottoparagrafi

caption e ccaption servono per personalizzare la composizione delle didascalie

276 CLASSI ED ESTENSIONI

geometry serve per personalizzare il layout della pagina la sua geometriasecondo schemi tradizionali o moderni sempre parametrizzati in modo daessere completamente liberi nella definizione dei margini dei contrografismifra testatina o piedino e il corpo della pagina per scegliere la giustezzain modo da avere il numero (medio) ottimale di caratteri in ogni riga inrelazione al font usato e al suo corpo lsquonormalersquo Sotto molti aspetti questopacchetto agisce come typearea ma egrave decisamente piugrave agile e consente dipersonalizzare in modo piugrave esteso

Ovviamente questi pacchetti sono utili anche nel creare nuove classi percheacute bastacaricarli allrsquoinizio della nuova classe specificando loro i parametri desiderati cosigraveche spesso la creazione di una nuova classe si riduce veramente a poco

144 Alcune classi non standard

Il sistema TEX viene distribuito con una enorme quantitagrave di file aggiuntivicompresi i file di classe che alcuni autori hanno predisposto e messo a disposizionedegli utenti

1441 Le classi Komascript

Markus Kohm (da cui il prefisso lsquoKomarsquo) ha messo a disposizione le quattroclassi fondamentali per la composizione di libri rapporti articoli e lettere rispet-tivamente scrbook scrreprt scrartcl e scrlettr (recentemente sostituitada scrlttr2) Le caratteristiche e i comandi disponibili sono reperibili nelladocumentazione del pacchetto koma-script

Ma la componente di questo pacchetto certamente piugrave utile egrave il pacchettotypearea richiamabile esplicitamente dai file di classe che permette di disegnarsia proprio piacimento la griglia di scrittura secondo i criteri piugrave diffusi il pacchettotypearea egrave richiamabile anche da altri file di classe non egrave una esclusiva dei filedi classe di Markus Kohm

In questa collezione di classi la classe scrlttr2 egrave molto interessante percheacutedescrive il layout delle lettere in una maniera piugrave adatta alle tradizioni europeeuna caratteristica particolare egrave la sua capacitagrave di adattare il formato della cartae quello della busta persino delle buste con finestra trasparente molto usatenella corrispondenza burocratica e commerciale La documentazione spiega anchecome predisporre nuove opzioni eo configurazioni locali adatte a formati di cartee di buste non conformi alla norme ISO anche nella versione molto dettagliatadelle norme ISO adattate al Giappone Per quel che riguarda lrsquoItalia esistonodelle norme relative allrsquoabbinamento della carta con la busta ma apparentementenon esistono delle norme per le buste con finestra

Le classi della collezione Komascript sono alla base anche di classi o dipacchetti molto in voga fra i frequentatori del forum di GuIT in particolare peril pacchetto ClassicThesis Questo fatto discende anche dalla facilitagrave con cui egravepossibile configurare il layout della pagina e gli stili compositivi di tutte le partidi sezionamento dai titoli correnti di ogni livello alle didascalie dalle testatineai piedini

144 ALCUNE CLASSI NON STANDARD 277

1442 La classe memoir

Peter Wilson ha scritto questa unica classe con la quale egrave possibile comporrequasi tutto quello che si puograve comporre con le classi standard ma offre possibilitagravedi personalizzazione difficili da realizzare se ci si appoggia alle classi standard

Una parte pregevole di questo lavoro egrave costituita dal file contenente il manualedi documentazione assai lungo e dettagliato contenente anche una buona dosedi consigli stilistici e una discreta storia del disegno grafico del libro e deldocumento1 la lettura egrave decisamente interessante anche in queste parti menotecniche per le parti tecniche il manuale egrave essenziale percheacute lrsquoestensione di LATEXe delle sue classi che la classe memoir offre egrave decisamente importante

La classe permette di personalizzare qualunque aspetto del documento daldisegno grafico della pagina alla scelta dei font per scrivere qualunque testospeciale compresi i titolini delle sezioni le testatine e i piedini Qualunquecosa possa essere personalizzata e che egrave difficile personalizzare usando LATEXstandard con memoir puograve essere fatta facilmente e con poche istruzioni

Lrsquoutente che si rivolge a memoir finisce con restarci affezionato per semprema deve fare molta attenzione con le personalizzazioni percheacute queste sono utilicertamente ma come si puograve migliorare qualunque cosa la si puograve anche peggiorareIn altre parole questa classe egrave decisamente piugrave adatta ad un utente esperto cosache riesce a chiunque abbia un minimo di sensibilitagrave estetica ed abbia spiritodi osservazione per imparare e valutare i pregi e i difetti di ciograve che viene fattoda altri Dagli altri si dovrebbe prima di tutto imparare ad evitare gli erroricercando di imitare il meglio e di avvicinarsi il piugrave possibile alle realizzazionidegli artisti grafici piugrave quotati con lo strumento memoir ci si puograve riuscire

Lrsquoautore di memoir nel suo manuale drsquouso racconta anche cose che hanno ache vedere con la cultura tipografica e con il book design Vale la pena di citarequesto brano tradotto in italiano da Luciano Battaia

Lrsquoessenza di un libro ben stampato egrave che non si fa notare al primoo addirittura al secondo o successivo sguardo di chiunque non abbiaun occhio allenato Se la vostra prima reazione nello sfogliare unlibro egrave di fare unrsquoesclamazione di meraviglia osservando il layoutallora il libro egrave molto probabilmente mal progettato se mai egrave statoprogettato La stampa di qualitagrave egrave raffinata non stridente

Con lrsquoavvento del desktop publishing molti autori hanno la ten-tazione di progettare da soli i loro testi Sembra molto facile farloBasta scegliere alcune delle migliaia di font disponibili usarne unoper i titoli uno per il testo principale un altro per le didascaliedecidere le dimensioni dei caratteri e la cosa egrave fatta

Tuttavia come scrivere egrave unrsquoabilitagrave che bisogna apprendere anchecomporre tipograficamente un testo egrave unrsquoarte che si deve apprenderee su cui bisogna esercitarsi Ci sono centinaia di anni di esperienzaracchiusi nel buon design di un libro Essi non possono essere tra-scurati con leggerezza e molti autori che progettano i loro libri nonconoscono alcune delle conquiste piugrave importanti per non parlaredel fatto che quello che fanno egrave esattamente in antitesi con esse Un

1Questo in veritagrave appariva sul manuale di memoir fino a qualche anno fa ora il manua-le egrave molto piugrave tecnico e chiarisce ogni possibile dubbio di programmazione ma in veritagravequellrsquoexcursus storico era molto interessante

278 CLASSI ED ESTENSIONI

esperto puograve infrangere le regole ma allora sa che ha delle buoneragioni per farlo

[ ] Se un libro grida lsquoguardamirsquo questo egrave un avviso e un pessimoavviso per chi lrsquoha progettato

1443 La classe ncc

Alexander Rozhenko ha predisposto una classe ncc valida per tutte le lingueaccessibili con babel ma pensata inizialmente per il russo che permette dicomporre articoli rapporti e libri semplicemente specificando opportune opzionia questa unica classe La classe egrave accompagnata da un certo numero di filedi estensione che consentono di eseguire composizioni particolari lrsquoautore nonle ha considerate di uso generale cosiccheacute ha potuto mantenere le dimensionidella classe entro limiti ragionevoli ma ha consentito di raggiungere prestazionisupplementari con moduli aggiuntivi da usarsi di volta in volta a seconda dellenecessitagrave compositive

Per altro la classe egrave estremamente versatile e consente di unire le prestazionidi molte estensioni LATEX in unrsquounica classe Cito a caso gli allineamenti diequazioni quelli di amsmath tanto per intenderci realizzati con pochi comandiassai versatili gli oggetti flottanti lsquominirsquo per minifigure e minitabelle compresele (piccole) figure e tabelle a margine del testo vari tipi di teoremi giagrave predispostisenza bisogno di ricorrere a newtheorem ovviamente ci sono anche i comandiper le dimostrazioni

Tutti i comandi dispongono di parametri facoltativi che consentono unapersonalizzazione piuttosto ampia

La documentazione egrave abbastanza dettagliata e si trova in doclatexncclatexncclatexpdf egrave opportuno studiare bene la documentazione percheacutesebbene si tratti sempre di mark-up LATEX esistono moltissimi nuovi comandie molti ambienti sono sostituiti da comandi con diversi argomenti in partefacoltativi e in parte obbligatori Bisogna insomma prenderci la mano ma nevale la pena

1444 Le tesi di laurea e la classe toptesi

Spesso gli studenti si avvicinano a LATEX quando devono scrivere la tesi dilaurea Dagli archivi ctan si possono scaricare diversi pacchetti che contengonoil necessario per comporre la tesi di laurea o di dottorato Fra i tanti si citatoptesi che contiene la classe toptesi oltre a varie utility e i loghi di numeroseuniversitagrave italiane

La classe consente di comporre tesi in italiano e in inglese per comporre ilfrontespizio in lingua diversa dallrsquoitaliano si possono usare comandi specifici chepossono essere inseriti in un file di configurazione la tesi egrave personalizzabile perogni lingua e per molti stili universitari La classe egrave stata pensata anche perscrivere le tesi completamente in lingua diversa dallrsquoitaliano in vista del fattoche gli studenti in doppia laurea con i programmi Erasmus devono scrivere latesi anche (o solo) nella lingua dellrsquouniversitagrave ospitante

Questa classe egrave una sovrastruttura della classe report che come si egrave dettonon distingue fra le parti iniziali centrali e finali del documento la classetoptesi invece lo fa automaticamente essa comincia a comporre con lo stiledella frontmatter della classe book ma nel momento in cui viene eseguito il

144 ALCUNE CLASSI NON STANDARD 279

(nuovo) comando indici vengono composti i vari indici richiesti e poi vieneeseguito lrsquoequivalente del comando mainmatter con il comando appendix difatto si passa alla composizione del materiale finale Si noti che nella classe book si prevede che il comando backmatter venga eseguito dopo le appendici nonprima Quel comando infatti eliminerebbe la dicitura lsquoAppendice 〈lettera〉rsquo primadel titolo di ogni appendice e tra lrsquoaltro cessa di numerare le strutture a livellodi lsquocapitolorsquo La classe toptesi invece prevede che le appendici facciano partedel materiale finale ma le distingue con la numerazione letterale Ovviamentela questione se le appendici facciano o non facciano parte del materiale finaleegrave una questione di gusti e di tradizione tipografica il grande e citatissimolsquobook designerrsquo Bringhurst attribuisce le appendici al materiale finale Chi hapredisposto la classe book attribuisce invece le appendici al materiale centraledel documento

Merita segnalare i pacchetto frontespizio di Enrico Gregorio esso si dedicaesclusivamente al frontespizio della tesi questo egrave completamente configurabilein ogni suo dettaglio per cui egrave possibile predisporre il frontespizio della tesivirtualmente per ogni prescrizione di segreteria di facoltagrave eo per ogni ateneoLrsquounica cosa a cui bisogna fare attenzione egrave che questo bellissimo pacchetto nonconsente di fare le lsquoporcheriersquo richieste in alcune facoltagrave evidentemente chi haredatto quelle prescrizioni o non egrave ancora passato al calcolatore e usa ancora lamacchina da scrivere o usa solamente e male un word processor (che usato beneprodurrebe anche risultati buoni) oppure ignora completamente i rudimentidella tipografia Gli studenti universitari che si accingono a scrivere la tesi nonsi scoraggino se una cosa non si puograve fare con frontespizio allora vuol dire che egravemeglio non farla

1445 Lrsquoestensione layaureo

Fabiano Busdraghi ha prodotto un pacchetto di estensione che non modifica glialtri parametri della classe in uso ma imposta il disegno grafico della paginasecondo il criterio della sezione aurea il pacchetto si chiama layaureo e nel modopiugrave semplice possibile senza ricorrere ad impostazioni di parametri o di parolechiave talvolta lsquoimmaginosersquo modifica la larghezza del testo e la sua altezzanoncheacute i margini di pagina in modo da ottenere il disegno grafico basato sullasezione aurea

In particolare allarga la giustezza in modo da coprire meglio la pagina A4 diquanto non lo facciano le classi standard questo allargamento dipende dal corponormale del font in uso Poi se il documento deve essere composto sul recto e sulverso delle pagine allora sistema il blocco del testo in modo che i margini stianofra loro come la sezione aurea Egrave possibile usare una opzione per spostare tuttoil testo di una quantitagrave fissa verso lrsquoesterno per esempio 5mm al fine di tenereconto della rilegatura

Si ricorda che la sezione aurea egrave un rapporto usato molto spesso nelle artigrafiche e lo si ritrova in moltissime strutture naturali per la sua definizione siveda in particolare lrsquoequazione etichettata (sezione aurea) nella pagina 160

Senza tenere conto dellrsquoaumento eventuale del margine interno per tenereconto della rilegatura la scelta della sezione aurea implica per esempio che ilmargine interno sia la frazione 0618 del margine esterno

280 CLASSI ED ESTENSIONI

(c)(b)(a)

CBeccari

ndashpi

ctur

e-20

09-

601

Figura 141 Tre geometrie di pagina a confronto (a) Gabbia (in grigio) e marginiper questo testo composto con la classe book su foglio in formato A4 (b) gabbiae margini in rapporto aureo fra di loro su su foglio in formato A4 (c) gabbia emargini ottenuti con lrsquoestensione layaureo su foglio in formato A4

Vale la pena di mettere a confronto tre layout di pagina nella figura 141 ilprimo layout corrisponde esattamente a questo testo composto con la classe bookalla quale non sono state apportate modifiche geometriche di nessun genere

Il secondo layout ha la pagina il testo e i margini in rapporto aureo fradi loro per essere piugrave precisi il rettangolo della pagina rappresenta in scala ilfoglio UNI A4 i cui lati hanno un rapporto di

radic2 fra di loro e non egrave quindi un

rettangolo aureo perograve la larghezza della pagina e la giustezza del testo sono inrapporto aureo cosigrave come lo sono i margini esterno ed interno fra di loro glistessi rapporti valgono per le dimensioni verticali a causa di questa regolaritagravedelle proporzioni si puograve osservare che la diagonale NWndashSE della gabbia del testocoincide con la diagonale della pagina Si noti anche che la gabbia del testo egrave unrettangolo UNI cioegrave con il rapporto

radic2 fra lrsquoaltezza e la base esso non ha le

proporzioni aureeIl terzo layout egrave quello che si ottiene con lrsquoestensione layaureo sulla pagina

UNI A4 per la quale egrave stato disegnato la giustezza egrave fissata circa 10mm piugravegrande della giustezza di default della classe book ma non egrave in rapporto aureocon la larghezza della pagina invece i margini interno ed esterno lo sono fradi loro i margini superiore e inferiore al contrario sono in rapporto di

radic2 e

il margine inferiore egrave il piugrave grande Lrsquoaltezza della gabbia egrave in rapporto aureocon la sua base e forma un rettangolo aureo A causa dei margini ristretti inparticolare quello esterno i layout basati in tutto o in parte sulla sezione aureanon sono adatti ad accogliere le note marginali

La figura 142 mostra chiaramente la differenza fra il rettangolo UNI basatosulla geometria del quadrato e il rettangolo aureo basato sulla geometria delpentagono regolare in entrambi i casi lrsquoaltezza del rettangolo egrave pari alla cordamaggiore del poligono regolare avente la base uguale a quella del rettangolo maa pari base il rettangolo aureo figura 142(b) egrave significativamente piugrave alto delrettangolo UNI figura 142(a)

Nella pagina 282 e nella successiva sono mostrate in dettaglio tutte le misureche riguardano le pagine pari e dispari di questo testo Le misure indicate inpunti tipografici sono state ricalcolate da LATEX stesso caso mai fossero statemodificate in qualche modo in realtagrave non egrave stato modificato nulla rispetto alleimpostazioni di default

145 I PACCHETTI DI ESTENSIONE 281

(a) (b)

CBeccari

ndashpi

ctur

e-20

090

601

Figura 142 Costruzioni geometriche per mettere in relazione lrsquoaltezza delrettangolo con il lato del poligono regolare sul quale egrave costruito

145 I pacchetti di estensioneAnche nel paragrafo precedente si egrave parlato di alcuni pacchetti di estensionevirtualmente se ne egrave parlato in ogni capitolo

I pacchetti di estensione spesso chiamati file di stile a causa dellrsquoestensionesty che essi hanno estendono le capacitagrave di LATEX mettendo a disposizione delcompositore nuovi comandi o nuovi stili di composizione

1451 Come invocare i file di estensioneNel preambolo di questo testo sono stati invocati diversi pacchetti di estensionedi alcuni si egrave giagrave detto nel capitolo 4 Mentre i pacchetti descritti in quel capitolosono da usarsi virtualmente ogni volta che si scrive un documento scritto conuna tastiera nazionale (probabilmente in Italia con una tastiera italiana) con unalfabeto latino che contiene lettere accentate e in una lingua diversa dallrsquoingleseora si mostrano le invocazioni degli altri pacchetti richiesti per la composizionedi questo specifico testo

usepackagepict2e[20040801]usepackagegraphicxusepackagemflogousepackageamsmathamsfontsamssymbusepackageafterpage

Il comando di invocazione egrave usepackage che segue la sintassi seguente

usepackage[〈opzioni〉]〈pacchetto〉[〈data〉]

Le 〈opzioni〉 sono quelle specifiche del pacchetto invocato per esempio perbabel il pacchetto era stato invocato nel preambolo con il comando

usepackage[italian]babel

Il 〈pacchetto〉 puograve consistere nel nome di un solo file senza la specificazionedellrsquoestensione sty ma puograve anche consistere in una lista di nomi separati lrsquounodallrsquoaltro da una virgola La 〈data〉 egrave la data scritta secondo le norme ISO nella

Testatina

Corpo

Piedino

NoteMarginali

8

7

1

3

10

9

11

24

5

6

1 un pollice + hoffset 2 un pollice + voffset3 evensidemargin = 79pt 4 topmargin = 23pt5 headheight = 12pt 6 headsep = 18pt7 textheight = 598pt 8 textwidth = 345pt9 marginparsep = 7pt 10 marginparwidth = 115pt

11 footskip = 25pt marginparpush = 5pt (non mostrato)hoffset = 0pt voffset = 0ptpaperwidth = 597pt paperheight = 845pt

Testatina

Corpo

Piedino

NoteMarginali

8

7

1

3

10

9

11

24

5

6

1 un pollice + hoffset 2 un pollice + voffset3 oddsidemargin = 28pt 4 topmargin = 23pt5 headheight = 12pt 6 headsep = 18pt7 textheight = 598pt 8 textwidth = 345pt9 marginparsep = 7pt 10 marginparwidth = 115pt

11 footskip = 25pt marginparpush = 5pt (non mostrato)hoffset = 0pt voffset = 0ptpaperwidth = 597pt paperheight = 845pt

284 CLASSI ED ESTENSIONI

forma aaaammgg (anno con tutte quattro le cifre mese indicato con duecifre anche se la prima egrave uno zero giorno indicato con due cifre anche se laprima egrave uno zero) che indica la data rispetto alla quale quella del pacchettodeve essere uguale o posteriore questa indicazione serve per essere sicuri diusare pacchetti sufficientemente aggiornati come si vede nellrsquoesempio riportatosopra si egrave richiesto il pacchetto pict2e di data successiva o uguale al 1deg agosto2004 percheacute le versioni precedenti a questa data non disponevano di certi nuovicomandi introdotti in un secondo tempo

Si fa notare che le 〈opzioni〉 indicate nellrsquoinvocazione del pacchetto sono localia quel pacchetto e se questo non le riconosce viene emesso un avvertimento cheinforma che lrsquoopzione tale-e-tale non egrave stata riconosciuta Invece le 〈opzioni〉 spe-cificate nella invocazione del file di classe attraverso il comando documentclasssono globali nel senso che esse vengono passate anche alle successive invocazionidei pacchetti lrsquoopzione italian specificata per babel invece avrebbe potutoessere indicata fra le opzioni di documentclass e cosigrave avrebbe potuto essereusata senza bisogno di ripeterla anche da altri pacchetti come per esempiovarioref o layout il primo esegue le citazioni nella forma per esempio lsquo nellafigura ldquo35 della pagina 123rdquo rsquo il secondo pacchetto serve per disegnare inuna pagina a se stante il layout grafico della pagina indicando graficamentei rettangoli che descrivono la gabbia o la testatina e a parole le indicazionimetriche che nel disegno sono riportate solo mediante delle frecce Egrave appuntoil pacchetto che egrave stato usato per disegnare i layout della pagina 282 e dellasuccessiva

1452 I vari pacchetti e gli archivi internazionaliEgrave facile comprendere che i pacchetti disponibili siano numerosissimi lrsquoarchiviointernazionale ctan (che sta per Comprehensive TEX Archive Network) necontiene diverse migliaia ottenuti come contributi dei vari utenti di LATEX checome succede con il software libero hanno realizzato qualche estensione perrisolvere qualche loro problema contingente e hanno ritenuto che fosse utile ancheper per gli altri utenti perciograve hanno caricato il pacchetto nellrsquoarchivio in modoche chiunque potesse servirsene liberamente e gratuitamente

Il sistema degli archivi ctan egrave formato da tre archivi principali uno negli USAuno nel Regno Unito e uno in Germania che sono sempre sincronizzati lrsquouno conlrsquoaltro e costituiscono la sorgente principale delle estensioni e delle distribuzionigratuite del sistema TEX Sparsi per il mondo ci sono poi innumerevoli sitiche costituiscono i mirror dei tre archivi principali questi mirror vengonosincronizzati dai loro amministratori quasi in tempo reale ma generalmente nonsono in ritardo di piugrave di una settimana rispetto ai tre archivi principali Perquesto motivo crsquoegrave sempre la possibilitagrave di avere un archivio abbastanza vicinocosigrave che le connessioni internet siano le piugrave rapide possibile

Tutti gli archivi e quasi tutti i mirror hanno una pagina interattiva chepermette di cercare o per nome o per argomento i file che interessano solitamentesono anche predisposti per permettere di scaricare intere cartelle in formatocompresso cosigrave da essere sicuri di non dimenticare nulla per la strada

Le distribuzioni migliori come MiKTEX per le macchine Windows dispongonodi un wizard altre di un assistant altre di un package manager che permettonodi avere preliminarmente il nome di tutti i pacchetti disponibili e di scaricare sulproprio calcolatore solo i pacchetti che interessano

146 COME SCRIVERE NUOVI PACCHETTI 285

Gli archivi principali sono

camctanorgdantectanorgtugctanorg

In Italia lrsquounico mirror registrato egrave quello dellrsquoUniversitagrave di Roma Tor Vergataallrsquoindirizzo

cisuniRoma2it

ma molti si lamentano della lentezza di questo mirror perciograve lingua permet-tendo si puograve accedere ai mirror francesi svizzeri austriaci e in particolareallrsquoarchivio dellrsquoassociazione Dante (httpwwwdantede) localizzato nellaGermania meridionale il mirror localizzato in Svizzera allrsquoindirizzo ftpmirrorswitchchmirrortex o quello localizzato in Austria allrsquoindirizzohttpgdtuwienacatpublishingtexCTAN sono particolarmente effica-ci Nel seguito con ctan si indicheragrave indifferentemente lrsquoinsieme degli archiviinternazionali o semplicemente lrsquoindirizzo di base di uno degli archivi principalio di un mirror

146 Come scrivere nuovi pacchettiCercando bene si puograve quasi sempre trovare il problema giagrave risolto in un qualchepacchetto presente negli archivi

Tuttavia talvolta puograve essere necessario crearsi un pacchetto di estensionepersonale per questo scopo bisogna leggere con attenzione la giagrave citata guidaclsguide nella cartella del proprio sistema dedicata alla documentazione doclatexbase si scopriragrave che la cosa di per seacute egrave facilissima se crsquoegrave qualchedifficoltagrave questa risiede nella scelta di che cosa mettere nel pacchetto personale

Crsquoegrave perograve una risposta semplicissima tutti hanno bisogno di estensioni perso-nali e prima o poi si scrivono dei nuovi comandi ad uso personale che rispecchianoil proprio stile di gestione del file sorgente Possono essere macro per inserirecerti loghi o certi marchi che hanno a che fare con lrsquoistituzione alla quale siappartiene possono essere macro per scrivere sigle o abbreviazioni frequenti neitesti che si scrivono abitualmente possono essere nuovi ambienti che riflettonole proprie necessitagrave compositive possono essere anche semplici modifiche dicomandi standard

Bene tutto ciograve puograve essere collocato in un file chiamato in una manie-ra un porsquo personalizzata diversamente dal solito myfilesty per esempioestensionedi〈iniziali〉sty dove 〈iniziali〉 puograve consistere nelle iniziali del pro-prio nome e cognome o quantrsquoaltro personalizzi il vostro file Lrsquoestensione delnome del file deve essere sty

Seguendo le istruzioni della Guida il file deve cominciare con due righeimportantissime

NeedsTeXFormat〈formato〉[〈data〉]ProvidesPackage〈nome-del-pacchetto〉[〈data versione e descrizione〉]

Il 〈formato〉 se usate LATEX2ε come si suppone saragrave LaTeX2e la 〈data〉 saragrave ladata del formato che voi avete usato per scrivere le vostre macro lrsquoindicazione

286 CLASSI ED ESTENSIONI

di questa data serve per assicuravi che il vostro file per sbaglio non possa venireusato da voi (su unrsquoaltra macchina) o da altri con una versione obsoleta del〈formato〉 la data scritta nella forma ISO cioegrave aaaammgg puograve essere indicataopzionalmente anche nella riga nella quale si richiama con usepackage unpacchetto qualsiasi in modo da essere sicuri di non usare versioni obsoletenaturalmente dovete conoscere la data del pacchetto non obsoleto che vi serve

Il 〈nome-del-pacchetto〉 saragrave verosimilmente il nome del vostro file persona-le mentre la 〈data versione e descrizione〉 deve essere una stringa di parolepossibilmente di lunghezza non maggiore di una riga di caratteri della finestracomandi o del terminal o della console queste informazioni devono avere laforma seguente

〈aaaammgg〉 v〈versione〉 〈breve descrizione〉

La data in formato ISO egrave quella della creazione del pacchetto o della suaultima revisione La versione potete scriverla nella maniera che preferite Labreve descrizione deve essere una breve frase del tipo ldquoMacro di Mario Rossi percomporre il manuale di tricotetratomiardquo

Dopo queste due righe potete inserire tutte le definizioni che volete eorichiamare i pacchetti che volete terminate il file con endinput

Lrsquoargomento delle definizioni verragrave trattato nel capitolo 17

147 Non modificare i pacchetti esistentiAlcuni utenti di LATEX credono di poter risolvere i loro problemi compositivi an-dando a modificare i file di classe o i pacchetti presenti nella propria distribuzionedel sistema TEX o scaricati da ctan

Questo deve essere assolutamente evitato Non lo si ripeteragrave mai ab-bastanza ma questa pratica oltre ad essere vietata dalla licenza a cui sonosottoposti quasi tutti i pacchetti esistenti egrave una pratica autolesionista

I modi corretti di procedere sono i seguenti

1 Se le modifiche da apportare alla classe o al file di stile sono numerose ilmodo migliore di procedere egrave quello di copiare il file in una cartella del-lrsquoalbero personale texlatex〈cartella〉 Il nome di questa 〈cartella〉verragrave scelto in modo mnemonico ma diverso dai nomi delle cartelle giagraveesistenti il file copiato verragrave ribattezzato con un altro nome per esempiose si vuole modificare la classe book si copieragrave il file bookcls nella propria〈cartella〉 dandole per esempio il nome tttomiaclsIn questo nuovo file cambiate il contenuto di ProvidesClass per esempiomodificate la dichiarazione

ProvidesClassbook[20040216 v14f Standard LaTeX document class]

nel modo seguente

ProvidesClasstttomia[20070310 v10

Mario Rossi classe per il libro di TricoTetraTomia]

147 NON MODIFICARE I PACCHETTI ESISTENTI 287

In questo nuovo file apportate tutte le modifiche che desiderate e aggiunge-teci tutti i comandi che volete usare questo siete liberi di farlo secondo lalicenza delle classi ma non siete liberi di modificare il file originale senzacambiargli il nomeNello stesso tempo voi potete usare la classe standard in qualunque altracircostanza questa inoltre vi potragrave servire per seguire la stessa strada connomi diversi se volete adattare la classe book alla composizione di un altrolibroLo stesso procedimento puograve essere seguito per modificare i file di stile

2 Potete modificare solo qualche comando che vi interessa in modo particolarecopiate dal file di classe originale o dal file di stile i comandi che voletemodificare e incollateli nel vostro file mymacrossty di comandi e macropersonali sostituite il comando newcommand con renewcommand e fateoperazioni simili per le definizioni degli ambienti Nel corpo della definizioneinserite tutte le modifiche che volete

Ricordate che i comandi definiti dentro i file di classe o di stile originalicontengono spessissimo la lsquoletterarsquo egrave lecito usare questo segno come se fosseuna lettera dellrsquoalfabeto solo allrsquointerno dei file di classe o di stile quindi ancheallrsquointerno del vostro file mymacrossty State attenti perograve a non combinarepasticci modificare o ridefinire comandi che contengano nel loro nome vi esponeal rischio di modificare un comando di sistema in modo errato e tutto il vostrosistema TEX potrebbe diventare inutilizzabile la riparazione egrave semplicissimapercheacute vi basta tornare sui vostri passi eliminando dal vostro file le modifiche ole definizioni che potrebbero avere sconvolto il sistema e poi potete ricominciarecon piugrave attenzione stando bene attenti a che cosa ridefinite o modificate Usatesempre i comandi newcommand e renewcommand che controllano la precedenteesistenza di comandi con lo stesso nome potete usare per queste verifiche anche icomandi di sistema ifdefinable e ifundefined le rispettive sintassi sonole seguenti

ifdefinable〈comando〉〈azione〉ifundefined〈nome del comando〉〈azione〉

Il comando ifdefinable verifica che il 〈comando〉 che si vorrebbe definiresia definibile cioegrave che (a) non sia stato giagrave definito (b) sia diverso da relax (c)non cominci con end Se sono verificate queste condizioni allora si puograve eseguirelrsquo〈azione〉 verosimilmente la definizione vera e propria del 〈comando〉

Invece ifundefined verifica che il 〈nome del comando〉 (il comando privatodellrsquoiniziale backslash) sia davvero una entitagrave priva di definizione e se egrave verificataquesta condizione esegue lrsquo〈azione〉 verosimilmente la definizione

Evitate di usare i comandi primitivi di definizione come def edef gdefe xdef di cui si parleragrave piugrave avanti nel capitolo 17 percheacute questi comandieseguono le definizioni in modo incondizionato e rischiate di azzoppare il sistemaPer altro voi vedrete che nei file di classe e di stile questi comandi sono usatispessissimo lasciateli dove sono ma non usateli voi stessi

Per le definizioni di nuovi comandi o per la modifica di comandi esistentibisogna consultare il capitolo 17 Tuttavia la raccomandazione piugrave importanteegrave quella di procedere lentamente con le lsquoacrobaziersquo consentite dal linguaggio

288 CLASSI ED ESTENSIONI

di programmazione interpretabile da pdftex Documentatevi adeguatamente eprocedete per gradi imparare il linguaggio di programmazione di pdftex egrave allaportata di tutti ma richiede pazienza attenzione precisione e costanza

Non si raccomanderagrave mai abbastanza prima di mettersi a creare macrodifficili tortuose inaffidabili si cerchino prima le documentazioni dei pacchettiesistenti A questo scopo egrave molto utile essersi caricati una distribuzione completadel sistema TEX Dopo aver esaminato la documentazione si studino i pacchettiesistenti anche se allrsquoinizio sembreragrave estremamente arduo capirci qualche cosaci si abitua con il tempo e con la pazienza Poi se nonostante tutto si desideraprodurre delle macro personali diverse da quelle che si trovano negli archivioppure veramente nuove allora si disporragrave di tutti i ferri del mestiere percimentarsi in prima persona e probabilmente le macro prodotte non sarannoaffatto difficili tortuose o inaffidabili

Un amico che giagrave conosca il linguaggio di sicuro egrave un grande aiuto macome viene scritto in una delle citazioni riportate alla fine di ogni capitolo nelTEXbook2

If you canrsquot solve a problemyou can always look up the answer

But please try first to solve it by yourselfthen yoursquoll learn more and yoursquoll learn faster

mdash Donald E Knuth The TEXbook (1983)

La raccomandazione del padre del sistema TEX deve essere presa con grandeserietagrave

2Se non riesci a risolvere un problema puoi sempre andare a leggere la soluzione [puoisempre chiedere ad un amico] Ma per favore prova prima a risolverlo da solo imparerai dipiugrave e piugrave in fretta

Capitolo 15

BIBTEX la bibliografia

151 IntroduzioneCome si egrave giagrave detto LATEX compone la bibliografia come un testo specialecostituito da un elenco di voci etichettate con unrsquoetichetta di vari stili macitabili con una chiave mnemonica scelta dallrsquoautore o fissata in altro modo

Il problema della bibliografia non egrave tanto quello di preparare lrsquoelenco conla sintassi descritta per lrsquoambiente thebibliography quanto quello di elencare iriferimenti in un ordine logico nello scrivere tutte le informazioni necessarie alreperimento dellrsquoopera citata e specialmente nellrsquoessere coerenti nello stile dipresentazione di tutte queste informazioni

Vale la pena di ricordare che le bibliografie e gli elenchi bibliografici sonoregolati dalla norma ISO 690 [22] e dalla norma UNI 6017 [50] Queste normespecificano quali siano le informazioni necessarie e quelle facoltative richieste daun riferimento correttamente conforme alle norme In buona sostanza sono tuttele informazioni che permettono di identificare univocamente il riferimento citatoLe norme non specificano in che stile esse debbano essere stampate lrsquoimportante egraveche informazioni dello stesso tipo siano stampate con lo stesso stile Il programmaBIBTEX consente di rispettare le norme e di mantenere lo stile di composizione inmodo uniforme per tutti i vari riferimenti di vario tipo Forse merita ricordare chele opere antiche o classiche vanno comunque identificate univocamente percheacutele varie edizioni possono essere differenti piugrave o meno complete aggiornate suimanoscritti o codici di piugrave recente disponibilitagrave eccetera Insomma non bastacitare ldquoManzoni I promessi sposirdquo senza citare la particolare versione edizionecritica edizione commentata a cui ci si sta riferendo

152 Il programma BIBTEXIl programma BIBTEX serve per rispondere alle necessitagrave descritte sopra in modotipograficamente perfetto e versatile

Questo programma richiede che si disponga di un database di riferimentibibliografici scritto in una certa maniera che fra poco verragrave sommariamenteillustrata esso trae da questo database solo i riferimenti citati in un datodocumento e ne prepara lrsquoelenco generalmente ordinato alfabeticamente secondo

289

290 CAPITOLO 15 BIBTEX LA BIBLIOGRAFIA

il cognome del primo autore nella forma corretta per essere trattato da LATEX ecomposto secondo quanto desiderato

1521 Come specificare lo stile bibliograficoNel preambolo del documento bisogna specificare lo stile compositivo dellrsquoelencobibliografico lo si fa con il comando bibliographystyle secondo la seguentegrammatica

bibliographystyle〈stile bibliografico〉

Eventualmente questo comando puograve essere preceduto dalla specificazione diun pacchetto che interagisce con la composizione della bibliografia mettendo adisposizione diverse varianti dei comandi di citazione per esempio il pacchettonatbib

1522 Come comporre la bibliografiaSi inserisce il comando bibliography con la seguente sintassi nel punto dovesi vuole comporre la bibliografia

bibliography〈database bibliografico〉

dove 〈database bibliografico〉 egrave il nome del database bibliografico che si intendeusare disponendo di piugrave database e dovendo citare opere elencate in diversidatabase il 〈database bibliografico〉 puograve consistere in una lista di nomi separatida virgole

Gli stili bibliografici distribuiti di default sono file con lrsquoestensione bst e sitrovano nella cartella bibtexbst dove sono raccolti in diverse sottocartelleGli stili piugrave diffusi sono unsrtbst e plainbst il primo non esegue nessunordinamento ma le opere sono elencate nello stesso ordine in cui vengono citatecon il secondo stile le opere vengono ordinate secondo lrsquoordine alfabetico del primoo unico autore o quanto possa sembrare il nome di un autore al programmapoi per anno e poi per ordine alfabetico del titolo Con questi stili le operevengono citate per numero drsquoordine racchiuso fra parentesi quadre come si faabitualmente nei lavori tecnicondashscientifici Per citazioni diverse bisogna affidarsial pacchetto di estensione natbib alla cui documentazione si rinvia per i dettaglinecessari

Questo testo ha la sua bibliografia composta adattando lo stile bibliograficoplainbst alla lingua italiana mediante il nuovo file di stile plain_itabstla composizione vera e propria egrave stata fatta specificando a documentclasslrsquoopzione openbib il risultato egrave un elenco bibliografico ordinato secondo lrsquoordinealfabetico come detto sopra ma la voce egrave composta in modo aperto cioegrave ognielemento che forma la voce egrave considerato come un capoverso a seacute stante per cuinella prima riga compare da solo il nome o la lista dei nomi degli autori o deicuratori nella seconda riga il titolo e via di seguito nelle righe successive vedila Bibliografia alla pagina 558

Tutti questi stili ipotizzano che la bibliografia sia scritta in inglese non egravedifficile crearsi degli stili personalizzati in particolare in italiano ricorrendo al filemakebsttex che provvede a tutto il necessario pur di rispondere lsquocorrettamentersquoad un certo numero di domande questo file va elaborato con LATEX e richiede

152 IL PROGRAMMA BIBTEX 291

che si modifichi un file modello dal nome merlinmbs tutta lrsquooperazione nonegrave difficile ma richiede che si sia giagrave acquisita una certa dimestichezza con idatabase bibliografici e con i vari stili bibliografici

Naturalmente per le varie piattaforme esistono delle interfacce grafiche checonsentono di comporre i database bibliografici nel modo corretto tanto percitarne uno per il Mac OS X esiste (ed egrave distribuito mediante MacTEX insiemeal sistema TEX) il programma BibDesk

1523 Chiavi e citazioniMa la cosa non finisce qui per avere la bibliografia composta il programmadeve disporre delle chiavi di citazione perciograve bisogna lanciare LATEX appenaha finito e non ci sono errori tranne eventualmente avvisi che alcune chiavidi citazione non sono state lsquorisoltersquo (il che significa che LATEX non ha trovatoaltro che le chiavi cioegrave gli argomenti dei comandi cite ma non sa a che cosacorrispondano queste chiavi) bisogna passare alla fase successiva

Per altro in certe circostanze sarebbe desiderabile introdurre nellrsquoelencobibliografico anche opere non espressamente citate nel testo al limite tutte leopere contenute nel database bibliografico Per ottenere questo scopo allrsquointernodel documento (cioegrave non nel preambolo) si puograve usare il comando nocite conla seguente sintassi

nocite〈elenco delle chiavi〉oppurenocite

dove 〈elenco delle chiavi〉 egrave una lista di una o piugrave chiavi di citazione di opere chesi vogliono elencare nellrsquoelenco bibliografico anche se non sono state usate comeargomenti del comando cite allrsquointerno del documento Se invece dellrsquoelencodelle chiavi si usa lrsquoasterisco allora nellrsquoelenco bibliografico compariranno tuttele opere contenute nel database bibliografico esistono delle circostanze in cuivale la pena di comporre un database apposta (traendo le informazioni da altridatabase mediante la nota tecnica del ldquotaglia e incollardquo) in modo da crearenel documento composto una bibliografia di consultazione non di riferimentocome solitamente avviene quando le opere elencate vengono citate nel corpo deldocumento

A questo punto bisogna lanciare BIBTEX o da una finestra comandi o terminalo console oppure bisogna cliccare sullrsquoapposito bottone dello shell editor Inquesto modo BIBTEX apre il o i database specificati cerca le voci corrispondentialle opere citate in base alle chiavi raccolte da LATEX nel giro precedente le ordinasecondo i criteri di ordinamento specificati nello stile bibliografico e finalmentegenera un file con estensione bbl che contiene in linguaggio LATEX tutto quelloche occorre per comporre la bibliografia

Finalmente si lancia nuovamente LATEX e questa volta viene composta labibliografia e vengono decifrate le chiavi ma non egrave finita le chiavi sono decifratema non sono ancora state usate per le citazioni bisogna lanciare ancora una voltaLATEX in modo che possa usare le chiavi decifrate al giro precedente cosigrave che leinformazioni ci siano tutte e siano state usate tutte al posto giusto Una ulteriorepassata del documento a LATEX non guasta serve per giustificare correttamenteil documento e puograve rendere corretti i riferimenti incrociati che avrebbero potutorisultare modificati dallrsquouso delle chiavi

292 CAPITOLO 15 BIBTEX LA BIBLIOGRAFIA

Esercizio 151 Percheacute dopo la seconda volta che si lancia LATEX dopo averlanciato BIBTEX i riferimenti incrociati potrebbero non essere correttiPercheacute quindi egrave necessario lanciare LATEX ancora una volta

In sostanza la generazione e composizione della bibliografia avviene in quattroo cinque fasi cosigrave

(1) LATEX (2) BIBTEX (3) LATEX (4) LATEX (5) LATEX

Non egrave il caso di spaventarsi per questa (apparente) complicazione bisognaricordare prima di tutto che un buono shell editor dispone quasi sempre di unbottone da cliccare che esegue tutte le passate che occorrono per avere la biblio-grafia composta correttamente e i riferimenti incrociati fra loro perfettamentecoerenti a cosa servirebbe sennograve un buono shell editor

Nello stesso tempo se lo shell editor non disponesse di quel magico bottonee fosse necessario procedere a mano attraverso la finestra comandi o il terminalo la console eseguire quei cinque comandi richiede una manciata di secondila compilazione di un testo di molte centinaia di pagine diciamo 700 richiedecon i PC o laptop moderni qualche decina di secondi BIBTEX richiede qualchesecondo lrsquointera operazione da eseguirsi una volta sola alla fine della lavorazionedel documento puograve richiedere un paio di minuti siccome anche lrsquoindice analiticorichiede lo stesso numero di passate si puograve ottimizzare lrsquooperazione prendendodue piccioni con una fava Non egrave terribile

153 I database bibliograficiI database bibliografici sono dei file scritti in testo puro con i caratteri ASCIIo anche con i caratteri accentati gestibili con lrsquoinput encoding preferito per latrasportabilitagrave sarebbe meglio che si trattasse di caratteri ASCII puri (codici a 7bit) e quindi i segni letterali con diacritici dovrebbero essere rappresentati conle sequenze per gli accenti che non sono state descritte finora da nessuna partema si rinvia a qualunque guida o manuale lsquooldstylersquo di LATEX1 qui non si vuolefare gli schizzinosi circa le tradizionali modalitagrave di scrivere le lettere accentateimmaginando di usare una tastiera USA priva di tasti speciali per i caratteriaccentati semplicemente si ritiene molto piugrave comodo servirsi delle potenzialitagravedel proprio PC o laptop per gestire i caratteri con diacritici e le potenzialitagrave deifile di estensione di LATEX per comporre correttamente quelle lettere speciali

Il punto egrave che in Europa e in Italia in particolare egrave difficile comprare un PCo un laptop con una tastiera diversa da quella nazionale In Italia in partico-lare scrivere le vecchie sequenze LATEX per gli accenti sarebbe particolarmentefastidioso percheacute lrsquoaccento italiano piugrave diffuso egrave quello grave e dalla tastieraitaliana manca qualunque tasto o semplice combinazione di tasti che consenta diintrodurlo bisogna ricorrere al tastierino numerico il che con i laptop si puogravefare ma richiede ulteriori tasti da premere

Dopo questa lunga premessa del fatto che sarebbe meglio usare i caratteriASCII ma che con la tastiera italiana la cosa egrave particolarmente fastidiosaveniamo al database ogni voce del database comincia con la dichiarazione deltipo di documento a cui la voce si riferisce questa dichiarazione egrave una delleseguenti parole article book booklet conference inbook incollection

1Si veda comunque in appendice il paragrafo G25 e la tabella G1

153 I DATABASE BIBLIOGRAFICI 293

inproceedings manual masterthesis misc phdthesis proceedings tech-report unpublished Ognuna di queste categorie di documenti egrave spiegata nelladocumentazione di BIBTEX in docbibtexbtxdocdvi

In base alle norme ISO ognuna di queste tipologie di documento richiedecerte informazioni quindi nel descrivere il documento bisogna usare un certonumero di parole chiave se per un certo tipo di riferimento una voce obbligatoriamanca quando BIBTEX viene eseguito vengono emessi degli avvertimenti del fattoche la citazione tale egrave priva della specificazione talaltra Le chiavi facoltative eobbligatorie per ogni tipologia sono specificate nella documentazione citata

Qui ci limiteremo a qualche piccolo esempio commentando ciograve che apparenelle voci del database

manualmanrefbibtitle= Documentation - Bibliographical references -

Essential and supplementary elementsnote= Norma ISO 690--1975organization=International Organization for Standardizationaddress= Ginevrayear= 1975key= ISO 690

manualmanpatashnikauthor= Oren Patashniktitle= textscBibTeXingorganization=TUGyear= 1988note= Il file textttbtxdocdvi contenente questa

documentazione generalmente egrave giagrave presente nellacartella texttttexmfslash docslash bibtexpoicheacute fa parte integrante del sistema TeX

bookbooklatexeauthor= Leslie Lamporttitle= LaTeX a document preparation system ---

Userrsquos guide and reference manualpublisher= Addison--Wesley Publ Coaddress= Reading Massyear= 1994edition= 2

Come si vede dai tre esempi di voci bibliografiche riportati sopra la tipologiadel documento viene sempre preceduta dal segno e il contenuto della voce egraveracchiuso fra parentesi graffe Il primo elemento contenuto fra queste parentesi egravela chiave di citazione nel file LATEX quindi per esempio le norme ISO per lecitazioni bibliografiche devono essere citate con citemanrefbib e non conunrsquoaltra chiave che piaccia di piugrave

Le altre informazioni relative al documento citato sono specificate medianteuna espressione del tipo

294 CAPITOLO 15 BIBTEX LA BIBLIOGRAFIA

〈parola-chiave〉 =〈testo〉

dove lrsquoultima virgola puograve essere omessa solo nellrsquoespressione finale Ciograve che nel〈testo〉 compare fra graffe non subisce modificazioni quando viene trascritto nelfile di uscita altrimenti BIBTEX spesso cambia le maiuscole in minuscole con ilrisultato di alterare quello che si vuole scrivere oppure di cambiare lrsquoortografiadi macro che verranno poi interpretate da LATEX

Le norme ISO sono classificate come manual questa tipologia non ha bisognodellrsquoindicazione dellrsquoautore per consentire un qualunque ordinamento allora egraveopportuno inserire una parola chiave key che serve come chiave di ordinamentoin mancanza di altre chiavi predefinite per questo scopo

Anche la documentazione di BIBTEX egrave classificata come manuale ma lrsquoautoreegrave noto ed indicato per cui non egrave necessaria una chiave supplementare

Lrsquoordine in cui vengono scritte le 〈parole-chiave〉 e le relative espressioni nonegrave essenziale lrsquoimportate egrave che ci siano tutte quelle relative ad una data tipologiaed eventualmente ci siano quelle facoltative che possono agevolare lrsquoordinamentosecondo qualche criterio dipendente dallo stile bibliografico prescelto

Dipende dal compositore decidere se conviene predisporsi e tenere aggiornatouno o piugrave database bibliografici oppure se comporre di volta in volta la lista deiriferimenti mediante la compilazione del contenuto dellrsquoambiente thebibliography inizialmente si egrave un porsquo restii a creare un database bibliografico poi se si superaquesto scoglio iniziale se ne apprezza completamente la validitagrave e la comoditagrave

Qui vorremmo consigliare di fare uso dei database bibliografici tutto sommatobisogna inizialmente superare uno scoglio di tipo psicologico ma via via cheil proprio database (o i propri database distinti per tipologia di contenuto) siarricchiscono di voci il lavoro per tenerli aggiornati diventa sempre piugrave modestoIn compenso lrsquouso degli stili bibliografici consente di comporre le informazionirichieste in modo coerente se la casa editrice a cui si manda un lavoro vuoleuna bibliografia composta in un altro modo il database rimane lo stesso mala nuova composizione viene eseguita in sostanza lanciando BIBTEX e lasciandofare tutto il resto a LATEX Si immagini di dover invece correggere a mano unalista composta direttamente entro lrsquoambiente thebibiography se la bibliografiaconsiste anche soltanto di poche decine di voci le possibilitagrave di commettereerrori ma soprattutto di non essere coerenti sono numerosissime e il risultatofinale non saragrave allrsquoaltezza del tempo impiegato

Tipicamente gli elenchi formati secondo determinati stili sono operazioni daeseguire a macchina la bibliografia egrave uno di questi elenchi la conclusione delsillogismo egrave ovvia si componga la bibliografia a macchina

Piuttosto se gli stili disponibili non sono adeguati e se fosse necessario compi-lare degli stili nuovi non si trascuri la possibilitagrave di servirsi del file makebsttexallrsquoinizio poicheacute le domande a cui bisogna rispondere sono in inglese ci si puogravetrovare un porsquo frastornati dai termini tecnici insoliti la prima volta che si compiequesta operazione egrave normale commettere errori e dover eseguire di nuovo lacreazione dello stile ma il gioco vale la candela e il risultato finale di solito egrave digrande soddisfazione

154 QUANTI DATABASE BIBLIOGRAFICI 295

154 Quanti database bibliograficiEgrave chiaro che questa egrave una domanda insolita e alla quale egrave difficile dare unarisposta Giagrave prima si egrave accennato alla possibilitagrave di creare database bibliograficidivisi per argomenti questa egrave giagrave una risposta parziale ma bisogna associarla altipo di documento che si vuole comporre

In un articolo o rapporto scientifico egrave possibile che si debbano riportaresolo le voci bibliografici dei riferimenti citati perciograve anche un unico databasegenerale puograve essere utile come potrebbero esserlo diversi database specialisticiInvece un testo di tipo illustrativo (in certe universitagrave si usa lrsquoorrenda parolacompilativo a cui egrave spesso associata una connotazione negativa ndash se il testoraccoglie solo titoli di articoli e di riviste effettivamente serve a poco ma se sitratta di una raccolta ragionata commentata verificata di opere che descrivonodavvero lo stato dellrsquoarte allora il testo diventa tuttrsquoaltro che spregevole anziegrave una benedizione) allora egrave probabile che lrsquoelenco contenga anche opere noncitate nel testo ma venga usato il comando nocite per comporre nellabibliografia lrsquointero database bibliografico

Come gestire e mantenere diversi database bibliografici Certamente usandoprogrammi adatti ma sarebbe meglio evitare sovrapposizioni sarebbe meglioche ogni riferimento compaia una sola volta nei database generali Come fareUsando i link simbolici oggi disponibili anche sulle macchine Windows a partireda Windows Vista

Lrsquooperazione si svolge in questo modo in una cartella personale si raccolgonotutti i database bibliografici che interessano magari divisi per argomenti ocon qualche altro criterio Si cureragrave di controllare che ogni opera compaia unasola volta e non venga ripetuta in opere diverse si controlleragrave che le chiavisiano davvero distinte A questo proposito conviene moltissimo comporre lechiavi mediante un prefisso tipo lsquolibrorsquo lsquomanualersquo lsquoarticolorsquo eccetera (megliose abbreviati in modo univoco) separato dal nome lsquopropriorsquo dellrsquoopera citatamediante per esempio due punti come si egrave indicato nellrsquoesempio della pagina 293Il nome proprio puograve essere formato dal cognome del primo autore seguito da altreinformazioni si puograve usare qualunque carattere tranne la virgola ma egrave meglioevitare gli spazi Sono cose giagrave dette ma conviene ripeterle

Via via che si compone un particolare documento si tengono aperti anche i filedei database bibliografici al fine di riportare le chiavi di chiamata semplicementecopiandole da ciascun database (senza perdere lrsquooccasione di verificare che glielementi necessari allrsquoidentificazione dellrsquoopera siano presenti non debbano essereaggiornati e cose di questo genere) se per questa operazione bisogna aprireun altro database si coglie lrsquooccasione per trascriverne il nome nellrsquoelenco didatabase passati al comando bibliography Nel documento non si usa ilcomando nocite ma si lascia a BIBTEX il compito di estrarre dai databasetutti i riferimenti citati e di comporli come si deve

Ma BIBTEX cerca i database nella stessa cartella dove si trova il file principaledel documento che si sta componendo mentre i database si trovano in unacartella personale dellrsquoutente dedicata a conservare tutti i database bibliograficiAllora nella cartella che contiene il file principale si aggiungono i link simbolici aifile che si trovano altrove Per le macchine di tipo UNIX (Linux Mac eccetera)si useragrave la sintassi

ln -s 〈percorso completo del file vero〉 〈nome del link simbolico〉

296 CAPITOLO 15 BIBTEX LA BIBLIOGRAFIA

mentre su una macchina Windows con sistema operativo Vista o successivo ilcomando diventa

mklink 〈nome del link simbolico〉 〈percorso completo del file vero〉

Solitamente si usa come 〈nome del link simbolico〉 il nome del file vero privatodi tutto il percorso che vi conduce di cartella in cartella a partire dal nomedel disco fisso Il link simbolico fa credere al sistema operativo che nella cartelladove crsquoegrave il nome del link simbolico ci sia davvero il file originale In questomodo lrsquoaggiornamento o la correzione del file vero esistente in unrsquounica copia siriflette automaticamente su tutti i documenti che hanno fatto riferimento a queldatabase tramite il link simbolico

Diversa egrave la situazione se si vuole comporre un documento informativo dovesi vogliono riportare tutti i riferimenti di un database bibliografico anche quellinon citati Per questo scopo egrave necessario creare nella cartella del file principaledel documento un nuovo database bibliografico che contenga tutte e sole le vociche si desidera riportare nella bibliografia Questa non egrave una operazione difficileda fare basta copiare dai database principali i dati riferiti solo alle opere cheinteressando incollandone le righe nel nuovo database dedicato al particolaredocumento Dopo nocite e BIBTEX fanno il resto componendo la bibliografiacome si deve

Egrave incredibile quanto tempo si risparmia a seguire le indicazioni riportatesopra Ma egrave anche incredibile quanto risultino composte bene le bibliografie conquesti strumenti srsquointende che i database bibliografici non devono contenereerrori ndash questo va da seacute

Oggi poi usando il pacchetto di estensione biblatex si possono ottenerebibliografie perfette composte anche con stili diversi da quelli disponibili nelladistribuzione del sistema TEX

Capitolo 16

LATEX indici e glossari

161 IntroduzioneGli indici analitici e i glossari possono essere molto utili nelle opere di consulta-zione LATEX offre un grande aiuto per la compilazione di questi elenchi ma laparte difficile resta quella dellrsquoautore che deve decidere che cosa inviare allrsquoindiceanalitico o al glossario se deve usare voci indipendenti o subordinate se devedistinguere il modo di scrivere le pagine a seconda di come il lemma di quellavoce viene trattato definizione esempio drsquouso applicazione eccetera

162 Lrsquoindice analiticoLrsquoindice analitico egrave un elenco di voci ordinate alfabeticamente anche con alcunilivelli di subordinazione e vicino ad ogni lemma viene inserito il numero dellapagina dove quel lemma viene trattato Il lemma puograve essere trattato in diversipunti del testo quindi di fianco al lemma puograve comparire un elenco di numeri dipagina

La raccolta di queste informazioni viene fatta mediante il comando indexla sintassi egrave

index〈lemma〉

Se nel preambolo crsquoegrave lrsquoistruzione makeindex lrsquoinformazione specifica relativaal 〈lemma〉 viene inviata ad un file ausiliario da elaborare in un secondo tempose quellrsquoistruzione manca nel file ausiliario non viene scritto niente Quandoi calcolatori erano lenti era importante non rallentare lrsquoelaborazione del filesorgente con operazioni non strettamente necessarie oggi la cosa non egrave piugrave cosigraveimportante ma visto che lrsquoindice analitico egrave lrsquoultima cosa che si compone in unlibro egrave bene non perdere tempo con questa informazione fincheacute non si egrave alla fineo quasi alla fine

Lrsquoinformazione che viene scritta da LATEX nel file ausiliario (il cui nome halrsquoestensione idx) egrave del tipo

indexentry〈lemma〉〈pagina〉

297

298 CAPITOLO 16 LATEX INDICI E GLOSSARI

Per ottenere questa raccolta di dati basta collocare lrsquoistruzione index conil suo argomento lsquoattaccatarsquo cioegrave senza lasciare spazi alla parola che si vuoleindicizzare Per esempio

la tecnologia dei transistoriindextransistoreNPNindextransistoreNPN

1621 Il programma makeindexPer elaborare il file idx in modo da metterlo nella forma giusta cioegrave in ordinealfabetico strutturato per lemmi sottolemmi e sotto-sottolemmi con gli elenchidi numeri di pagine senza doppioni o con intervalli eventualmente composti concaratteri diversi a seconda dellrsquouso del lemma esiste il programma makeindex sitratta di un programma da lanciare a mano dalla finestra comandi o dal terminalo dalla console oppure premendo lrsquoopportuno pulsante dello shell editor

Questo programma esamina il 〈lemma〉 come trascritto senza modifichedallrsquoargomento di index al file idx e lo elabora secondo quanto vi trovaindicato

Infatti quello che appare in 〈lemma〉 non egrave necessariamente il solo lsquolemmarsquo maanche informazioni ausiliarie che facilitano il compito del programma makeindex

Nel primo esempio elementare indicato sopra il 〈lemma〉 egrave costituito sempli-cemente dalla parola lsquotransistorersquo questa parola serve a diversi scopi

1 indica che si tratta di un lemma di primo livello

2 indica che la chiave con cui eseguire lrsquoordinamento alfabetico egrave lsquotransistorersquo

3 indica che va riportato nellrsquoindice analitico tale e quale vale a dire stampatocon il font di default con cui viene composto lrsquoindice

4 indica che il numero della pagina in cui compare va scritto anchrsquoesso con ilfont di default

Strutturando il 〈lemma〉 in modo piugrave articolato le varie funzioni indicatenella precedente enumerazione possono essere trattate in modo diverso cosigrave dafar apparire il livello del lsquolemmarsquo nellrsquoindice per indicare una diversa chiave diordinamento per indicare come scrivere il lsquolemmarsquo nellrsquoindice e come stampareil numero della pagina la strutturazione consente anche di indicare lrsquoinizio e lafine degli intervalli di pagine per inserire nellrsquoindice il rinvio ad un altro lemmaeccetera

I dettagli sono spiegati bene nella documentazione del programma makeindexche si trova nella cartella docmakeindex dove non solo egrave contenuto il filemakeindexdvi ma anche un semplice tutorial inddvi

Sommariamente qui si riportano due esempi

1 Scrivendo

indextransistoreNPN

il lemma lsquoNPNrsquo viene scritto strutturato sotto al lemma lsquotransistorersquo

2 Scrivendo

163 IL GLOSSARIO 299

〈job〉tex LATEX 〈job〉idx makeindex 〈job〉ind

CBeccari

ndashpi

ctur

e

Figura 161 Le fasi per la produzione dellrsquoindice analitico

indexambienteenumeratetextsfenumerate

il lemma lsquoenumeratersquo viene scritto con il font senza grazie e viene strutturatosotto al lemma lsquoambientersquo

Naturalmente per sfruttare tutta la forza del programma makeindex bisognaleggere attentamente la documentazione citata e prendere esempio dal tutorialmenzionato sopra

1622 La composizione effettiva dellrsquoindice analiticoLa composizione effettiva dellrsquoindice analitico avviene specificando nel file sorgenteper LATEX

input〈fileind〉

dove 〈file〉 egrave il nome del lsquojobrsquo e ind ne egrave lrsquoestensione Il lsquojobrsquo coincide con ilnome del file sorgente per LATEX che ha dato luogo alla raccolta dei dati perlrsquoesecuzione dellrsquoindice analitico ed egrave stato elaborato da makeindex secondo loschema della figura 161 Questo file contiene anche i comandi di apertura e dichiusura dellrsquoambiente theindex quindi se non si vuole altro basta semplicementeeseguire lrsquoinclusione di questo file tramite il comando input

Come la figura dimostra chiaramente per ottenere la composizione definitivadellrsquoindice analitico bisogna lanciare LATEX ancora una volta percheacute fincheacute ilfile 〈job〉ind non egrave disponibile lrsquoindice non puograve essere composto (vedi perograve piugraveavanti)

Usando il pacchetto di estensione makeidx egrave possibile servirsi del semplicecomando printindex che provvede da solo a generare lrsquoambiente e a comporrelrsquoindice analitico

Siccome i numeri delle pagine devono essere quelli definitivi egrave evidente chela composizione dellrsquoindice analitico deve essere in assoluto lrsquoultima operazioneda fare se si deve eseguire una qualche correzione nel testo questa correzionecomporta anche la correzione dellrsquoindice analitico vale a dire la triplice esecuzionedi LATEX con lrsquoesecuzione di makeindex dopo la prima di LATEX Per fortunagli shell editor hanno generalmente un bottone solo che esegue tutta questaprocedura per altro necessaria anche per comporre la bibliografia usando BIBTEX

163 Il glossarioUn glossario egrave un elenco di voci accompagnate da una breve spiegazione talvoltaappare anche la pagina del testo dove viene riportata una spiegazione menosuccinta

Il procedimento per produrre un glossario egrave simile a quello usato per comporrelrsquoindice analitico ma egrave un porsquo piugrave artigianale come si vedragrave fra poco

300 CAPITOLO 16 LATEX INDICI E GLOSSARI

Lrsquoinizio consiste nel marcare il testo sorgente in una maniera simile a quelladellrsquoindice analitico

glossary〈voce〉

Lanciando LATEX se il preambolo contiene lrsquoistruzione makeglossary vieneprodotto anche un file 〈job〉glo che contiene tutte le voci di cui si vuol generareil glossario accompagnate dal numero della pagina dove esse compaiono insiemead una loro spiegazione non succinta

Lanciando il programma makeindex dalla linea di comando

makeindex -s ggloist -o 〈job 〉gls 〈job 〉glo

si produce lrsquoelenco alfabetizzato 〈job〉gls delle parole di cui si desidera comporreil glossario

Bisogna aprire questo file e aggiungere la breve spiegazione oltre che acorreggere la forma di stampa del numero di pagina (per esempio per cancellarlose esso non svolge nessuna funzione specifica come quando il glossario non egravealtro che un elenco di simboli o di abbreviazioni) poi bisogna comporlo in unamaniera simile a quello che si fa per la composizione dellrsquoindice analitico

In questo senso la composizione del glossario egrave un porsquo piugrave artigianale inquanto bisogna intervenire ancora sul file alfabetizzato

Esistono diversi pacchetti in rete per comporre glossari o simili elenchicommentati Qui si suggerisce il pacchetto glossary scaricabile dagli archivictan esso offre una maniera comoda per scrivere la 〈voce〉 in modo che contengadirettamente anche la descrizione della voce cosigrave che quando si compone il filealfabetizzato esso sia giagrave pronto per essere composto con LATEX Il pacchettoovviamente definisce il comando printglossary del tutto simile nelle suefunzioni a printindex

Si raccomanda la lettura attenta della documentazione del pacchetto glossarypercheacute esso offre diverse altre funzioni avanzate che possono tornare molto comodeper la generazione di un glossario e per lrsquoamministrazione delle voci da inserirvi

164 Come modificare la composizione dellrsquoindi-ce analitico

Quanto viene esposto qui vale anche per modificare la composizione del glossarioPer entrambi il file che compone lrsquoelenco richiesto egrave prodotto dallrsquoesecuzione

del programma makeindex per lrsquoindice analitico viene prodotto il file 〈job〉indmentre per il glossario viene prodotto il file 〈job〉gls Entrambi questi fileracchiudono lrsquoelenco da comporre dentro due specifici ambienti theindex e the-glossary Come ogni voce sia articolata dipende da come si siano usati i comandiindex o glossary e quindi da come le varie opzioni siano state elaborate damakeindex per produrre i file di uscita Cambiando opzioni chiaramente cambiaanche la composizione

Tuttavia qui si vuole richiamare lrsquoattenzione su un altro punto e per esempli-ficare ci riferiremo allrsquoindice analitico per il glossario valgono considerazioni deltutto analoghe

La formattazione dellrsquoindice analitico dipende da come egrave definito lrsquoambientetheindex oltre che dal contenuto del file 〈job〉ind Cambiare formattazione

165 INDICIZZAZIONE SINCRONA 301

dellrsquoindice analitico implica la capacitagrave di cambiare la definizione dellrsquoambientetheindex Si tratta di modificare la definizione di un ambiente di sistema elrsquooperazione bencheacute non difficile richiede un minimo di attenzione e di conoscenzaLrsquoargomento viene rimandato al paragrafo 178 nel capitolo 17

165 La creazione sincrona dellrsquoindice analiticoeo del glossario

Si egrave giagrave detto altrove che le versioni moderne delle distribuzioni del sistema TEXusano come interprete il programma pdftex al quale viene associato un determi-nato file di formato nel nostro caso il formato latexfmt oppure pdflatexfmta seconda di quali opzioni siano attive al momento della creazione del formatoeo al momento della compilazione lrsquointerprete puograve svolgere determinate azioniin particolare puograve produrre in uscita il file dvi oppure il file pdf puograve eseguirei comandi estesi del programma etex oppure puograve riferirsi solo ai comandi dellrsquoin-terprete tex puograve chiedere al sistema di eseguire comandi esterni oppure di nonfarlo

In questo paragrafo viene esposta una soluzione al problema di eseguireimmediatamente la conversione del file grezzo dellrsquoindice analitico idx nel fileindicizzato e volendo la conversione del file grezzo del glossario glo nel fileindicizzato gls Questa operazione egrave possibile se lrsquointerprete che si sta usandoegrave abilitato per lrsquoesecuzione di comandi di sistema

Generalmente parlando questa operazione puograve venire eseguita a mano indifferita cliccando sullrsquoapposito bottone dello shell editor con cui si sta eseguendola lavorazione del documento normalmente non ci sono problemi mentre peril glossario egrave necessario esprimere diverse opzioni al comando di sistema percui lrsquooperazione bencheacute non sia difficile da eseguire dalla finestra comandicome egrave stato descritto nei paragrafi precedenti resta comunque una operazionesuscettibile di errori Per lrsquoindice analitico lrsquooperazione attraverso la finestracomandi diventa necessaria se si vogliono usare delle opzioni specifiche per ilcomando makeindex

Ricordiamo innanzi tutto che lrsquoindice analitico e il glossario vengono compostiper ultimi quando non egrave piugrave necessario raccogliere informazioni da includeredentro questi elenchi Ricordiamo anche che entrambi i file indicizzati hanno ilnome identico a quello del file principale del documento che si sta componendo〈job〉 e che questo nome egrave contenuto nella macro jobname

Allora egrave possibile eseguire la trasformazione immediata dei due file 〈job〉idxe 〈job〉glo subito dopo averli completati e subito prima di comporre ciascunalista indicizzata 〈job〉ind e 〈job〉gls Questo implica che bisogna chiudereimmediatamente i due flussi di scrittura dellrsquointerprete verso i file 〈job〉idx erispettivamente 〈job〉glo I nomi di questi due flussi di scrittura sono conte-nuti rispettivamente nelle due macro interne e protette di LATEX indexfilee glossaryfile1 La chiusura di questi due flussi di scrittura deve essere

1Talvolta egrave necessario comporre indici analitici o glossari tematici alcune classi non standardcome memoir hanno un meccanismo interno che non consente di agire come descritto in questoe nei prossimi paragrafi Altre classi non standard come per esempio quelle della collezioneKOMA-script invece generano inizialmente un solo file idx ma poi grazie ad un applicativoesterno spezzano questo file in una certo numero di file grezzi con nomi distinti ognuno deiquali va elaborato da makeindex Egrave possibile scrivere una serie di macro per gestire queste

302 CAPITOLO 16 LATEX INDICI E GLOSSARI

istantanea non differita alla prima occasione opportuna come avviene invecenormalmente per la scrittura su altri file

Lo scrivente egrave ricorso allrsquouso del comando write18 che permette di chiedereal sistema di eseguire lrsquoargomento di questo comando come se fosse un comandoscritto nella finestra comandi terminal xterm console comunque si chiami nelsistema operativo che governa il calcolatore che si sta usando

Egrave bene notare che di default lrsquointerprete pdftex pur potendo eseguire ilcomando write18 di default ne egrave disabilitato Per abilitarlo egrave necessario scriverelrsquoapposita opzione nella linea di comando da inserire a mano da una finestracomandi o da inserire nella configurazione dello shell editor Per lrsquoeseguibilepdftexexe che compare nella distribuzione MiKTEX lrsquoopzione da inserire nellalinea di comando egrave ndashenable-write18 per gli eseguibili pdftex delle versioniderivate dalla distribuzione TEX Live lrsquoopzione egrave -shell-escape Egrave importanteconfigurare il proprio shell editor con questa opzione altrimenti si rimane delusipercheacute quanto descritto qui non potrebbe assolutamente funzionare

1651 Indicizzazione sincrona dellrsquoindice analiticoPer lrsquoindice analitico specialmente quando si vuole usare uno stile di composizionediverso da quello di default i cui comandi sono contenuti nel file 〈stile〉istbasta inserire i comandi

maketaletterimmediatecloseoutindexfileimmediatewrite18makeindex -s 〈stile〉ist jobnamemakeatother

subito prima di

inputjobnameind

Quei comandi eseguono immediatamente la chiusura del flusso di scritturache serve allrsquointerprete per scrivere nel file idx i lemmi dellrsquoindice analiticoAltrettanto immediatamente lanciano una richiesta al sistema di eseguire ilcomando makeindex passandogli lo stile di composizione 〈stile〉ist affincheacute conquello stile lavori sul file il cui nome egrave contenuto in jobname e la cui estensionevale di default idx In uscita viene prodotto un file con lo stesso nome ma conlrsquoestensione di default ind In questo modo quando viene eseguito il comandoinput sul file jobnameind la composizione dellrsquoindice analitico viene eseguitasui dati appena raccolti e indicizzati e non crsquoegrave piugrave bisogno di ricorrere alle trecompilazioni come detto inizialmente

Per questo testo egrave stato usato lo stile classicist frutto di una collabora-zione con Lorenzo Pantieri che usa uno stile simile per il suo testo [39] I comandiinseriti nel file sorgente per indicizzare lrsquoindice analitico e per introdurlo neltesto sono

makeatletterimmediatecloseoutindefilesituazioni e lasciare che i comandi descritti in questo e nei prossimi paragrafi eseguano tuttoil lavoro per ciascuno degli indici o glossari Egrave appunto quello che si egrave fatto per i cinque indicianalitici di questo testo sebbene la classe usata per la sua composizione sia la classe standardbook

165 INDICIZZAZIONE SINCRONA 303

makeatotherimmediatewrite18makeindex-sclassicistjobnameinputjobnameind

Al posto di jobname si sarebbe potuto scrivere esplicitamente il nome del fileprincipale GuidaGuIT ma lasciando jobname quei comandi possono essere usatisenza nessuna modifica per la composizione di qualunque altro documento

1652 Indicizzazione sincrona del glossarioIn modo del tutto analogo i comandi per comporre il glossario anche prescindendodallrsquouso di printglossary possono essere i seguenti

makeatletterimmediatecloseoutglossaryfilemakeatotherimmediatewrite18makeindex -s ggloist -o jobnamegls jobnamegloinputjobnamegls

Ovviamente al posto dello stile di composizione ggloist quello di defaultquando si usa LATEX anche se bisogna specificarlo si potrebbe usare un qualunquealtro stile adatto allo scopo Le cartelle di ogni distribuzione TEX sono pienedi ogni sorta di stili da usare con makeindex ma pochissimi sono destinati allacomposizione dei glossari generalmente oltre a ggloist che fa eccezione essihanno lrsquoestensione gst nella distribuzione 2008 di TEX Live sono presenti i filememmangst usato per la composizione del glossario relativo alla documentazionedella classe memoir e srcguidegst relativo alla documentazione delle classiKOMA-script bencheacute scritti per quegli scopi possono venire usati anche peraltri glossari2

Per altro non egrave particolarmente difficile crearsi una altro stile personalizzatobaste leggere accuratamente la documentazione che accompagna il programmamakeindex in docmakeindex e prendere come modello i file di stile suggeritiin questo paragrafo

2Attenzione perograve percheacute la sintassi del contenuto dei comandi glossary egrave in partedifferente da quella prescritta dallo stile ggloist per esempio il carattere speciale vienesostituito con

Capitolo 17

LATEX nuovi comandi

171 Introduzione

Uno dei punti di forza del linguaggio di programmazione che sostiene il sistemaTEX egrave costituito dal fatto di poter definire nuovi comandi nuove istruzioni

Lrsquointerprete tex o pdftex che interpreta i comandi dei vari tipi di mark-up deifile sorgente egrave in grado di eseguire alcune centinaia di comandi base comandiprimitivi non nel senso che siano rozzi ma che sono quelli a cui tutti gli altrisi riferiscono i comandi derivati sono per lo piugrave definiti nei vari file di formatoplaintex per il mark-up di Plain TEX latexltx per il mark-up di LATEXeccetera

Questi file di formato definiscono dei nuovi comandi detti macro attraversoi comandi primitivi o attraverso quelli derivati giagrave definiti

Quando lrsquointerprete incontra una macro la deve sviluppare cioegrave deve ri-cercarne in memoria la traduzione in base alla definizione specifica di quellamacro se questa definizione contiene le azioni da eseguire specificate solamentemediante comandi primitivi lrsquointerprete li esegue altrimenti sequenzialmentericerca i comandi derivati presenti nella definizione ripetendo il processo fincheacutelo sviluppo contiene solo comandi primitivi che finalmente esegue

Ogni macro puograve essere definita in modo che possa lavorare su argomenticioegrave parti variabili che cambiano di volta in volta che si invoca la macro Gliargomenti possono essere delimitati o non delimitati Allrsquointerno dei formati si faun grande uso di argomenti delimitati ma i comandi per gli utenti specialmentecon LATEX fanno un uso minimo di argomenti delimitati

Gli argomenti non delimitati sono costituiti da un solo token per esempiouna sola lettera o una sola cifra e non richiedono di venire racchiusi dentronessuna struttura che ne limiti la lunghezza Altrimenti devono essere racchiusifra parentesi graffe Nei capitoli precedenti si sono visti quasi sempre argomentinon delimitati indicati nelle istruzioni sintattiche con 〈argomento〉 LATEX usararamente gli argomenti delimitati ma li delimita solo mediante parentesi quadreegrave quanto si egrave indicato con [〈argomento〉] nellrsquoambiente picture sono delimitatele coordinate racchiuse fra parentesi tonde e indicate nelle costruzioni sintattichecon (〈arg-1 〉〈arg-2 〉) Ma per il resto egrave difficile trovare altri comandi destinatial compositore che facciano uso di argomenti delimitati

305

306 CAPITOLO 17 LATEX NUOVI COMANDI

Qui si illustreranno succintamente le definizioni di nuovi comandi le ridefini-zioni di comandi giagrave esistenti le definizioni di nuovi ambienti e le ridefinizioni diambienti giagrave esistenti

172 Le definizioni di comandi nuoviPer definire un nuovo comando si usa la seguente sintassi

newcommand〈macro〉[〈num-argomenti〉][〈default〉]〈definizione〉newcommand〈macro〉[〈num-argomenti〉][〈default〉]〈definizione〉

dove 〈num-argomenti〉 egrave il numero degli argomenti su cui opera la 〈macro〉 deiquali il primo puograve essere facoltativo esso egrave facoltativo se viene espressa anche laseconda opzione incluse le sue parentesi quadre se nellrsquoinvocazione della macroche accetta un argomento facoltativo non lo si specifica esso riceve il valore di〈default〉 Nella definizione della 〈macro〉 gli argomenti al massimo in numerodi 9 sono indicati con il loro numero progressivo 1 2 eccetera La 〈macro〉cioegrave il suo nome puograve essere costituita solo

bull dal segno di backslash seguito da una stringa formata solamente dalettere dellrsquoalfabeto latino maiuscole o minuscole ricordando che LATEXdistingue le une dalle altre oppure

bull dal segno di backslash seguito da un solo segno non alfabetico oppure

bull da un carattere attivo un carattere attivo egrave un segno che ha ricevuto inprecedenza lrsquoetichetta di carattere attivo LATEX dichiara carattere attivo ilsegno ~ che serve per inserire uno spazio non separabile (in corrispondenzadel quale non puograve cadere la fine di una riga) babel con lrsquoopzione dellrsquoitalianoe di quasi tutte le lingue che usano caratteri accentati definisce attivoanche il carattere

Si raccomanda ai compositori di non ldquogiocherellarerdquo con i caratteri attiviqui li si egrave nominati percheacute egrave giusto sapere che esistono e che cosa sono ma egravemeglio lasciarli stare Egrave meglio lasciare stare anche i comandi che usino caratterinon alfabetici come per esempio 1

Come primo esempio si riporta quanto egrave stato definito nel preambolo diquesto documento la definizione del comando per scrivere il logo di BIBTEXnewcommandBibTeXtextscBibTeX

Come si vede non ci sono argomenti neacute obbligatori neacute facoltativi per la definizionedella macro BibTeX la 〈definizione〉 si avvale di altri comandi textsc percomporre la prima parte del logo con il carattere maiuscoletto e TeX percomporre la seconda parte formata dal logo di TEX

Come secondo esempio si porta la definizione del comando cs che egrave servitotante volte per scrivere i nomi dei comandi con carattere a spaziatura fissa epreceduti dal segno di backslash senza che LATEX li eseguisse ma li considerassesolo delle stringhe letterali

1Nei file di formato compaiono una quantitagrave di definizioni di comandi che contengono ilcarattere allrsquointerno del formato questo carattere egrave definito come lettera alfabetica ma fuoridel formato quando il compositore usa LATEX esso egrave ripristinato alla categoria di lsquonon-letterarsquola cosa egrave fatta di proposito affincheacute i compositori non si mettano a giocare con i caratteri nonalfabetici

172 LE DEFINIZIONI DI COMANDI NUOVI 307

newcommandcs[1]textttchar921

Il comando accetta un solo argomento obbligatorio e la sua sintassi diventaperciograve

cs〈nome della macro senza backslash〉

La definizione della macro2 oltre a contenere il comando texttt per comporreil suo argomento con caratteri a spaziatura fissa contiene anche il comandoprimitivo char che si aspetta un numero decimale oppure esadecimale oppureottale dalle tabelle dei caratteri si vede che egrave piugrave semplice riferirsi allrsquoindirizzodecimale invece che a quelli ottale o esadecimale e si vede che il segno dibackslash egrave nella casella con indirizzo 92 usando il comando char e lrsquoindirizzonella tabella dei caratteri il segno identificato viene trascritto tale e qualeprescindendo dal significato che esso potrebbe avere per LATEX cioegrave quello diiniziatore di nomi di macro cs egrave diverso da char92cs il primo egrave un comandoil secondo egrave il nome di un comando3

Nel preambolo di questo documento non sono stati definiti comandi conargomento facoltativo si prenderagrave un esempio da altri documenti prendiamouna possibile definizione del comando

newcommand[1][0pt]newlinevspace1

Questa non egrave la definizione completa che compare allrsquointerno del file di formatoma rende lrsquoidea Il comando accetta un argomento siccome ne egrave specificato ilvalore di default questo primo ed unico argomento egrave facoltativo se lo si vuoleindicare lo si deve scrivere fra parentesi quadre Se non lo si indica affattoviene usato il suo valore di default che viene passato tale e quale alla macrovspace che esegue una spaziatura verticale pari allrsquoammontare specificato conlrsquoargomento esplicito o di default la spaziatura verticale di default egrave di 0 pt cioegraveuna spaziatura nulla

Il lettore attento avragrave notato che in due dei tre esempi un asterisco segueil comando newcommand questo asterisco facoltativo esprime una variante delcomando che egrave consigliabile usare ogni volta che il comando debba ricevere degliargomenti senza asterisco il comando puograve ricevere argomenti arbitrariamentelunghi fatti anche di numerosi capoversi con lrsquoasterisco il comando puograve rice-vere argomenti formati solo da una stringa di caratteri che non contenga neacuteesplicitamente neacute implicitamente una terminazione di capoverso questa come siricorda egrave costituita da una riga del file sorgente completamente vuota oppuredal comando esplicito par

Quando si definiscono comandi che accettano solo una o poche parole certa-mente non piugrave di un capoverso egrave prudente inserire lrsquoasterisco percheacute nel caso checi si dimentichi di scrivere la graffa di chiusura viene emesso subito un messaggio

2In realtagrave la definizione indicata egrave solo una versione preliminare quando si egrave deciso dicomporre anche lrsquoindice analitico si egrave cambiata la definizione includendovi il comando indexcorredato di un opportuno argomento la necessitagrave di usare il segno che ha un significatoparticolare per makeindex ci ha obbligati ad una definizione decisamente piugrave complessa la cuispiegazione esula da questo testo Tuttavia egrave importante notare come la modifica della soladefinizione di cs ha permesso di inviare allrsquoindice analitico tutti i comandi descritti senzabisogno di inserire il comando index ogni volta che li si citava

3Invece di char92 si sarebbe potuto scrivere textbackslash ma questo comando agiscesolo in modo testo mentre char92 agisce anche in modo matematico Egrave vero che non lo si egravemai usato in modo matematico ma non si sa mai

308 CAPITOLO 17 LATEX NUOVI COMANDI

drsquoerrore che consente al compositore di intervenire e di correggere Ricordiamociche lrsquoomissione di una graffa chiusa rappresenta lrsquoerrore piugrave frequente quando sicompone il testo sorgente

Si noti che se si specificasse come nome della 〈macro〉 quello di un comando giagraveesistente newcommand protesterebbe con un avviso di errore e non procederebbead eseguire la ridefinizione presumibilmente non desiderata di un comando giagravedisponibile

Nel capitolo 19 si parleragrave dei capilettera vi si descriveragrave il pacchetto lettrineche consente di inserire queste grandi lettere maiuscole allrsquoinizio del primocapoverso di un capitolo o di un paragrafo Nellrsquoesemplificare lrsquouso dei capiletterain quel capitolo non si egrave fatto uso delle macro disponibili con il pacchetto lettrinema si eacute usato il comando capolettera descritto qui di seguito insieme allemotivazioni per non aver usato il pacchetto citato

La macro capoverso egrave definita nel file MacroGuidasty che raccoglie lemacro usate per comporre questo testo Questa macro capoverso non ricorre alpacchetto lettrine percheacute sul forum di guIt egrave stato notato che lettrine funzionabene solo con i font vettoriali che dispongono solamente di un corpo da ingrandiree rimpicciolire a seconda delle esigenze Qui si usano in prima istanza i fontLatin Modern o in seconda istanza i font Computer Modern che sono dotatidi tutti i corpi necessari Si egrave preferito quindi definire una macro apposita chesvolgesse piugrave o meno le stesse funzioni offerte dal pacchetto lettrine ma nonfacesse riferimento implicito ad un solo corpo La macro qui descritta produceun capolettera grande come due righe di testo e costruito in modo da essere afilo con la linea di base della seconda riga ma in modo che la sua altezza nonsuperi quella delle lettere in maiuscoletto che la seguono Il suo scopo infatti egravequella di cominciare un capoverso nel modo seguente

Il grande capolettera deve essere molto visibile come inizio di un capoversoma richiede una transizione di forma dei caratteri che lo seguono per rendere

meno brusco il passaggio dalle sue grandi dimensioni al corpo normale delfont usato nel resto del capoverso Per questo motivo la tradizione tipograficageneralmente ricorre a qualche parola iniziale del capoverso dopo il capoletteracomposta in maiuscoletto

La macro perciograve richiede di specificare come primo argomento la lettera daingrandire e come secondo argomento il completamento della prima parolaseguito da qualche altra parola iniziale del capoverso

newlengthCLett Nuova dimensione

newcommandcapolettera[2] 1 lettera da ingrandire 2 testo da comporre in maiuscoletto

parnoindentsetboxzhboxscalebox125huge1CLett=wdzhangindentCLetthangafter-2relaxraisebox-baselineskip[0pt][0pt]

llapboxzkern1pttextsc2

La definizione ricorre a comandi di base del linguaggio TEX mescolati a comandidi LATEX e del pacchetto graphicx Per i dettagli si puograve guardare nellrsquoappendice GIl capolettera si ottiene mettendo nella scatola numerata lsquo0rsquo (z) la lettera daingrandire ma che viene inizialmente ottenuta con il comando huge e poi viene

173 RIDEFINIZIONE DI COMANDI GIAgrave ESISTENTI 309

ulteriormente ingrandita del 25 per tenere conto che si tratta di una maiuscola(generalmente) senza discendenti

Se ne prende la misura della larghezza per far rientrare le righe della giustaquantitagrave ma poi sono hangindent e hangafter che creano lo spazio nelleprime due righe per mettere la lettera ingrandita hangindent riceve comeargomento lrsquoammontare del rientro e hangafter riceve il numero di righe perle quali vale il rientro il segno si riferisce al margine destro (segno piugrave) o sinistro(segno meno) per il quale si esegue lrsquooperazione del rientro Alla fine del capoversoquesti due parametri lsquoprimitivirsquo di TEX vengono ripristinati a valori nulli cosiccheacutequeste impostazioni valgono solo per il capoverso corrente

Per collocare la lettera si usa il comando LATEX raisebox che mette ilsuo argomento in una scatola e la solleva della quantitagrave specificata nel primoparametro (se esso egrave negativo la abbassa) e tratta la scatola come se avessealtezza e profonditagrave pari ai due ulteriori parametri facoltativi (in questo casoentrambi nulli cosiccheacute non si tiene conto dellrsquoaltezza e specialmente dellaprofonditagrave della lettera ingrandita) Questa per altro viene inserita dentro unascatola di larghezza nulla llap ma con il contenuto sporgente a sinistra vi vieneposto anche un poco di spazio (1 pt) per scostare un minimo la lettera ingranditadalle rientranze delle due righe Il secondo argomento viene poi inserito tuttocomposto in maiuscoletto

Il pacchetto lettrine consente di corredare il comando del capolettera condiverse opzioni cosiccheacute lo si possa fare sporgere in alto di piugrave o di meno inmodo che occupi lo spazio di un numero di righe a scelta e altre finezze masembra appunto che funzioni correttamente solo con i font dotati di un solocarattere di corpo fisso ma scalabile a piacere

173 Ridefinizione di comandi giagrave esistentiPer ridefinire un comando giagrave esistente ammesso che il compositore sappia checosa sta ridefinendo e ne capisca tutte le possibili conseguenze si usa il comandorenewcommand con la sintassi seguente

renewcommand〈macro〉[〈num-argomenti〉][〈default〉]〈definizione〉renewcommand〈macro〉[〈num-argomenti〉][〈default〉]〈definizione〉

I cui parametri hanno lo stesso significato che per newcommand e al quale si puograveaggiungere lrsquoasterisco come si faceva con newcommand

Il caso piugrave frequente della ridefinizione di comandi esistenti riguarda il casodella modifica di comandi propri oppure di comandi definiti nei file di classe o diestensione

In questi casi egrave vietato modificare i file originali ma si procede come indicatonel paragrafo 147

Va da seacute che se si cerca di ridefinire un comando che non esiste lrsquoistruzionerenewcommand emette un perentorio messaggio drsquoerrore e si rifiuta di procedereoltre

Un uso abbastanza frequente consiste nel ridefinire le parole che compaio-no durante lrsquoesecuzione di comandi di sezionamento Per esempio il comandolistoffigures esegue lrsquoelenco delle figure come un indice a seacute stante che vieneintrodotto da un titolo diverso a seconda della lingua usata In italiano questotitolo egrave ldquoElenco delle figurerdquo questa stringa egrave contenuta nella definizione della

310 CAPITOLO 17 LATEX NUOVI COMANDI

macro listfigurename Per cambiare questo titolo per esempio in ldquoLista dellefigurerdquo basta allora ridefinire la macro nel modo seguente

renewcommandlistfigurenameLista delle figure

Naturalmente questo implica che il testo venga scritto in una sola linguae che la ridefinizione sia eseguita dopo il comando di inizio del documentoquando la lingua di default egrave giagrave stata specificata Bisogna poi stare attenti a noncambiarla piugrave in particolare se babel fosse chiamato con un elenco di linguepercheacute il documento contiene citazioni in lingue diverse da quella di defaultbisogna evitare accuratamente di usare il comando selectlanguge per evitaredi rieseguire la definizione dei comandi di default della lingua principale il cherenderebbe vana la ridefinizione appena illustrata Se si deve scrivere davvero undocumento in molte lingue con diversi elenchi delle figure scritti e intitolati inlingue diverse allora babel consente di usare altri comandi piugrave potenti comeaddto4 che permettono di essere piugrave efficaci nel gestire queste cose

Questo avviso serve appunto a segnalare come anche una ridefinizione lsquoinno-centersquo come quella proposta puograve causare risultati non previsti anche se non sonodannosi per lrsquointegritagrave di LATEX Il compositore che desidera usare renewcommanddeve sempre sapere veramente quello che sta facendo

174 Ridefinizioni di comandi di sistemaLa ridefinizione dei comandi di sistema egrave una operazione da evitare se nonsi sa esattamente quello che si sta facendo si rischia di buttare allrsquoaria tuttoil funzionamento di latex eo pdflatex Si veda anche quanto si egrave scritto nelparagrafo 147

Tuttavia allrsquoinizio si egrave detto che una delle pochissime modifiche che egrave stataapportata ai comandi di default per la composizione di questo testo egrave stataquella di modificare la scrittura dei numeri romani minuscoli Per eseguire questascrittura il sistema di default usa esternamente il comando roman usabile dalcompositore ma internamente il comando del compositore viene eseguito daroman il comando comincia con il segno che per il compositore non egrave unalettera e quindi difficilmente il compositore puograve andare a lsquodisturbarersquo i comandiinterni di sistema Tuttavia il modo esiste ed egrave descritto da Leslie Lamportin persona nel suo manuale Bisogna usare il comando makeatletter5 primadi ridefinire un comando interno questa istruzione cambia i codici interni chedescrivono la funzione del segno in modo da poterlo usare come se fosse unalettera dellrsquoalfabeto

Questo risolve il primo problema Ma per scrivere in maiuscoletto non bastaspecificare textsc percheacute questa forma non egrave definita per tutte le famiglie e

4Le parole conservate in apposite macro come listfigurename sono conservate dentrouna macro il cui nome egrave ottenuto dallrsquoagglutinazione della parola captions con il nome dellalingua per lrsquoitaliano dunque questa macro si chiama captionsitalian Il comando addtopertanto riceve come primo argomento la macro captionsitalian e come secondo argomentola ridefinizione di listfurename Cosigrave facendo ogni volta che si specifica la lingua italianala macro che contiene il titolo dellrsquoelenco delle figure viene ridefinito di nuovo ma questaoperazione ridondante egrave un male minore rispetto a quanto descritto nel testo se si eseguisse laridefinizione senza aggiungerla alle altre macro per lrsquoitaliano

5Se la nuova definizione viene inclusa nel proprio file di macro personali avente esten-sione sty e richiamato con il comando usepackage non egrave necessario servirsi del comandomakeatletter

174 RIDEFINIZIONI DI COMANDI DI SISTEMA 311

per tutte le serie Bisogna accontentarsi di simulare la forma maiuscoletta conlettere maiuscole di corpo piugrave piccolo

La ridefinizione di roman diventa allora la seguente

makeatletterDeclareRobustCommandsimulatedSC[1]hbox$relax$fontsizesfsizefbaselineskip

selectfont1renewcommandroman[1]simulatedSCRoman1

Una spiegazione perograve egrave necessaria I comandi sfsize e fbaselineskip sonoi comandi interni che contengono rispettivamente il corpo degli indici primi edellrsquoavanzamento di riga associati al font corrente il primo dei due egrave definitosolo dopo che sia stata scritta una formula qui ridotta a nulla (relax) essisono documentati insieme ad altri comandi dello stesso genere nella giagrave citataguida fntguide presente in doclatexbase Il comando fontsize egravequello esterno per impostare un nuovo corpo e un nuovo avanzamento di rigama questi non diventano operativi se non dopo aver dato il comando esplicitoselectfont infine il comando Roman egrave il comando interno per scrivere inumeri romani in lettere maiuscole Ciograve premesso la ridefinizione che stiamocercando di fare richiede un comando simulatedSC con il quale si ordina discrivere con lrsquoavanzamento di riga corrente ma con il corpo degli indici primiper limitare i suoi effetti e per essere sicuri che il numero romano cadendo in findi riga non venga eventualmente diviso in sillabe il tutto viene eseguito dentrouna scatola orizzontale hbox che successivamente viene usata come un unicooggetto non come una stringa di letterecifre romane usando questo comandola ridefinizione di roman viene eseguita in modo da prendere il numero romanoscritto in lettere maiuscole e di stamparlo nel corpo degli indici primi Il risultatoegrave quello che si puograve vedere nelle pagine iniziali qui si mostra come la paginacorrente possa essere scritta in numeri romani maiuscoli e in numeri romanimaiuscoletti in corpi diversi

Corpo lsquonormalsizersquo CCCXI CCCXI

Corpo lsquoHugersquoCCCXI CCCXIUn altro esempio usato in questo testo egrave costituito dalla ridefinizione della

virgola Egrave noto che in tutte le lingue tranne lrsquoinglese le norme ISO prescrivonocome separatore decimale la virgola In questo modo in tutte le altre lingue lavirgola svolge due ruoli ma solo in matematica Quando si egrave in modo matematicoil segno della virgola puograve essere dichiarato attivo e gli si puograve associare unadefinizione Qui si egrave fatto esattamente cosigrave6

6Attenzione con le virgolette se i comandi che seguono vengono emessi quando egrave giagravein vigore lrsquoopzione italian di babel lrsquointerprete quando legge 8000 segnala un errore perconvenienza e semplicitagrave di scrittura sarebbe meglio sostituire in quella definizione la notazioneesadecimale con quella ottale rsquo100000 Si faccia anche attenzione al lsquobacktickrsquo lsquo che non egraveun accento ma il carattere ASCII 96 la scrittura di questo carattere puograve essere difficile conla tastiera italiana in un laptop che non abbia il tastierino numerico separato (quasi tutti)bisogna affidarsi alle prestazioni dello shell editor in un PC con la tastiera munita di tastierinonumerico separato dal resto il backtick puograve venire introdotto premendo sul tastierino il numero96 mentre si tiene premuto il tasto Alt Purtroppo la tastiera italiana non egrave di grande aiutoper fortuna non capita spesso di dover usare il backtick

312 CAPITOLO 17 LATEX NUOVI COMANDI

DeclareMathSymbolvirgolamathpunctletters3BDeclareMathSymboldecimalcommamathordletters3BAtBeginDocumentmathcodelsquo=8000catcode lsquo=active gdeffutureletlettokenmthcomma

defmthcommaifxlettokensptoken virgolaelse decimalcommafi

Precisamente si sono definite due entitagrave matematiche virgola che rappre-senta un segno matematico di punteggiatura e decimalcomma che rappresentala virgola decimale la differenza risiede nel codice interno che il carattere 3B (lavirgola) riceve attraverso i comandi DeclareMathSymbol visto che nel primocaso egrave specificato appartenente alla categoria mathpunct (punteggiatura mate-matica) mentre nel secondo caso esso egrave definito come mathord cioegrave come unnormale simbolo o una variabile matematica La specifica letters in entrambi icasi dice che il segno deve essere tratto dalla stessa polizza di caratteri dai qualisi traggono le lettere (il font corsivo matematico)

Le definizioni del codice attivo e della sua definizione diventano attive soloallrsquoinizio del documento mediante AtBeginDocument vi si dice che il codicematematico deve essere posto a 8000 lo speciale codice che definisce attivo uncarattere in modo matematico Gli si assegna poi attraverso il comando primitivogdef una definizione globale nella quale esso deve assegnare a lettoken nonil significato del token successivo che sarebbe mcomma ma quello del tokenche incontreragrave ancora dopo allora e solo allora potragrave eseguire mcomma Questoa sua volta egrave definito in modo da esaminare il tipo di token il cui significatoegrave stato attribuito a lettoken se questo egrave uno spazio (sptoken) usa lavirgola di punteggiatura altrimenti usa la virgola come simbolo I comandi ifxelse e fi servono appunto per eseguire questi comandi condizionali Sta oraal compositore lasciare uno spazio dopo la virgola (in matematica) solo quandoquesta rappresenta un segno di punteggiatura mentre non deve lasciare nessunospazio se deve comportarsi da separatore decimale

Il risultato di questo comando egrave visibile in ogni numero decimale fratto scrittoin questo testo ma qui egrave opportuno confrontare bene che cosa si ottiene se inmatematica si scrive f(xy) oppure f(xy) f(xy) nel primo caso ma f(x y)nel secondo La differenza egrave piccola ma si vede benissimo

Tuttavia ci si puograve domandare se per caso non sia possibile fare a menodellrsquoinserimento di uno spazio dopo la virgola quando questa ha il significato disegno di interpunzione sigrave egrave possibile ma bisogna definire la virgola attiva inmodo un poco piugrave complesso

defmthcommalettempBvirgolatfortempA=0123456789doexpandafterifxtempAlettokenlettempBdecimalcommabreaktforfitempB

che si basa su una macro interna del nucleo di LATEX tfor la quale ripe-te un certo insieme di comandi tante volte quanti sono i token che seguonolrsquoindicazione= Nel nostro caso questi token sono costituiti dalle dieci cifre

174 RIDEFINIZIONI DI COMANDI DI SISTEMA 313

decimali lrsquoargomento del comando do viene ripetuto assegnando successiva-mente uno dei token della lista alla macro tempA quindi viene ripetuto almassimo dieci volte Se il token seguente la virgola nel testo sorgente memoriz-zato nella sequenza lettoken egrave uguale al token via via memorizzato nellamacro tempA cioegrave egrave un cifra decimale allora il valore di default di tempBinizializzato alla virgola di punteggiatura viene cambiato nel valore attributoalla virgola decimale decimalcomma e al termine della macro ripetitiva vieneeseguito il comando tempB Gli altri comandi presenti nel corpo della macroripetitiva come expandafter o breaktfor servono per scopi di program-mazione particolari expandafter serve per confrontare il contenuto di unamacro con un token implicito e per poterlo fare bisogna prima sviluppare lamacro breaktfor serve per interrompere le iterazioni del comando ripetitivonon appena si egrave scoperto che il token implicito egrave una cifra

Usando questa definizione per mthcomma invece di quella precedentementeindicata il ldquotastieristardquo non deve ricordarsi di inserire spazi dopo la virgolatranne in un unico caso quando dovesse scrivere una lista di numeri come in

perogni$i=12dotsn$

Componendo in inglese non si deve eseguire nessuna definizione strana dellavirgola quindi se si vogliono inserire questi comandi in un file di macro personaliegrave meglio racchiuderli dentro gli argomenti del comando di babel iflanguageche ha la seguente sintassi

iflanguage〈lingua〉〈vero〉〈falso〉

dove 〈lingua〉 egrave il nome dellrsquoopzione passata a babel come lingua di defaultmentre 〈vero〉 sono le azioni da eseguire se la lingua di default egrave quella specificataaltrimenti si eseguono le azioni indicate da 〈falso〉

Nel nostro caso converrebbe inserire nellrsquoargomento di AtBeginDocument ilcostrutto

AtBeginDocumentiflanguageitalianmathcodelsquo=8000relax

cioegrave se la lingua di default egrave lrsquoitaliano dichiara attivo il simbolo della virgolain matematica altrimenti rilassati (non fare nulla) Si potrebbe rovesciare iltest eseguendo il test sullrsquoinglese invece che sullrsquoitaliano in modo da usare lavirgola come separatore per tutte le lingue eccetto lrsquoinglese Solo che lrsquoinglese puograveessere richiamato anche con i nomi USenglish american british UKenglisheccetera quindi il test potrebbe diventare molto complicato per esempio

AtBeginDocumentiflanguageenglishrelax

iflanguageamericanrelaxiflanguagebritishrelax

mathcodelsquo=8000

facendo molta attenzione a chiudere le graffe nellrsquoordine giusto e senza dimenti-carne nessuna

Questi due esempi ricorrono a comandi primitivi e ai codici di categoriamatematici non si tratta di concetti adatti ad una introduzione ma non sono

314 CAPITOLO 17 LATEX NUOVI COMANDI

nemmeno concetti inaccessibili il lettore che voglia approfondire deve esaminaree studiare il TEXbook dove questi argomenti sono trattati in diversi capito-li si veda anche lrsquoappendice A Conviene anche documentarsi sul nucleo diLATEX sebbene la documentazione sia piuttosto essenziale essa si trova nel-la cartella sourcelatexbase nei file il cui nome comincia con lt edhanno estensione dtx sono normali file da aprire con lo stesso editor con cuisi compongono i file sorgente dei documenti e contengono sia il codice sia icommenti che lo descrivono purtroppo si tratta di commenti molto concisi manon incomprensibili

Un altro esempio tratto dalle piccole modifiche eseguite per la composizionedi questo testo egrave un comando per dare un formato alle righe degli elenchi dellefigure e delle tabelle Il comando di formato di queste righe egrave specificato nel filedella classe nel nostro caso di bookcls vi si legge

newcommandlfiguredottedtocline115em23emletltablelfigure

Si osserva innanzi tutto che il comando per la formattazione delle righe dellalista delle tabelle ltable viene reso equivalente alla definizione appena dataal comando per la formattazione delle figure lfigure Se quindi cambiamo ilsecondo dobbiamo ricordarci di rieseguire lrsquoequivalenza dei comandi

Per quel che riguarda la formattazione di queste righe vediamo che il comandolfigure si affida allrsquoesecuzione del comando dottedtocline il cui nomericorda il fatto che queste righe degli indici sono di solito fornite della fila dipuntini che guida lrsquoocchio dal titolo al numero della pagina I parametri chequesto comando riceve sono in realtagrave cinque ma gli altri gli vengono passati daglialtri comandi che servono per recuperare e stampare le informazioni da inserirenellrsquoindice cioegrave il titolo (nel nostro caso la didascalia (breve) della figura o dellatabella) e il numero della pagina Ma nel listato di sopra i tre parametri hannoi significati seguenti (a) il primo dice che la riga deve essere formattata comequello dei paragrafi (livello 1) (b) il secondo rappresenta il rientro della riga sinota infatti che la riga dei paragrafi nellrsquoindice di questo testo egrave rientrata quelladei sotto paragrafi egrave rientrata di piugrave eccetera (c) il terzo parametro specifica lospazio da destinare al numero specifico della figura o della tabella oltre allo spazioche divide questo numero dallrsquoinizio del titolo riportato nellrsquoindice Ecco questoterzo valore va benissimo se il numero del capitolo egrave inferiore a 9 e se il numerodella figura o della tabella egrave inferiore anchrsquoesso a 9 cioegrave se sono entrambi di unacifra (o lrsquouno o lrsquoaltro o entrambi) In questo testo dei capitoli con un numero didue cifre contengono piugrave di nove figure e non resta nessuno spazio fra il numeroe il titolo il che sta evidentemente male Basta aumentare lo spazio di 23emdi quanto basta per metterci unrsquoaltra cifra 1em egrave largo praticamente come unalettera lsquoMrsquo e un cifra egrave larga circa la metagrave (tranne la cifra 1 che graficamentesembra piugrave stretta ma in realtagrave insieme agli spazi che la contornano occupalo stesso spazio delle altre egrave voluto percheacute cosigrave le tabelle di numeri risultanoincolonnate anche se contengono delle cifre 1) Basta allora ridefinire il comandodi sistema cosigrave

renewcommandlfiguredottedtocline115em28emletltablelfigure

175 ESISTE GIAgrave O NON ESISTE ANCORA IL COMANDO 315

ricordando di inserire queste ridefinizioni in un file di macro personali (a causadel segno ) e di non dimenticare lrsquoequivalenza fra ltable e lfigure

175 Esiste giagrave o non esiste ancora il comandoTalvolta si vuole essere sicuri che un comando sia disponibile ma non si sa seesso sia giagrave stato definito in qualche pacchetto di estensione Allora si puograve usareil comando providecommand che ha la stessa sintassi di newcommand

providecommand〈macro〉[〈num-argomenti〉][〈default〉]〈definizione〉providecommand〈macro〉[〈num-argomenti〉][〈default〉]〈definizione〉

e accetta anche lrsquoasterisco facoltativo con lo stesso significato che esso ha pernewcommand

Si ricorre spesso a questo tipo di definizione nel proprio file di macro personalicosiccheacute il comando definito attraverso questa istruzione viene sempre definito seil comando non egrave giagrave stato definito da altri altrimenti questa definizione vienetranquillamente ignorata e viene usata la definizione giagrave esistente Logicamentepercheacute questo funzioni come desiderato egrave necessario che il proprio file di macropersonali sia sempre invocato per ultimo

Nel preambolo di questo testo per esempio si egrave provveduto il comando ohmnel modo seguente

providecommandohmtextormathtextohmmathrmOmega

dove textormath egrave un comando fornito dal pacchetto babel per specificare dueazioni diverse da eseguire in modo testo invece che in modo matematico in modomatematico si egrave specificato di usare il font tondo diritto per ovviare al casoin cui si sia deciso di usare le lettere greche maiuscole inclinate nelle normaliespressioni matematiche

176 Definizione di comandi robustiUn comando si dice robusto se esegue quel che deve eseguire in qualunquecircostanza ciograve non egrave sempre vero specialmente se esso contiene nella suadefinizione dei comandi condizionali e se costituisce o puograve costituire lrsquoargomentodi un altro comando

Egrave prudente allora definire comandi robusti confezionati con cautele parti-colari i cui dettagli sono troppo tecnici da spiegare qui Il tutto viene eseguitomediante il comando DeclareRobustCommand che puograve venire usato solo nelpreambolo o bene inteso anche nei file di classe o di estensione che comun-que vengono letti solo nel preambolo La sua sintassi egrave identica a quella dinewcommand bisogna stare attenti che esso non verifica se il comando da defini-re esista giagrave o sia davvero un comando nuovo quindi questa lsquodichiarazionersquo devevenire usata con molta cautela da programmatori esperti tuttavia se si fossedefinito un comando con newcommand e questo avesse passato i controlli di defi-nibilitagrave ma nellrsquouso risultasse fragile allora non sarebbe un problema cambiarela dichiarazione newcommand con DeclareRobustCommand e tutto procedereb-be come desiderato con la certezza di non avere pasticciato con comandi giagraveesistenti

316 CAPITOLO 17 LATEX NUOVI COMANDI

Nellrsquoappendice G viene descritto il comando protect esso serve per rendererobusti i comandi fragili il comando DeclareRobustCommand agisce attraversoprotect ma passa anche per lrsquointermediario di un nuovo comando apparente-mente con lo stesso nome di quello che costituisce il suo argomento ma prolungatocon uno spazio che fa parte integrante del suo nome se si vuole rendere robustoil comando pippo DeclareRobustCommand protegge mediante protect ilcomando pippo e a questo assegna la definizione specificata Questo aiuta arendere robusti i comandi quando essi vengono scritti nei file ausiliari quandoquesti file vengono riletti in una esecuzione successiva tutto quello che vieneletto ripassa attraverso il processo di lsquotokenizzazionersquo e lo spazio letto dal fileridiventa un normale spazio privo di significato quando segue il nome di uncomando Ingegnoso ma talvolta i neofiti non riescono a rendersi conto di questopassaggio

177 Definizione di un nuovo ambientePer definire un nuovo ambiente si ricorre al comando newenvironment con laseguente sintassi

newenvironment〈ambiente〉[〈num_arg〉][〈default〉]〈comandi di apertura〉〈comandi di chiusura〉

Lrsquo〈ambiente〉 egrave il nome dellrsquoambiente che si vuole definire e che non deve esi-stere giagrave altrimenti viene emesso un messaggio drsquoerrore e la compilazione deldocumento viene bloccata

Lrsquoambiente che viene definito puograve ricevere solo in apertura un certo numero〈num_arg〉 di argomenti il primo dei quali puograve essere facoltativo se vienespecificato 〈default〉 e va trattato come il primo argomento facoltativo definitocon newcommand

Seguono poi i 〈comandi di apertura〉 da eseguire allrsquoinizio dellrsquoambiente ilquali fanno uso esplicito degli argomenti eventualmente presenti obbligatori ofacoltativi infine vengono definiti i 〈comandi di chiusura〉 da eseguire appenaprima di chiudere lrsquoambiente

In realtagrave definire un 〈ambiente〉 equivale a definire due comandi uno perlrsquoapertura e lrsquoaltro per la chiusura come se si fossero definiti i due comandiseguenti

newcommand〈ambiente〉[〈num_arg〉][〈default〉]〈comandi di apertura〉newcommandend〈ambiente〉〈comandi di chiusura〉

I comandi begin e end con i quali si aprono e si chiudono gli ambienti eseguonodelle funzioni importanti fra le quali la costituzione di un gruppo cosiccheacute tuttoquello che si fa dentro allrsquoambiente rimane locale e circoscritto solo e soltanto aquellrsquoambiente il comando end oltre a chiudere il gruppo provvede a verificareche si stia chiudendo lrsquoultimo ambiente che si era aperto in caso contrario vieneemesso un messaggio drsquoerrore

Il fatto dei due comandi distinti per lrsquoapertura e la chiusura di un ambientepuograve essere sfruttato nella definizione di nuovi ambienti per esempio in questodocumento il file MaroGuidasty che contiene le definizioni utili alla composi-zione di questo testo definisce lrsquoambiente sintassi che provvede a stampare la

177 DEFINIZIONE DI UN NUOVO AMBIENTE 317

sintassi dei vari comandi incorniciando il suo contenuto in un rettangolo chefa da cornice In questo modo si egrave pensato di definire lrsquoambiente medaglioneche incornicia il suo contenuto e lrsquoambiente sintassi che espone il medaglioneincorniciato ma separato dal testo che lo precede e che lo segue di uno spazioverticale uguale a quello che si ha nei testi in display in particolare si richiedeche il testo sia giustificato solo a sinistra le due definizioni sono le seguenti

newenvironmentmedaglione[1][linewidth]setbox0vboxbgrouphsize1advancehsize-2fboxsepadvancehsize-2fboxrule

noindentparegroupsetbox0vboxunvbox0frameboxbox0

newenvironmentsintassiflushleftmedaglione

endmedaglioneendflushleft

Lrsquointerpretazione delle definizioni per lrsquoambiente sintassi egrave abbastanza semplicein apertura esegui le istruzioni per comporre un testo in display giustificato soloa sinistra e poi esegui le operazioni per lrsquoapertura di un medaglione in chiusuraesegui le operazioni per terminare il medaglione e quelle per terminare il testo indisplay giustificato a sinistra

I comandi per la definizione del medaglione sono piugrave complicatie richiedono la conoscenza approfondita dei comandi primitiviSi osservi innanzi tutto che lrsquoambiente accetta un argomentofacoltativo il cui valore di 〈default〉 vale linewidth Questopuograve essere utile per incorniciare e mettere in evidenza anchetesti che non abbaino riferimento con la sintassi dei comandicome si egrave fatto con questo capoverso

A parte lrsquoargomento facoltativo in sostanza i comandi di apertura dicono checon setbox si deve riempire un registro di tipo box quello numerato lsquozerorsquo conuna scatola verticale vbox la cui apertura egrave indicata con il comando bgroupin questa scatola verticale si compone del testo usando una giustezza di hsizeimpostato al valore corrente del primo argomento 1 esplicitamente specificatoo il suo valore di default ma si diminuisce questo valore di quanto basta pertenere conto dello spazio fra la cornice e il suo contenuto valore che egrave conservatodentro il registro di tipo lsquolunghezzarsquo chiamato fboxsep e dello spessore delfiletto conservato dentro il registro fboxrule7 inoltre si ordina di comporresenza il rientro dei capoversi mediante noindent

Nei comandi di chiusura bisogna accertarsi che il capoverso costituito dal con-tenuto del medaglione sia effettivamente terminato ordinandone la terminazionecon il comando par e si termina il gruppo che chiude la scatola verticale conegroup si riassegna poi il contenuto della scatola lsquozerorsquo ancora alla scatola lsquozerorsquoestraendo le singole righe ovverosia disfacendo la scatola lsquozerorsquo con il comandounvbox questo serve per essere sicuri che le righe siano convenientemente spa-ziate spesso questa operazione egrave inutile ma non guasta infine si usa questascatola con box come argomento di framebox al fine di incorniciarla

La persona che si avvicina per la prima volta al contenuto di questo capitolopuograve restare sconcertata anche da questo linguaggio strano costituito dai comandi

7Invece dei comandi primitivi di tex si potrebbero usare quelli estesi di pdftex e scriverehsize=dimexpr1-2fboxsep-2fboxrulerelax

318 CAPITOLO 17 LATEX NUOVI COMANDI

primitivi di TEX che tra lrsquoaltro non sono mai citati o descritti in questo testoBersquo questo testo egrave introduttivo non esaustivo il lettore si accontenti di questoprimo assaggio e poi si documenti convenientemente nel TEXbook se vuole andareoltre a questi primi passi

Nello stesso tempo si capisce bene a che cosa possano servire le macro pereseguire nellrsquoordine giusto tutta una serie di operazioni se si dovessero specificareogni volta che si deve fare una certa operazione costringerebbero a scrivere e ariscrivere sempre le stesse cose con il pericolo di aggiungere errori ogni volta chesi ripetono queste scritture

178 La ridefinizione di ambienti esistentiLa ridefinizione di ambienti giagrave esistenti si esegue con renewenvironment cheusa la stessa sintassi di newenvironment Viene scambiato solo il tipo di testse lrsquoambiente da ridefinire non esiste viene emesso un messaggio di errore e lacompilazione viene interrotta

Per gli ambienti non esiste un comando simile a providecommand ma inbase a ciograve che egrave stato detto a proposito dei nuovi ambienti non dovrebbe esseredifficile per chiunque usare due volte il comando providecommand per definirelrsquoapertura e la chiusura di un ambiente purcheacute tutto ciograve sia fatto nel proprio filedi macro personali

Non egrave nemmeno difficile copiare dai file di classe o di estensione le definizionidi ambienti giagrave esistenti travasando le definizioni nel proprio file di macropersonali per poi separare le due definizioni di apertura e di chiusura in duedistinti comandi providecommand dentro alle cui definizioni apportare tutte lemodifiche che si credono opportune

Qui si porteragrave un esempio abbastanza articolato relativo alla modifica diun ambiente di sistema la modifica dellrsquoambiente theindex per la composizionedellrsquoindice analitico

Si vorrebbe cambiare la formattazione nel senso di comporre lrsquoindice semprea due colonne ma facendolo precedere da una spiegazione per lrsquouso composta apiena pagina Vorremmo anche che lrsquoindice analitico figurasse anche nellrsquoindicegenerale La prima cosa da fare egrave quella di esplorare lrsquoarchivio ctan per vederese il problema sia giagrave stato risolto Qui supporremo di non aver trovato nulla chevada bene per il nostro caso e quindi rimboccandoci le maniche ma esercitandola nostra creativitagrave ci accingiamo a modificare la definizione esistente

Bisogna quindi copiare la definizione dellrsquoambiente theindex dal file di classeche stiamo usando per comporre il nostro documento nel nostro file di ma-cro personali mymacrossty Per la classe book copieremo pertanto il codiceseguente

newenvironmenttheindexiftwocolumn

restonecolfalseelserestonecoltrue

fitwocolumn[makeschapterheadindexname]mkbothMakeUppercaseindexname

178 LA RIDEFINIZIONE DI AMBIENTI ESISTENTI 319

MakeUppercaseindexnamethispagestyleplainparindentzparskipz plus 3prelaxcolumnseprule zcolumnsep 35pletitemidxitemifrestonecolonecolumnelseclearpagefi

newcommandidxitemparhangindent 40pnewcommandsubitemidxitem hspace20pnewcommandsubsubitemidxitem hspace30pnewcommandindexspacepar

vskip 10p plus5p minus3prelax

Le ultime definizioni servono per formattare le singole voci in particolare perinserire i debiti rientri per mettere in evidenza i tre livelli di voci disponibiliLrsquoultima definizione quella di indexspace serve per inserire uno spazio verticalenellrsquoelenco composto ogni volta che si inizia una serie di voci con una nuovalettera dellrsquoalfabeto

Per poter scrivere su due colonne dopo aver cominciato a scrivere a pienapagina egrave conveniente aver caricato il pacchetto multicol potremmo anche inserireun test per verificare se il pacchetto egrave stato davvero giagrave caricato ma per semplicitagraveometteremo questo controllo

Allora modifichiamo la definizione dellrsquoambiente in particolare la definizionedei comandi di apertura (a) in modo da inserire lrsquoordine di scrivere nellrsquoindi-ce generale il nome dellrsquoindice analitico e in modo da non usare il comandotwocolumn ma lrsquoambiente multicols fornito dal pacchetto multicol Lasciamostare gli ultimi tre comandi come sono per cui qui non li ripetiamo Ovvia-mente cambiamo newenvironment in renewenvironment visto che stiamoridefinendo un ambiente esistente

renewenvironmenttheindexiftwocolumn

restonecolfalseelse

restonecoltruefimakeschapterheadindexnamemkbothMakeUppercaseindexname

MakeUppercaseindexnameaddcontentslinetocchapterindexnamethispagestyleplainparindentzparskipz plus 3prelaxcolumnseprule zcolumnsep 35pletitemidxitem Testo di spiegazioneIn questo indice analitico le voci hannoil numero di pagina in neretto quando sitratta di una definizione e in corsivo

320 CAPITOLO 17 LATEX NUOVI COMANDI

quando si tratta di un esempio drsquousoparvspacs3baselineskipmulticols2 Fine comandi di apertura

Inizio comandi di chiusuraendmulticolsifrestonecolonecolumnelseclearpagefi

Qualche parola di spiegazione non guasta Il test iniziale eseguito mediante ilcomando iftwocolumn appare allrsquoinizio di ogni definizione di comandi o diambienti che comincino un nuovo capitolo numerato o non numerato Servonoper stabilire se dopo la chiusura dellrsquoambiente sia o non sia necessario ripristinarela composizione a una colonna lrsquoultimo test nei comandi di chiusura eseguitocon il comando ifrestonecol serve appunto per ripristinare la composizionead una colonna nel caso che sia necessario

Il comando makeschaperhead egrave il comando con il quale viene composto iltitolo di un capitolo non numerato in questo caso il titolo del capitolo egrave contenutonella variabile indexname che babel carica con il nome giusto a seconda dellalingua in uso lsquoIndice analiticorsquo lsquoIndexrsquo

Il comando mkboth seguito dai suoi due argomenti serve per impostare ilcontenuto delle due testatine prima viene indicato il contenuto della testatinadi sinistra poi quello di destra Il contenuto egrave sempre il nome in lingua cor-rente dellrsquoindice analitico ma reso in lettere maiuscole attraverso il comandoMakeUppercase

Il comando addcontentsline come dice il nome serve per aggiungere unariga alla lsquotable of contentsrsquo cioegrave allrsquoindice generale I suoi tre argomenti indicanorispettivamente la sigla della lsquotable of contentsrsquo toc il tipo di voce da aggiungerea questa lista in questo caso si tratta di una voce corrispondente al titolo di uncapitolo segue poi il titolo del capitolo che in questo caso continua ad essere ilnome dellrsquoindice analitico nella lingua corrente

Il comando thispagestyle specifica lo stile compositivo di questa primapagina di questo nuovo capitolo in questo caso si tratta dello stile plain che noncontiene la testatina ma contiene il numero della pagina nel piedino Gli altri stilidefiniti di default sono empty senza testatina neacute piedino headings con piedinovuoto e testatina il cui contenuto viene specificato automaticamente dai comandichapter oppure section in particolare nella testatina di sinistra compare iltitolo del capitolo e in quella di destra il titolo del paragrafo corrente allrsquoiniziodella pagina Infine myheadings egrave simile a headings solo che il contenuto delledue testatine deve essere fissato manualmente dal compositore specificando divolta in volta entrambe le testatine oppure solo quella di destra attraverso icomandi markboth oppure markright

La scrittura parindent z serve per specificare che il rientro del capo-verso deve essere di zero punti questo valore egrave memorizzato nella variabile disistema z che equivale alla scrittura 0 pt

La successiva espressione parskipz plus 3prelax serve per spe-cificare un pochino di gomma elastica da inserire fra un capoverso e lrsquoaltroin pratica fra una voce e lrsquoaltra questo minimo di allungamento consente digiustificare verticalmente le colonne della composizione a due colonne

La specificazione successiva columnseprule z specifica che lo spessoredel filetto verticale che separa le colonne egrave di zero punti (quindi il filetto non

179 SITUAZIONI PARTICOLARI 321

crsquoegrave) Invece columnsep 35p dice che la separazione fra le due colonne vale35 pt quindi una decina di millimetri

Al comando item che abitualmente viene usato nelle liste qui viene asse-gnata unrsquoaltra definizione quella che egrave stata attribuita al comando idxitem eche non egrave stata modificata nellrsquoeseguire questa nuova definizione dellrsquoambientetheindex

Segue poi il testo di spiegazione che qui egrave stato limitato a poche righe giustoper fare un esempio alternativamente questo testo potrebbe essere incluso in unamacro e invece di usare il testo completo nella definizione del nuovo ambientesi sarebbe potuto indicare solo il nome della macro

Finita la spiegazione il comando par assicura che il capoverso contenentele spiegazioni sia veramente terminato il successivo comando di spaziaturaverticale dato con vspace inserisce una spaziatura di tre righe di testo infattibaselineskip indica appunto lrsquoavanzamento di riga quindi lrsquoaltezza completadi interlinea di una riga di testo

I comandi di apertura finiscono con lrsquoapertura dellrsquoambiente multicols alquale viene specificato di comporre su due colonne non egrave stata usata la sintassinormale per aprire lrsquoambiente percheacute siamo sicuri di chiuderlo nei comandi dichiusura come in effetti facciamo eseguendo il comando endmulticols

Questo esempio egrave istruttivo sotto molti aspetti dagrave una buona idea di ciograveche viene eseguito dietro le quinte quando si dagrave un comando qualunque dicequanto sia comodo che le macro possano fare tutto quello che fanno cosigrave che conun semplice comando di mark-up si possano sistematicamente e uniformementeeseguire le stesse operazioni compositive quanto lavoro si risparmi nellrsquousaremacro ogni volta che sia possibile e quindi quanto sia opportuno che in base altesto che si sta componendo il file mymacrossty contenga proprio le definizionidelle macro personali che servono per comporre le strutture lessicali che piugravefrequentemente compaiono nel testo

179 Situazioni particolari

1791 Le linee guidaLe linee guida sono quelle linee continue oppure linee di puntini o di altri simboliche guidano lrsquoocchio da una parte allrsquoaltra della pagina come in questa riga

Inizio Fine

In inglese le linee guida si chiamano leadersLATEX contiene giagrave le definizioni di alcune linee guida hrulefill e dotfill

il primo comando produce una linea continua appoggiata alla base della riga distampa comein questa riga formata da una linea spessa 04 pt agendo a livello di comandiprimitivi egrave possibile ridefinire il comando o definirne un altro con una riga piugravespessa eo non adagiata sulla linea di base lrsquoaltro comando produce una fila dipuntini come in questa riga

Egrave possibile definire o ridefinire i comandi che generano le linee guida maovviamente egrave sconsigliabile ridefinire i comandi del nucleo di LATEX indicati soprapercheacute LATEX li usa dentro altri comandi e la loro modifica potrebbe alterare in

322 CAPITOLO 17 LATEX NUOVI COMANDI

modo irreparabile i comandi che ne fanno uso perciograve qui faremmo esempi cheusano newcommand per essere sicuri di non ridefinire nulla di preesistente

Ogni linea guida egrave creata con una serie di comandi secondo la sintassi seguente

leaders〈scatola〉hskip〈gomma〉cleaders〈scatola〉hskip〈gomma〉xleaders〈scatola〉hskip〈gomma〉

La comprensione dei termini usati in queste definizioni egrave facilitata se si rivedonoquesti concetti nellrsquoappendice G

Brevemente in questo contesto per 〈scatola〉 si intende sia una scatola vera epropria da riempire con quello che si vuole sia un rettangolo nero (una scatolariempita di nero) il comando hskip serve per produrre uno spostamentoorizzontale percheacute la linea guida sia arbitrariamente estensibile lo spostamentodeve essere elastico ed egrave per questo che viene chiamato 〈gomma〉 questa 〈gomma〉egrave una speciale lunghezza che egrave formata da tre termini

1 la lunghezza naturale

2 lrsquoallungamento il cui ammontare egrave preceduto dalla parola chiave plussostituita nel nucleo di LATEX dalla macro plus

3 lrsquoaccorciamento il cui ammontare egrave preceduto dalla parola chiave minussostituita nel nucleo di LATEX dalla macro minus

Tutte le lunghezze definite con i comandi di LATEX sono in effetti delle gommePer esempio la lunghezza definita come segue

newlengthlamialunghezzasetlengthlamialunghezza10pt plus 5pt minus 3pt

definisce una lunghezza elastica (gomma) con il nome lamialunghezza la cuilunghezza naturale egrave di 10 pt il cui allungamento vale 5 pt e il cui accorciamentovale 3 pt insomma una lunghezza che si puograve estendere da 7 pt a 15 pt a secondadelle necessitagrave

Tanto per focalizzare meglio la natura della gomma lo spazio interparolaegrave una lunghezza elastica che ha una sua larghezza naturale pari a quella dellalettera lsquoersquo nel font corrente e un allungamento e un accorciamento entrambi piugravepiccoli della larghezza naturale TEX tiene conto di quanto lo spazio interparolapresente fra le parole di una riga si debba allargare o restringere per la suagiustificazione al fine di determinare la ldquobellezzardquo della riga o meglio la sualdquobruttezzardquo in base ad elaborati calcoli eseguiti sui valori di allungamento eaccorciamento effettivi TEX determina un livello di bruttezza da confrontarecon il valore della tolerance o della pretolerance al fine di accettare onon accettare quella particolare riga oppure per decidere se eseguire la cesurain fin di riga oppure se emettere un messaggio che avvisa lrsquooperatore che inquel capoverso crsquoegrave una riga troppo vuota (undefull hbox) o sporgente fuori dalmargine (overfull hbox) Si tratta di concetti molto tecnici ma egrave meglio averneuna conoscenza almeno superficiale

Tornando alle nostre linee guida la 〈gomma〉 da usare deve avere una compo-nente di allungamento infinita se vogliamo che i nostri leader si possano allungarea piacere Infatti le definizioni delle due linee guida predefinite sono

179 SITUAZIONI PARTICOLARI 323

defhrulefillleavevmodeleadershrulehfillkernz

defdotfillleavevmodecleaders hbxt 44emhsshsshfillkernz

Il comando leavevmode assicura che il comando venga usato in modoorizzontale Il comando kernz assicura che dopo la linea guida si proseguasenza ulteriori spazi e senza andare a capo il comando hfill indica di inserireun spazio dato da una gomma con una lunghezza naturale nulla e un allungamentoinfinito

Nella definizione di hrulefill compare la scatola nera il rettangolo nerohrule con una larghezza naturale che non influisce sulla lunghezza della lineaguida con altezza peri a 04 pt e profonditagrave nulla il suo effetto egrave quindi diprodurre una linea guida lunga quanto occorre ma spessa solo 04 pt appoggiataalla linea di base

Nella definizione di dotfill compare il codice hbxt 44em il cui ar-gomento vale hsshss Il primo comando egrave scritto in modo sintetico edequivale al comando LATEX makebox[044em] Lrsquoargomento di questa scatolaegrave un punto fermo e da due gomme hss di spazio orizzontale di lunghezza nullama di allungamento e accorciamento infiniti Il tutto egrave equivalente al comandoLATEX makebox[044em] e il punto egrave centrato dentro la scatola di 044 pt

Tuttavia sopra si sono indicati tre tipi di linee guida uno introdotto daleaders il secondo da cleaders il terzo da xleaders che differenza crsquoegrave fraquesti tre tipi di linee guida

1 leaders introduce i suoi puntini definiti mediante una scatola vera noncon un rettangolo nero come se fossero su una griglia fissa per cui da unariga allrsquoaltra come succede per esempio in un indice generale i puntinisono sempre incolonnati anche se questo comporta un eventuale spaziobianco allrsquoinizio e alla fine che lrsquoincolonnamento dei puntini impedisce diriempire

2 cleaders introduce i suoi puntini centrando la linea di puntini senzapreoccuparsi che siano incolonnati va bene in una linea guida isolata ditesto ma non in un indice generale dove le linee guida se ci sono egrave meglioche abbiano i puntini incolonnati

3 analogamente xleaders introduce i suoi puntini allargando un poco lospazio fra di loro in modo da estendere la linea guida cosigrave che non soloil primo e lrsquoultimo spazio siano uguali ma anche lo spazio restante siadistribuito fra i puntini presenti

Si considerino le seguenti tre definizioni di tre diverse linee guida

newcommandpuntinileadershbox to 10pthsshsshfillkern0ptnewcommandcpuntinicleadershbox to 10pthsshsshfillkern0ptnewcommandxpuntinixleadershbox to 10pthsshsshfillkern0pt

e si inseriscano le linee guida cosigrave definite in una scatola larga 99 pt inserita fradue parole Siccome ogni scatola-puntino delle linee guida egrave larga 10 pt nellospazio di 99 pt ce ne stanno 9 i restanti 9 pt vengono distribuiti diversamentefra lrsquoinizio e la fine a seconda del tipo di linea guida usata

324 CAPITOLO 17 LATEX NUOVI COMANDI

leaders Prima Dopocleaders Prima Dopoxleaders Prima Dopo

Si noti anche che nelle definizioni del nucleo di LATEX la grandezza dellascatola-puntino egrave definita in termini di lsquoemrsquo cioegrave di una unitagrave di misura chedipende dal font usato quindi anche se leaders dovrebbe essere in grado diassicurare lrsquoincolonnamento dei puntini questo non puograve succedere se i capitolisono composti in neretto e i paragrafi in serie media Questo egrave il motivo per ilquale nellrsquoindice generale di questo testo (e nelle classi standard) le righe cheriguardano i capitoli sono senza linee guida Se le avessero succederebbe quelloche appare nel seguente esempio

1 Primo capitolo 111 Primo paragrafo 112 Secondo paragrafo 2

Si vede chiaramente la mancanza dellrsquoincolonnamento fra i puntini della riga delcapitolo e quella dei paragrafi si nota anche la presenza di spazi diversi fra lelinee guida e il contenuto che loro ldquounisconordquo visivamente Queste disuniformitagravecomunque diminuiscono via via che le scatole-puntino vengono accorciate e ipuntini effettivamente inseriti nelle linee guida sono piugrave densi

Va anche da seacute che al posto dei puntini si potrebbero indicare degli altrisimboli testuali matematici o decorativi

1792 Controllo della posizione di grandi oggettiIn questo testo lo schema del layout delle pagine egrave mostrato sia a partire dal versodellrsquoocchiello sia nelle pagine 282 e seguente sia nelle pagine 364 e seguente

Nello stesso modo si potrebbe spezzare una lunga tabella di due pagineaffincheacute cominci su una pagina pari o una larga tabella da mettere su due pagineaffacciate con metagrave delle colonne nella pagina pari e lrsquoaltra metagrave nella paginadispari Gli esempi potrebbero andare avanti a lungo

Si potrebbe pensare di usare il comando afterpage fornito dal pacchettoafterpage Ma questo comando esegue quanto indicato nel suo argomento nonappena egrave finita la pagina corrente indipendentemente dal numero pari o disparidella pagina appena terminata Bisognerebbe procedere a tentoni e correggernela posizione ad ogni modifica del testo del documento

Abbiamo chiesto allrsquoautore del pacchetto afterpage se non avesse volutorimettere le mani sul suo pacchetto per aggiungere altri comandi che verificasseroin automatico la paritagrave del numero della pagina Noi non volevamo mettere lemani sul suo codice tanto piugrave che il suo codice agiva sulla routine di uscita cosache solo un TEXwizard puograve essere capace di fare David Carlisle ci ha rispostogentilmente che non se la sentiva di rimettere le mani nel suo codice scrittoquindici anni prima ma ci incoraggiava ad eseguire un comando ricorsivo di cuici forniva il modello dicendoci che non lrsquoaveva controllato e amichevolmenteinvitandoci a tentare la sorte Ma i veri TEXwizard come lui la sanno molto lungalo ringraziamo moltissimo per averci permesso di realizzare delle macro ricorsivea partire dalle sue indicazioni (che funzionavano benissimo naturalmente)

Nel file MacroGuidasty che contiene le definizioni delle macro usate percomporre questo testo appaiono le righe di codice che seguono dove vengono

179 SITUAZIONI PARTICOLARI 325

definiti i due comandi supaginapari e supaginadispari il secondo dei qualimeno utile del primo ma certamente non inutile

ifpackageloadedafterpagerelaxRequirePackageafterpage

newcommandsupaginapari[1]afterpageifoddvaluepagedefnextafterpage1elsedefnext1finext

newcommandsupaginadispari[1]afterpageifoddvaluepagedefnext1elsedefnextafterpage1finext

Poicheacute i due comandi si affidano allrsquoesistenza della macro afterpage definitadal pacchetto afterpage per prima cosa si verifica che il pacchetto sia giagravestato caricato se non lo fosse si provvede in merito Se la chiamata fosse inseguito ripetuta non sarebbe un problema percheacute i comandi RequirePackagee usapackage verificano sempre da soli se il o i pacchetti indicati nel loroargomento siano o non siano giagrave stati caricati affincheacute non vengano caricatinuovamente con il pericolo di annullare eventuali ridefinizioni di comandi eseguitedal programmatore o da altri pacchetti caricati fra la prima e la secondachiamata

La struttura dei due comandi egrave simile quando lrsquoargomento della macropassato ad una chiamata di afterpage viene eseguito egrave appena stata emessauna pagina e il numero di pagina egrave stato appena incrementato se era stataappena emessa una pagina pari il nuovo numero di pagina egrave dispari o viceversaQuindi il test eseguito con il comando primitivo ifodd verifica la disparitagravedel contenuto del contatore page attraverso lrsquouso della macro value se questocontenuto ha la paritagrave giusta definisce il comando next con lrsquoargomento dellamacro da noi definita altrimenti definisce next in modo che venga rigeneratolrsquoargomento al comando afterpage che verragrave eseguito alla fine della paginasuccessiva Finito il test la macro esegue il comando next che fa quantodesiderato cioegrave a seconda della paritagrave della pagina appena emessa esegue icomandi che noi avevamo passato come argomento oppure li riaccoda con unaltro afterpage

Ecco quindi che i layout delle pagine affacciate di cui si parlava allrsquoinizio diquesto paragrafo egrave stato specificato con

supaginaparilayout

e il disegno delle due pagine affacciate appare sempre a cominciare da una paginapari la prima disponibile dopo aver dato quel comando

1793 Immagini celle e scatoleIl titolo di questo paragrafo egrave un porsquo enigmatico in realtagrave il problema egrave sempliceinserire immagini nelle celle di una tabella puograve risultare difficile a meno che nonsi sia disposti a manipolare le scatole

Nel resto di questo testo non si egrave detto molto sulle scatole lrsquoarte di eseguire lacomposizione tipografica con LATEX dovrebbe astenersi dal manipolare le scatoleinterne dellrsquointerprete TEX almeno in prima battuta

Ciograve non toglie che qualche nozione non possa essere utile anche per capiremeglio alcuni strani costrutti eseguiti con le scatole nella definizione di alcunicomandi

326 CAPITOLO 17 LATEX NUOVI COMANDI

larghezza

altezza

profonditagrave

punto diriferimento

Aquilalinea di base

C Beccari ndash picture - 20090601

Figura 171 Alcune proprietagrave delle scatole Nella figura a destra si vedonole scatole corrispondenti ai caratteri che formano la parola lsquoAquilarsquo allineatesulla linea di base Le crenature fra i caratteri sono visibili dove le scatole sisovrappongono

TEX e quindi LATEX e pdfLATEX maneggia quasi esclusivamente scatolesono scatole i singoli caratteri le righe del testo le pagine composte tantoper fare esempi molto semplici Ogni scatola egrave definita dal suo tipo e da tredimensioni particolari la larghezza lrsquoaltezza e la profonditagrave Il rettangolo chepuograve simboleggiare una scatola ha un punto di riferimento allrsquointersezione delbordo sinistro con la linea che separa la sua parte alta dalla sua parte profondail segmento intercettato su questa linea dal bordo destro e dal bordo sinistro egravelungo quanto la larghezza della scatola lrsquoaltezza egrave la lunghezza del segmentoche parte dal punto di riferimento e raggiunge il vertice in alto a sinistra delrettangolo mentre la profonditagrave egrave la lunghezza del segmento che parte dal puntodi riferimento e raggiunge il vertice in basso a sinistra figura 171

Le scatole dei caratteri vengono allineate a formare una riga semplicementeallineando i loro punti di riferimento sulla linea di base della riga composta comesi vede nella figura 171 TEX prende le dimensioni delle scatole che racchiudonoi caratteri dal file metrico del font che sta usando questo contiene non solo tuttele informazioni dimensionali di ciascun carattere ma anche le dimensioni dellecrenature8 e le possibili legature fra caratteri La riga cosigrave formata rappresentauna scatola orizzontale la cui larghezza egrave la somma delle larghezze dei carattericomponenti e degli spazi bianchi che separano le parole lrsquoaltezza della rigaegrave la maggiore delle altezze delle scatole allineate orizzontalmente mentre laprofonditagrave della riga egrave la maggiore delle profonditagrave delle scatole suddette ilpunto di riferimento egrave perciograve lrsquointersezione della linea di base con il lato sinistrodel rettangolo che racchiude la riga composta

Le scatole formate dalle righe composte vengono incolonnate in verticaleallineando i punti di riferimento di tutte le scatole orizzontali usate lungo unaretta verticale e intercalando alle scatole orizzontali gli spazi bianchi di interlineae i contrografismi verticali prima e dopo ogni scatola che contenga del testo in

8La crenatura (kerning in inglese) egrave lrsquoammontare dellrsquoaccostamento di due caratteri adiacentiin modo da non fare apparire troppo spazio fra caratteri consecutivi dalle forme complementariper esempio lsquoVArsquo sono accostate mentre lsquoVArsquo non lo sono la differenza egrave evidente e un fontnel quale manchi lrsquoaccostamento sarebbe di qualitagrave assai modesta

179 SITUAZIONI PARTICOLARI 327

evidenza La pagina composta egrave quindi una scatola verticale ma TEX puograve gestireanche altre scatole differenti dallrsquointera pagina scatole che a loro volta possonocontenere altre scatole e cosigrave via come una serie di matriosche

LATEX ha due tipi di scatole orizzontali che lrsquoutente puograve usare con comandiaccessibili direttamente dal compositore mbox e makebox alcune varianti sonole scatole con cornice come fbox e framebox il compositore puograve definire pernome dei registri-scatola nei quali puograve salvare scatole orizzontali mediante icomandi newsavebox sbox e savebox il loro contenuto viene richiamato eusato con usebox

LATEX ha due tipi di scatole verticali a cui il compositore puograve accedereliberamente una egrave la scatola verticale prodotta con il comando parbox e lrsquoaltraegrave la lsquominipaginarsquo ottenibile con lrsquoambiente minipage Le scatole verticali di LATEXpossono ricevere il loro contenuto come sequenze di caratteri e di altri oggettitipicamente di tipo orizzontale oppure come scatole orizzontali giagrave compostenel primo caso LATEX provvede a costruire le scatole orizzontali da impilarein verticale La larghezza di simili scatole verticali coincide con quella dellascatola orizzontale piugrave larga lrsquoaltezza e la profonditagrave dipendono dalle opzioniche vengono specificate al comando o allrsquoambiente dipendendo da come questeopzioni specificano la posizione del punto di riferimento La scatola di tre righePippoPlutoPaperino

puograve avere il suo punto di riferimento collocato in modo che la prima

riga sia allineata con il testo circostante oppure

PippoPlutoPaperino puograve avere lrsquoultima

riga allineata con il testo circostante oppurePippoPlutoPaperino

puograve avere il suo asse

matematico allineato con lrsquoasse matematico del testo circostante Come si vededa questo capoverso le scatole verticali non sono molto utili da usare allrsquointernodel testo esse trovano applicazioni particolari in altri tipi di composizione

I comandi primitivi di TEX sono meno elaborati i registri-scatola possonoessere chiamati per nome come in LATEX oppure per numero purcheacute questosia strettamente compreso nellrsquointervallo da 0 a 2549 il registro-scatola 255 egraveriservato e lrsquoutente non lo deve mai toccare le scatole orizzontali sono contenutedentro hbox le scatole verticali si chiamano vbox vtop e vcenter i comandiper utilizzare il contenuto delle varie scatole registrate nei registri-scatola sonoinvece piugrave elaborati di quelli di LATEX Il lettore egrave invitato ad approfondirelrsquoargomento nel TEXbook che dedica a questi argomenti diversi capitoli

Dopo queste premesse possiamo tornare alle nostre immagini e alle caselleper esempio delle tabelle abbiamo visto che uno dei descrittori delle colonne egravep〈larghezza〉 questo in sostanza definisce una scatola verticale di larghezzapari a 〈larghezza〉 dentro la quale viene composto un breve capoverso ma questascatola ha la prima riga allineata con la prima o unica riga delle celle adiacentiMediante lrsquouso del pacchetto array abbiamo visto che si possono usare altri due

9In realtagrave il programma di composizione pdftex che con diversi file di formato soggiace atutti i programmi di composizione del sistema TEX incorpora le estensioni del programmaetex come si egrave giagrave spiegato nei capitoli iniziali e quindi non egrave limitato nel numero dei suoiregistri al numero di 255 ma ne puograve avere 215 numerati da 0 a 215 minus 1 insomma ne puograveavere in pratica un numero illimitato visto che egrave difficile immaginare la composizione di undocumento qualsiasi che impegni simultaneamente un numero cosigrave elevato di scatole

328 CAPITOLO 17 LATEX NUOVI COMANDI

Immagine Descrizione

Il formaggio egrave un pro-dotto derivato dal latteattraverso un processoche coagula la caseinauna proteina del latte

Tabella 171 Tabella in cui lrsquoimmagine e il testo adiacente hanno i punti diriferimento allineati in modo scorretto

Immagine Descrizione

Il formaggio egrave un pro-dotto derivato dal latteattraverso un processoche coagula la caseinauna proteina del latte

Tabella 172 Tabella in cui lrsquoimmagine e il testo adiacente hanno i punti diriferimento allineati correttamente

descrittori b〈larghezza〉 e m〈larghezza〉 che si comportano rispettivamentecome scatole verticali con lrsquoultima riga allineata ovvero con lrsquoasse matematicoallineato

Le immagini introdotte nel documento ricorrendo al pacchetto graphicx me-diante il suo comando includegraphics sono delle scatole orizzontali col loropunto di riferimento coincidente con il vertice inferiore sinistro Si capisce allorache per collocare una immagine bisogna tenere conto di altezza e profonditagrave dellescatole usate e regolarsi in modo da ottenere un buon risultato La tabella 171che si ottiene senza pensare a queste cose egrave orrenda La tabella 172 compo-sta ricordando le proprietagrave delle scatole appena descritte invece egrave compostaabbastanza correttamente

La tabella 172 puograve ancora essere ritoccata aggiungendo un piccolo spaziosopra lrsquoimmagine in modo che il filetto orizzontale non la sfiori tabella 173

La tabella 173 egrave stata composta con i comandi seguenti

begintabularm120ptm35mmhlineImmagine amp Descrizionehlinevspace8exincludegraphics[width=120pt]Formaggio ampIl formaggio egrave un prodotto derivato dal latte attraverso unprocesso che coagula la caseina una proteina del latte

179 SITUAZIONI PARTICOLARI 329

Immagine Descrizione

Il formaggio egrave un pro-dotto derivato dal latteattraverso un processoche coagula la caseinauna proteina del latte

Tabella 173 Tabella in cui lrsquoimmagine e il testo adiacente hanno i punti diriferimento allineati correttamente e dove uno spazio verticale pari a 08 ex separalrsquoimmagine dal filetto sovrastante

hlineendtabular

Premesso che il descrittore di colonna m〈larghezza〉 del pacchetto arrayrisolve il problema che cosa bisogna fare se per qualche motivo non si potesseconservare quello stesso tipo di descrizione per tutte le celle della stessa colonnaBisogna ricorrere a comandi di basso livello cioegrave ai comandi che manipolanodirettamente le scatole in modo da risolvere il problema compositivo solo per lacella specifica che contiene lrsquoimmagine Conviene anzi definirsi un comando cheesegua direttamente lrsquoinclusione dellrsquoimmagine ma con la posizione del puntodi riferimento specificata mediante una opzione Si potrebbe definire un nuovocomando tabularimage con la sintassi

tabularimage[〈posizione〉]〈larghezza〉〈file immagine〉

nel modo seguente

newcommandttoprulehrule height0pt width0pt depth-1exnewcommandctoprulehrule height0pt width0pt depth8exletbtoprulectopruleletbbotrulectopruleletcbotrulebbotrulelettbotrulebbotrulenewcommandtabularimage[3][b]parbox[1]2

csname1topruleendcsname includegraphics[width=2]3parcsname1botruleendcsname

dove la 〈posizione〉 di default egrave la stessa che si avrebbe con il semplice coman-do includegraphics Con questo nuovo comando si potrebbe comporre latabella 174 con i comandi

begintabularlp35mmhlineImmagine amp Descrizionehlinetabularimage[t]120ptFormaggio ampIl formaggio egrave un prodotto derivato dal latte attraverso un

330 CAPITOLO 17 LATEX NUOVI COMANDI

Immagine DescrizioneIl formaggio egrave un pro-dotto derivato dal latteattraverso un processoche coagula la caseinauna proteina del latte

Tabella 174 Tabella con lrsquoimmagine allineata con la parte superiore delleminuscole della prima riga della seconda colonna

processo che coagula la caseina una proteina del lattehline

endtabular

La definizione di tabularimage egrave un porsquo particolare percheacute i filetti (invisibili)inseriti prima e dopo lrsquoimmagine allrsquointerno della scatola verticale parbox nonpossono essere i comuni filetti di LATEX specificati con rule infatti qui abbiamobisogno di incolonnare solo scatole verticali o altri oggetti che si possono metterein una lista verticale il filetto hrule nonostante lrsquoiniziale h egrave un comandoprimitivo che specifica un filetto le cui altezza larghezza e profonditagrave sonospecificate con i parametri che seguono quel comando ma egrave un oggetto che puogravestare solo nelle liste di oggetti incolonnati in verticale I punti di riferimentodi questi filetti diventano quelli della scatola verticale quando le si specifichilrsquoopzione di 〈posizione〉 t oppure b nel caso dellrsquoopzione c non conta tanto ilpunto di riferimento quanto lrsquoasse matematico che TEX determina come lineamediana della scatola Si capisce allora che a seconda che il collocamento dellascatola corrisponda allrsquouna delle tre specificabili i filetti (invisibili) superiore einferiore debbano avere caratteristiche diverse si sono definiti sei filetti invisibiliche in realtagrave sono solo due distinti ma hanno sei nomi che si equivalgono questinomi sono ottenuti agglutinando la lettera di opzione per la collocazione con inomi toprule e botrule questa agglutinazione viene eseguita dalla definizionedi tabularimage solo al momento in cui il parametro 1 che corrisponde aquesta opzione egrave noto e lrsquooperazione viene eseguita dalla coppia di comandicsname e endcsname che creano un nome di comando valido per TEX a partireda qualsiasi stringa essi racchiudano

Questo genere di incapsulamenti di scatole con diversi punti di riferimentopuograve essere fatto anche con le minipagine create con lrsquoambiente minipage o con lescatole orizzontali con diversi allineamenti del loro contenuto e diverse larghezzenominali

Non si insiste oltre essenzialmente per non intimorire lrsquoutente di LATEX alleprime armi Egrave certo che la definizione di questi comandi specialmente ricorrendoai trucchi esposti rientra nella programmazione col linguaggio LATEX certamentenon nellrsquoarte di comporre tipograficamente con LATEX anche se ne costituisce ilsupporto Ma lrsquoappetito vien mangiando prima o poi tutti sentiamo il bisognodi definirci i nostri comandi i nostri ambienti le nostre scorciatoie per comporremeglio e piugrave correttamente

Gli ultimi esempi sono piuttosto ricchi di spunti ma non esauriscono certa-mente la questione della creazione delle proprie macro Questa egrave unrsquoarte difficile

179 SITUAZIONI PARTICOLARI 331

ma non impossibile bisogna avere la pazienza e lrsquoumiltagrave di imparare senzafretta sapendo perograve che la ricompensa saragrave forte sotto lrsquoaspetto della facilitagrave delcomporre

Bisogna avere la pazienza di imparare dai libri e dai manuali esistenti alcunidei quali elencati nellrsquoappendice A Bisogna avere anche la pazienza di leggere ilcodice dei file scritti da altri in primis quelli che definiscono il formato e le classi ei pacchetti standard Alcune parti sono veramente difficili da capire senza lrsquoaiutodi una documentazione ma questa egrave generalmente disponibile nei file dtx questisono file TEX documentati Se si lancia LATEX o pdfLATEX su uno qualunque diquesti file si ottiene un documento nel quale il codice egrave inframezzato a spiegazionise queste siano utili dipende dalla competenza informaticoprogrammatoria dellettore ma egrave certo che superato un primo scoglio per familiarizzarsi con illinguaggio la cosa diventa relativamente semplice e molto fruttuosa

Capitolo 18

LATEXla microgiustificazione

181 IntroduzioneQuando si vogliono fare bene le cose meglio ancora di come le farebbe LATEXda solo che rasenta giagrave la perfezione in fatto di composizione tipografica bi-sogna ricorrere alle potenzialitagrave di LATEX o meglio di pdfLATEX che non sonodocumentate neacute nel libromanuale di Leslie Lamport neacute in molti altri autorevolilibri ma sono riportate solo nella documentazione che accompagna il pacchettomicrotype

Si tratta di questo la composizione tipografica di qualitagrave richiede fra le variecose che il testo composto appaia privo di lsquoruscellirsquo e sia di un lsquocolorersquo uniformeI ruscelli tipografici sono quelle sequenze di spazi interparola che si susseguonoin diverse righe successive in corrispondenza quasi perfetta gli uni con gli altricosigrave che essi formano una striscia bianca che serpeggia attraverso il testo comeun ruscelletto bianco

Non solo ma gli spazi interparola dovrebbero essere il piugrave omogenei possibilee non troppo grandi in modo che il testo visto da una distanza alla quale nonsi riesca a leggere quanto esso contiene appaia di un colore (grigio) uniforme

Gli artisti tipografi sanno che lo spazio interparola ideale dovrebbe esserequello di una lettera lsquoirsquo nel font nel quale egrave composto il testo Knuth invece nelsuo TEXbook afferma che lo spazio interparola ideale sia largo quanto una lsquoersquonel font corrente Probabilmente non esiste un valore di spazio da prescriverecome ideale percheacute la spaziatura piccola della lsquoirsquo puograve andare bene per un testoletterario quello di una lsquoersquo probabilmente egrave un buon compromesso in generalema potrebbero esserci dei testi specifici specialmente di carattere scientificodove la spaziatura interparola diventa importante per separare bene il testodalla matematica dalle parole tecniche eccetera Quello che egrave certo egrave che lacomposizione con noti word processor e la composizione in colonne strettepraticata nelle tipografie di molti quotidiani e molti settimanali rinuncia a questaomogeneitagrave degli spazi interparola producendo risultati lsquoterribilirsquo nonostante imezzi tecnici a disposizione del compositore

A questi problemi pone rimedio il pacchetto microtype che offre soluzionimodeste al semplice LATEX ma che sviluppa tutta la sua forza con pdfLATEX

333

334 CAPITOLO 18 LATEX LA MICROGIUSTIFICAZIONE

182 La composizione dei capoversi

Il TEXbook spiega dettagliatamente come lrsquointerprete pdftex componga il testosorgente in capoversi giustificati I dettagli sono piuttosto complicati ma sottosotto crsquoegrave tutta lrsquoabilitagrave del matematico Knuth che ha prodotto un algoritmo diottimizzazione capace di dividere il capoverso in righe giustificate minimizzandola somma totale dei demerits associati alle righe in cui sarebbe possibile dividereun capoverso questi demerits sono legati quadraticamente alla bruttezza delladivisione scelta fra le divisioni possibili oltre che ad altri elementi costituitigeneralmente da penalitagrave

La bruttezza egrave un indice definito a partire dallrsquoammontare dellrsquoallargamentoo del restringimento dello spazio interparola nelle righe giustificate dellrsquointerocapoverso Le penalitagrave sono presenti esplicitamente per averle specificate neltesto sorgente o anche indirettamente percheacute sono state introdotte dai comandiusati alcune penalitagrave derivano dallrsquoaver inserito divisioni di parole in fin di rigaLe penalitagrave da usare nei diversi contesti sono predefinite nel file di formato ein quelli di classe ma lrsquoutente puograve inserirne di altre attraverso comandi comebreak nobreak linebreak e simili oppure inserendo alcune cesure esplicitemediante il comando -

Altri demerits sono ulteriormente introdotti da pdflatex se la penultima riga diun capoverso riceve la cesura Il pacchetto babel per la lingua italiana impone ilvalore di 50 000 000 al parametro finalhyphendemerits che controlla appuntola cesura della penultima riga di un capoverso In italiano infatti sarebbe quantomai indesiderabile che venga divisa la penultima riga di un capoverso consentendoche nellrsquoultima riga ci possa essere solo un frammento di parola al limite due solelettere corrispondenti alla minima lunghezza di una sillaba terminale secondolrsquoalgoritmo di sillabazione di LATEX per lrsquoitaliano Quellrsquoenorme valore di demeritsnon egrave lsquoinfinitorsquo ma consente praticamente sempre che lrsquoultimo righino di uncapoverso cominci con una parola intera

Tutte le tabelle dei font 112ndash1111 contengono anche i parametri metricicaratteristici dellrsquointera polizza in particolare lrsquoammontare dello spazio interpa-rola e il suo allungamento e il suo accorciamento per esempio nella tabella 112relativa al font a 10 pt usato per comporre questo testo si legge che lo spaziointerparola egrave pari a 33333 pt che lrsquoallungamento vale 16666 pt e che lrsquoaccorcia-mento vale 11111 pt Questo significa che nel giustificare le righe TEX aggiusta glispazi interparola aggiungendo o togliendo allo spazio lsquonormalersquo pari a un terzodel corpo quanto consentito dallrsquoallungamento o dallrsquoaccorciamento previstiaggiungendo alla bruttezza una quantitagrave dipendente dal cubo dellrsquoammontare diquesti allungamenti o accorciamenti relativi rispetto ai valori naturali1

Quando si inserisce il comando di legatura fra due parole o due informazionitra le quali si vieta la divisione della riga quando insomma si usa il carattereattivo ~ per ottenere questo effetto il comando inserisce una penalitagrave pari a10 000 (che per TEX egrave sinonimo di lsquoinfinitorsquo) per cui una eventuale divisione inquel punto provocherebbe una bruttezza infinita al punto che qualunque altradivisione produrrebbe una bruttezza inferiore

1La funzione di bruttezza legata a questi allungamenti o accorciamenti relativi egrave semprecubica ma egrave diversa per lrsquoallungamento che puograve teoricamente assumere qualunque valorerispetto allrsquoaccorciamento che non puograve essere superiore a quello stabilito altrimenti una parolasi sovrapporrebbe alla precedente

183 METODI PER MIGLIORARE LA GIUSTIFICAZIONE 335

Le cesure in fin di riga vengono minimizzate ricorrendo a due distinte compo-sizioni TEX esegue una prima divisione delle righe giustificate senza dividere insillabe e calcola la (minima) bruttezza del capoverso cosigrave ottenuto Se questovalore egrave inferiore ad un certo valore conservato in pretolerance allora questadivisione viene accettata e le righe giustificate del capoverso vengono accodatealla pagina parzialmente composta Se questo valore di pretolerance vienesuperato allora TEX esegue una seconda divisione delle righe consentendo lacesura in fin di riga esso perograve attribuisce una penalitagrave ad ogni cesura introdottauna penalitagrave ad ogni sequenza di due righe consecutive contemporaneamentecontenenti la cesura e una ulteriore dose di demerits se la penultima riga del ca-poverso contiene la cesura Tutte queste penalitagrave contribuiscono ad incrementarei demerits della divisione in righe fra tutte le possibili combinazioni di divisionicon le corrispettive cesure e i corrispettivi allungamenti o accorciamenti deglispazi interparola TEX sceglie quella che produce la minima bruttezza comples-siva e la confronta con un altro valore conservato in tolerance Se questaminima bruttezza non supera tolerance la divisione in righe viene accettataaltrimenti TEX ci prova una terza volta ma il risultato finale viene accodato allapagina in composizione accompagnato dai messaggi relativi alla bruttezza e allapresenza di righe lsquooverfullrsquo o lsquounderfullrsquo le prime sporgenti fuori della giustezzae le seconde con un allargamento eccessivo degli spazi interparola

Questo fatto accade molto raramente nonostante tutto puograve accadere Selrsquoeccesso di lunghezza non supera 1 ptndash15 pt spesso si puograve chiudere un occhio mase si puograve egrave meglio provvedere Se lo spazio interparola viene allargato troppo mala bruttezza della riga non supera qualche migliaio (1000ndash2000) si puograve chiudereun occhio ma di nuovo se si puograve rimediare egrave meglio provvedere Generalmentequesto implica la modifica del testo In linea di massima senza ricorrere allamicrogiustificazione spetta al compositore drsquoaccordo con lrsquoautore il compito dimodificare il testo del capoverso affincheacute la sua bruttezza sia ridotta certamenteTEX egrave molto potente ma non arriva ad modificare il testo da solo

183 Metodi per migliorare la giustificazioneDai paragrafi precedenti si evince chiaramente che LATEX lsquonormalersquo puograve ricorreresolamente allrsquoaggiustamento dello spazio interparola e alla cesura in fin di rigaper comporre i capoversi

I tipografi che lavoravano a mano con i caratteri mobili avevano anche altretecniche per giustificare meglio i capoversi

spazieggiatura In inglese tracking Spazieggiare i caratteri significa comporli conuno spazio interlettera leggermente maggiore di quello di default Per i piugraveautorevoli book designer britannici spazieggiare egrave paragonato al furto dipecore () Per noi il paragone egrave quasi incomprensibile ma la sua forzarisiede nel fatto che il furto di pecore in linguaggio penale lrsquoabigeato eraun reato assai grave nella Gran Bretagna del XIX secolo tanto che venivapunito con la pena di morteOggi si conviene che la spazieggiatura sia accettabile e talvolta consigliabilenella composizione in lettere maiuscole o maiuscolette di titoli o di similibrevi tratti di testo assolutamente improponibile in un testo in lettereminuscole Il lettore attento provi ad esaminare una qualunque rivista pub-

336 CAPITOLO 18 LATEX LA MICROGIUSTIFICAZIONE

blicata ai nostri giorni e cerchi di determinare quali righe siano spazieggiateconstateragrave che la spazieggiatura non solo egrave visibile ad occhio nudo ma ancheche contribuisce non poco a rendere mal composto il capoverso che contengatali righe spazieggiate Egli constateragrave anche che la raccomandazione dinon spazieggiare il testo scritto in lettere minuscole egrave abbondantementedisattesa in quel genere di pubblicazioni probabilmente una composizionegiustificata solo a sinistra sarebbe molto piugrave raccomandabile

protrusione della punteggiatura La protrusione della punteggiatura egrave quella tec-nica che consente di comporre con il margine destro leggermente seghettatoinvece che perfettamente allineato ma in modo che le parti sporgenti sianocostituite solo da segni di punteggiatura segnatamente il punto e la virgolaoltre che dal trattino di cesura Lrsquoocchio data la scarsa forza visiva diquesti segni vede il margine destro giustificato anche se in effetti esso nonlo egrave esattamente

protrusione dei segni grafici Con lo stesso criterio si possono far uscire piccoleparti dei segni alfabetici numerici di punteggiatura eccetera fuori daentrambi i margini purcheacute questa protrusione ammonti ad una frazionepiccolissima del segno che protrude Questo implica che fra le caratteristichemetriche del font deve essere indicata per ciascun segno una coppia divalori numerici che rappresentano la parte millesimale della larghezza delsingolo segno che puograve protrudere nel margine di sinistra o rispettivamentenel margine di destra Spesso nei font con grazie ci si puograve accontentare difar sporgere nei margini parti delle grazie orizzontali

larghezza del font Si puograve ancora ricorrere a varianti del font corrente formateda font dello stesso corpo forma e nerezza ma leggerissimamente piugravelsquoestesirsquo o lsquocompressirsquo Una variazione di larghezza del plusmn2 dovrebbe essereconsiderata come la variazione massima otticamente accettabile affincheacutelrsquoocchio del lettore non si accorga della variazione

legature e segni diacritici Nel comporre si potrebbero usare font dotati di segnilegati in numero maggiore dei soliti ff fi ffi fl ffl e szlig presenti nei font delletabelle 112 e 114 Gli antichi usavano molte altre legature presenti oggisolo nei font esperti e ricorrevano a segni diacritici come per esempio lrsquousodella tilde sulla lettera precedente per marcare una lsquomrsquo o una lsquonrsquo omessanon egrave raro trovare scritture come libru al posto di librum Oggigiornoquesto genere di artifici non viene piugrave usato in italiano In tedesco invecela umlaut sopra certe vocali egrave il residuo di questa pratica e rappresentauna lsquoersquo infatti quando in tedesco bisogna scrivere con font che mancanodella umlaut si mette esplicitamente la lsquoersquo a destra della vocale che non hapotuto ricevere la umlaut Universitaumlt o Universitaet Muumlller o Mueller

184 La microgiustificazioneI prototipografi ricorrevano spesso alle tecniche illustrate sopra Gutenberg stessoavrebbe usato varianti piugrave larghe o piugrave strette del font lsquonormalersquo per comporreuna delle sue famose Bibbie Gutenberg stesso non avrebbe usato allargamentio restringimenti maggiori del 2 tanto che sarebbero state necessarie misure

184 LA MICROGIUSTIFICAZIONE 337

molto accurate da parte degli studiosi di tipografia antica per rendersi conto dellsquotruccorsquo usato al fine di comporre cosigrave bene

I metodi descritti nel paragrafo precedente possono essere usati anche conLATEX e con pdfLATEX

Segnatamente la protrusione della punteggiatura puograve essere usata con LATEXlsquonormalersquo mentre questa protrusione e le altre tecniche possono essere tutte usatecon una versione sufficientemente recente del programma pdftex le versioni 140e quelle successive sono in grado di eseguire tutte le tecniche descritte sopra

Egrave bene ricordare che le versioni moderne del sistema TEX usano sempre ilmotore pdftex come interprete e compositore oltre ad essere la versione estesaapparentemente sembra essere il programma che compone direttamente in for-mato PDF In realtagrave questo programma egrave in grado anche di produrre il file diuscita in formato DVI e questo dipende da due o tre possibilitagrave precisamentedal fatto che il file di formato latexfmt egrave stato creato avendo impostato almomento della creazione il valore zero o un valore positivo nel contatore TEXpdfoutput in secondo luogo il formato di uscita del documento compostoindipendentemente dal file di formato dipende dal fatto che il file sorgentecontiene una assegnazione del valore zero o di un valore positivo al contatorepdfoutput alternativamente la cosa dipende dal fatto che il comando con ilquale lo shell editor (o il compositore stesso) ha invocato lrsquoesecuzione del pro-gramma con lrsquoopzione2 --output-format=pdf oppure --output-format=dviIn mancanza di opzioni o di assegnazioni esplicite vale lrsquoassegnazione eseguitadurante al creazione del file di formato

La scelta quindi di usare la piena potenzialitagrave dei meccanismi di micro-giustificazione o soltanto la protrusione dei segni di interpunzione dipende daaltri fattori come si egrave detto LATEX e pdfLATEX sono praticamente coincidentima hanno idiosincrasie diverse per quel che riguarda i formati dei file grafici daincludere

Detto ciograve la microgiustificazione si ottiene richiamando il pacchetto micro-type Questo pacchetto riconosce da solo se il programma di composizione staoperando per produrre un file di uscita in formato DVI oppure PDF e attivatutte le opzioni di microgiustificazione accettabili dalla modalitagrave di azione delprogramma

Ovviamente il pacchetto microtype egrave configurabile mediante opzioni passateal comando con il quale lo si richiama alcune funzionalitagrave possono essere attivateo disattivate dal compositore a seconda di che cosa egli sta componendo

Non solo ma adeguatamente istruito con comandi da inserire nel preamboloo lungo il file sorgente il pacchetto egrave in grado di cambiare impostazioni a secondadel contesto nel quale sta operando Per esempio nelle note a piegrave di pagina leopzioni da usare potrebbero essere diverse da quelle che sono in azione durantela composizione del testo per esempio in francese dove la spaziatura dei segnidi interpunzione egrave particolare potrebbero essere in vigore le opzioni per lospazio extra prima dei segni di interpunzione oppure allrsquointerno delle partidelimitate dalle virgolette caporali mentre in italiano queste opzioni devonoessere disabilitate in un documento scritto in italiano ed in francese le spaziatureextra prima dei segni di interpunzione apparirebbero solo nelle parti scritte infrancese

2Non tutte le versioni accettano questa opzione tuttavia quelle che non lrsquoaccettano preve-dono la possibilitagrave di assegnare il valore nullo o un valore positivo al contatore pdfoutputdirettamente nella linea di comando

338 CAPITOLO 18 LATEX LA MICROGIUSTIFICAZIONE

Le possibilitagrave di gestire tutte le funzioni di microgiustificazione sono numerosequindi si rinvia il lettore alla documentazione in doclatexmicrotypemicrotypepdf

Questo testo egrave stato composto con lrsquouso del pacchetto microtype con lrsquoaiutodi un righello e una versione stampata di almeno alcune pagine del testo egravepossibile verificare la protrusione dei segni di interpunzione e la protrusione neidue margini di piccole parti di diversi caratteri Lrsquoespansione o la contrazione deicaratteri egrave difficile da misurare tuttavia egrave possibile che la stessa parola compaiain righe diverse con differenti livelli di compressione o di espansione misurandoaccuratamente la larghezza di tali parole si puograve verificare la presenza di questoparticolare tipo di microgiustificazione

Si noteragrave anche che le parole con cesura in fin di riga sono proprio pochegeneralmente si tratta di parole lunghe almeno otto caratteri spesso decisamentepiugrave lunghe gli spazi interparola non sono proprio uguali ma sono molto piugraveomogenei di quelli che si avrebbero senza lrsquouso del pacchetto

Disponendo dei file sorgente di questo testo si puograve provare a vedere che cosasi ottiene senza usare il pacchetto microtype si noteranno spazi interparola piugravedisomogenei molte piugrave righe con cesure in fin di riga e molti piugrave messaggi dioverfull oppure di underfull hbox

Si osservino comunque nella pagina 339 le tre composizioni dello stesso testoa confronto la prima egrave stata ottenuta componendo un capoverso sufficiente-mente lungo su due colonne e con la microgiustificazione attivata la secondacomposizione contiene le stesse parole ma la microgiustificazione egrave disattivatanella terza composizione invece la microgiustificazione egrave attiva solo per quel cheriguarda la protrusione mentre egrave disattivata lrsquoopzione per ricorrere alle variantidel font con larghezze diverse Si tenga presente che allrsquointerno dellrsquoambientemulticols con cui sono eseguite le tre composizioni le penalitagrave per la presenzadi cesure in fin di riga sono drasticamente ridotte proprio per tener conto dellacomposizione in colonne strette

Nel secondo testo non microgiustificato si osserva una riga in piugrave spaziinterparola piugrave grandi e si vedono chiaramente alcuni ruscelli mentre non neappaiono nel testo microgiustificato il testo non microgiustificato contiene anchepiugrave cesure in fin di riga e diverse sequenze di righe consecutive terminanti con lacesura Nel terzo testo si ha una situazione intermedia ma egrave tutto quello che sipuograve ottenere quando il documento egrave composto per lrsquouscita in formato DVI

184 LA MICROGIUSTIFICAZIONE 339

Oggi si conviene che la spazieggiatu-ra sia accettabile e talvolta consigliabilenella composizione in lettere maiuscoleo maiuscolette di titoli o di simili brevitratti di testo assolutamente impropo-nibile in un testo in lettere minuscole Illettore attento provi ad esaminare unaqualunque rivista pubblicata ai nostrigiorni e cerchi di determinare quali ri-ghe siano spazieggiate constateragrave chela spazieggiatura non solo egrave visibile ad

occhio nudo ma anche che contribui-sce non poco a rendere mal composto ilcapoverso che contenga tali righe spa-zieggiate Egli constateragrave anche che laraccomandazione di non spazieggiare iltesto scritto in lettere minuscole egrave ab-bondantemente disattesa in quel gene-re di pubblicazioni probabilmente unacomposizione giustificata solo a sinistrasarebbe molto piugrave raccomandabile

Oggi si conviene che la spazieggia-tura sia accettabile e talvolta consiglia-bile nella composizione in lettere maiu-scole o maiuscolette di titoli o di similibrevi tratti di testo assolutamente im-proponibile in un testo in lettere minu-scole Il lettore attento provi ad esami-nare una qualunque rivista pubblicataai nostri giorni e cerchi di determina-re quali righe siano spazieggiate con-stateragrave che la spazieggiatura non so-

lo egrave visibile ad occhio nudo ma ancheche contribuisce non poco a renderemal composto il capoverso che conten-ga tali righe spazieggiate Egli consta-teragrave anche che la raccomandazione dinon spazieggiare il testo scritto in let-tere minuscole egrave abbondantemente di-sattesa in quel genere di pubblicazioniprobabilmente una composizione giu-stificata solo a sinistra sarebbe moltopiugrave raccomandabile

Oggi si conviene che la spazieggia-tura sia accettabile e talvolta consiglia-bile nella composizione in lettere maiu-scole o maiuscolette di titoli o di similibrevi tratti di testo assolutamente im-proponibile in un testo in lettere minu-scole Il lettore attento provi ad esami-nare una qualunque rivista pubblicataai nostri giorni e cerchi di determinarequali righe siano spazieggiate consta-teragrave che la spazieggiatura non solo egrave

visibile ad occhio nudo ma anche checontribuisce non poco a rendere malcomposto il capoverso che contenga ta-li righe spazieggiate Egli constateragraveanche che la raccomandazione di nonspazieggiare il testo scritto in lettereminuscole egrave abbondantemente disatte-sa in quel genere di pubblicazioni pro-babilmente una composizione giustifi-cata solo a sinistra sarebbe molto piugraveraccomandabile

Capitolo 19

LATEX la geometria dellepagine

191 IntroduzioneUno degli argomenti piugrave trattati nei forum degli utenti di TEX non escluso ilforum di guIt egrave quello dei margini della giustezza del testo delle testatine e deipiedini di come fare per rendere la pagina del documento finale gradevole edefficace

Qualche volta si tratta di rendere un documento il piugrave simile possibile aduna serie di altri documenti composti con altri sistemi qualche altra volta sitratta di ricomporre unrsquoopera antica o comunque fuori commercio per la qualesi vuole mantenere il piugrave possibile lrsquoaspetto originale e questo coinvolge anchela scelta dei font non solo la geometria della pagina o il corpo dei caratteri

Va allora detto prima di tutto che questo genere di attivitagrave puograve rendere undocumento bellissimo se il disegno della pagina e dei suoi elementi egrave fatto dauna persona di gusto colta esperta di grafica editoriale o almeno competentea livello di lsquointenditorersquo se non proprio di grafico professionista Il risultato puograveessere pessimo se viene eseguito da una persona incompetente ancorcheacute animatadalle migliori intenzioni peggio ancora se questa persona tenta di imitare lo stiledi noti word processor specialmente se i documenti scritti con quegli strumentisono stati composti da persone che si sono divertite a scegliere corpo e stiledei caratteri senza nessun criterio in mente spaziature margini inserimento difigure creazione di tabelle eccetera fatte a seconda dellrsquoispirazione del momentoe del comando piugrave facile da raggiungere con un click di mouse

Dietro al disegno di una pagina stampata ci sono in realtagrave quattro o cinquesecoli di storia considerando anche i codici manoscritti una quindicina di secolidi storia Questa lunghissima tradizione non puograve essere ignorata percheacute quelloche la tradizione ha prodotto egrave quello che egrave sopravvissuto alla selezione naturaleche ha tenuto conto dei mezzi a disposizione ma anche della qualitagrave del risultatoconfermata dallrsquoapprezzamento dei lettori

Non bisogna quindi cedere a qualunque tentazione compositiva ma documen-tarsi al meglio e cercare di affinare il gusto per saper discernere i bei prodottieditoriali dai prodotti accattivanti per colori per font fantasiosi per disposi-zione del testo che convoglia il messaggio ma che non potrebbero essere letti

341

342 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

da nessuno per piugrave di due o tre pagine consecutive Non si puograve confondere unopuscolo pubblicitario con un testo di poesie lrsquouno e lrsquoaltro hanno i loro impieghima non si possono comporre le poesie come una serie di reacuteclame e le reacuteclamecome dei poemi

In parte si egrave trattato di questi argomenti nel capitolo 14 qui perograve si desideraandare piugrave a fondo per mostrare non solo come fare ma anche che cosa ci stadietro sapendo il percheacute spesso si evitano errori stilistici che dovrebbero sempreessere evitati quando si cerca di comporre bene secondo lrsquoarte tipografica

Egrave chiaro a tutti che la parte piugrave importante di un documento egrave il suo contenutoQuesto aspetto non verragrave trattato in questo testo esistono ottime grammatichee testi di lsquoretoricarsquo per scrivere in modo efficace e che sappia convogliare ilmessaggio giusto al lettore

Uno degli aspetti piugrave importanti in questa azione egrave proprio quello di eseguireuna buona analisi del lettore se si riesce a fare un buon profilo del lettore alloraegrave possibile confezionare il messaggio in modo che sia adatto a quel tipo di lettoreEgrave facile capire che un testo destinato a una moltitudine di lettori dai profilidifferenti puograve essere difficilissimo da scrivere se si scrive per i lettori piugrave informatiquelli meno informati non capiscono se si scrive per i lettori meno informatigli altri si annoiano Questo stesso testo di introduzione allrsquoarte tipografica conLATEX che si rivolge ad una moltitudine di lettori cerca di essere un compromessofra i lettori esperti e quelli neofiti sicuramente non egrave completamente adatto neacuteai primi neacute ai secondi tuttavia si affida alla loro comprensione nella speranzache i primi possano trovare qualche spunto che non conoscevano e che i secondisiano invogliati ad andare piugrave a fondo

Certamente LATEX consente di dedicarsi con tutta lrsquoattenzione possibile alconfezionamento del messaggio alla sua corretta scrittura alla strutturazioneallrsquoevidenza da dare ai concetti base eccetera Tuttavia questi aspetti vengonosottolineati meglio da una particolare disposizione del testo sulla pagina daifont usati dalle decorazioni dai colori eccetera Questi aspetti fanno partedella grafica editoriale il grafico che si accinge a definire un layout particolaredeve stare attento a non esagerare percheacute il layout non deve attrarre o distrarrelrsquoattenzione del lettore specialmente in un documento contenente un testo moltostrutturato come puograve essere un libro Il layout deve essere sobrio aiutare il lettorenella sua lettura evidenziare ciograve che deve essere evidenziato senza richiamaresu di seacute lrsquoattenzione del lettore Aprendo un libro qualsiasi ben disegnato si hauna immediata percezione dellrsquoequilibrio grafico anche senza leggerne il testosi percepisce una sensazione confortevole che invoglia a leggere Un libro maldisegnato attrae lrsquoocchio sui fronzoli le decorazioni i colori ma distrae dallalettura

Vale la pena di riportare il commento di Peter Wilson lrsquoautore della classememoir a questo proposito1

Lrsquoessenza della buona tipografia egrave che essa non viene notata allaprima occhiata forse nemmeno alla seconda o alle successive se nonda chi abbia un occhio esercitato Se la vostra reazione iniziale quandoguardate un libro egrave quella di esclamare qualcosa a proposito del suo

1The essence of good typography is that it is not noticeable at first or even second or laterglances to any without a trained eye If your initial reaction when glancing through a book isto exclaim about its layout then it is most probably badly designed if it was designed at allGood typography is subtle not strident

192 LA GEOMETRIA DELLA PAGINA 343

layout allora probabilmente quel libro egrave mal progettato ammesso chesia mai stato progettato La buona tipografia egrave fatta di sottigliezzenon di esagerazioni

Qui di seguito si indicheranno alcuni aspetti della grafica editoriale chederivano dalla tradizione e si cercheragrave di spiegare da dove derivano alcune diqueste lsquonormersquo (piuttosto elastiche per fortuna) si indicheranno anche alcunipacchetti di estensione che consentono di personalizzare diverse parti del layout

192 La geometria della paginaIl lettore non si preoccupi se finora si egrave usata la parola lsquolayoutrsquo senza definirla Ininglese la parola deriva dalla locuzione verbale to lay out che vuol dire adagiaredistendere ma in tipografia essa non implica solo la disposizione geometrica dellevarie parti che compongono una pagina ma anche i font e le loro dimensionigli spazi (i contrografismi) fra le varie parti del testo e tanti altri dettagli piugrave omeno evidenti che non hanno a che fare solo con la geometria della pagina mahanno a che fare con la pagina nel suo complesso

Bisogna innanzi tutto stabilire di che tipo di testo si vuole confezionare ildisegno egrave un testo di consultazione un testo letterario un romanzo un saggioprevalentemente testuale un testo tecnico-scientifico un testo artistico conmolte immagini egrave un testo di lusso o si tratta di dispense richiede una letturacontinua oppure puograve o deve essere letto saltando da una parte allrsquoaltra deveessere stampato in grande formato o in formato tascabile

Come si vede giagrave queste poche cose richiedono diverse scelte grafiche alcunedelle quali talvolta sono piugrave di tipo economico che di tipo estetico

1921 Il formato delle pagineIn Italia un formato corrente per libri di ogni genere rilegati in brossura egrave quellola cui pagina rifilata ha le dimensioni di 170mm per 240mm misurando alcunilibri presi a caso chi scrive ha trovato dimensioni leggermente diverse di solitonon piugrave del 10 dai valori indicati Libri piugrave importanti rilegati con copertinarigida (incassati) possono avere dimensioni maggiori anche molto maggiori Ilibri di consultazione anche se incassati possono avere dimensioni minori conla pagina in formato A5 cioegrave di 148mm per 210mm Dimensioni minori peresempio A6 di 105mm per 148mm si incontrano in opuscoletti decisamentetascabili e di piccolo spessore

La scelta dei formati dipende dalla carta disponibile e dal numero di piegheche si possono fare per creare ogni segnatura Oggi si tende a stampare anastro continuo mentre in passato si stampava su grandi fogli di dimensionistandardizzate Il nastro continuo permette di tagliare delle sezioni piugrave o menolunghe che svolgono la funzione dei grandi fogli isolati del passato ed egrave perquesto che con il nastro continuo egrave facile avere piugrave libertagrave nel formato dellapagina Tuttavia una volta piegato il foglio un certo numero di volte si ottieneuna lsquosegnaturarsquo un fascicoletto contenente un numero di facciate pari ad unapotenza di due se le pieghe sono sempre state fatte lsquoa metagraversquo talvolta si fannodelle pieghe in tre per cui il numero di facciate di una segnatura puograve ancheessere divisibile per tre

344 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

Pieghe Nome Formato del foglio da piegare Pagine FacciateA0 A1 A2 A3 A4

1 folio A1 A2 A3 A4 A5 2 42 quarto A2 A3 A4 A5 4 83 ottavo A3 A4 A5 8 164 sedicesimo A4 A5 16 325 trentaduesimo A5 32 64

Tabella 191 Formati delle pagine a seconda delle dimensioni del foglio di partenzae del numero di pieghe

Un grande foglio piegato solamente in due produce una segnatura con duepagine e quattro facciate di solito di grandi dimensioni in passato era comuneper esempio per i messali nelle nostre universitagrave prima di essere sostituiti dalleregistrazioni informatiche i registri relativi agli studenti erano spesso dei libronilsquoin foliorsquo con le pagine di circa 400mm per 600mm

Con unrsquoaltra piega a metagrave si hanno segnature con quattro pagine e ottofacciate sono segnature in lsquoquartorsquo Con unrsquoaltra piega a metagrave si hanno segnaturecon otto pagine e sedici facciate sono segnature in lsquoottavorsquo Via via che si piegaa metagrave lrsquoordinale che indica la segnatura sedicesimo trentaduesimo ricordasempre una potenza di due si capisce perograve che piugrave si piega piugrave diventa spessala piega dove bisogna cucire e meno precisa diventa la posizione della partestampata su ogni facciata La tabella 191 si riferisce alle piegature dei foglidella serie A ISO-UNI il nome della piegatura folio quarto eccetera dagrave luogoa formati sempre della serie A ma piugrave piccoli Evidentemente al crescere delnumero di pieghe le pagine e le facciate diventano sempre piugrave piccole e semprepiugrave numerose la tabella in questione si riferisce comunque sempre a piegature ametagrave non anche in terzi per cui le successive piegature danno sempre luogo aformati della serie A

Eseguendo delle pieghe in tre si possono avere delle segnature in lsquosestorsquo inlsquododicesimo o in lsquoventiquattresimo ma sono segnature meno frequenti e cherichiedono fogli iniziali di dimensioni insolite

A prescindere dal numero di pagine che formano ogni segnatura questarappresenta il risultato della piegatura dei grandi fogli e anche la lsquomateria primarsquoper la cucitura a macchina o a mano per confezionare il libro quando questo egravecucito prima o dopo venire brossurato sicuramente prima di venire incassato ilblocco delle segnature cucite viene rifilato su tre lati per avere le pagine tuttedelle stesse dimensioni e per eliminare quei piccoli difetti di allineamento chepotrebbero essersi formati durante la cucitura Il libro brossurato puograve avere lacopertina un poco piugrave ampia delle pagine che racchiude il libro incassato hasempre la copertina che sporge oltre le pagine il libro incassato spesso ha unasovracoperta destinata a proteggere la copertina rigida talvolta realizzata concoperture di materiali pregiati come stoffa o pelle

1922 Le segnature e le imposizioniQuesta rapida scorsa sulla fabbricazione del libro permette di capire che il lsquodesktop publishingrsquo a cui spesso ci si riferisce quando si usano sistemi di composizionelsquofai da tersquo non puograve prescindere dalla conoscenza di queste regole elementari

192 LA GEOMETRIA DELLA PAGINA 345

anche quando il testo composto su fogli A4 eventualmente lsquoin foliorsquo e perciograve conpagine in formato A5 sono incollati a caldo e brossurati con metodi economicianche in questi casi egrave necessario un passaggio alla taglierina per rendere i taglisuperiore inferiore ed esterno ben pareggiati e facili da far scorrere fra le ditaLATEX puograve essere utile in questi casi sicuramente egrave molto utile per il lavorotipografico a foglio continuo anche se il suo file di uscita contiene una sequenzadi pagine non necessariamente nella sequenza giusta e ruotate quanto basta percomporre i due lati dei grandi fogli che formeranno ciascuna segnatura questaoperazione verragrave eseguita in tipografia con software adeguato e con macchineadatte per marcare le grandi lastre di fotolitografia con le quali verragrave eseguita lastampa con foglio continuo

A casa per produrre un fascicoletto o un libro in formato A5 il sistema TEXoffre un certo numero di possibilitagrave dal punto di vista delle macchine bisognaimmaginare di disporre di una stampante che possa stampare fronte e retro inmancanza bisogna stare attenti a stampare prima tutti i fronti poi ricaricare arovescio il pacco dei fogli stampati da un lato per stamparli dallrsquoaltro egrave ovvioche questa operazione richiede la massima attenzione per essere sicuri che ognifoglio risulti stampato correttamente sui due lati con quello che deve contenereMeglio ancora sarebbe disporre di una stampante che accetti in entrata fogli informato B4 e che possa stampare fronte e retro con le attenzioni esposte sopranel caso essa possa stampare solo fronte Il vantaggio sarebbe che piegando ametagrave segnature su fogli B4 si ottengono pagine in formato B5 cioegrave di 176mmper 250mm che ammettono abbastanza margine ma senza eccessivo sfrido perstappare pagine in formato 170mm per 240mm il formato della maggior partedei libri in Italia

Ma per stampare questi fogli egrave necessario riordinare le pagine bisognadecidere innanzi tutto se si vogliono fare segnature di quattro fogli (otto paginee sedici facciate) o segnature con piugrave o meno fogli Bisogna comporre il file informato PDF magari correggendo i margini affincheacute le pagine appaiano alla giustadistanza dalla piega centrale di ogni foglio A42 Poi bisogna eseguire lrsquoimposizionecioegrave bisogna riordinare e ruotare le pagine affincheacute appaiano nellrsquoordine e nelverso giusto quando si compone la segnatura per fare questo si invoca il pacchettopdfpages per esempio con il file PDF che si chiami librettopdf che contengapagine in formato A5 e disponendo di una stampante A4 bisogna predisporreun piccolo file LATEX cosigrave composto

File segnaturetexdocumentclassarticleusepackage[final]pdfpagesbegindocumentincludepdf[pages=-nup=1x2landscapesignature=16]librettopdfenddocument

Compilando questo file tramite pdflatex si ottiene un file con le pagine A4 inposizione lsquopanoramicarsquo (landscape) su ogni facciata della quale si trovano duepagine A5 estratte dal file iniziale e ordinate correttamente per formare segnaturedi sedici facciate quindi la prima segnatura avragrave un primo foglio che sul fronte

2Si suppone che a casa si disponga dei una normale stampate per fogli A4 se si disponessedi una stampante per fogli A3 quanto viene detto qui vale per un fascicolo in formato A4oppure per segnature in sedicesimo (otto fogli sedici pagine 32 facciate) e in formato A5

346 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

avragrave le pagine 16 e 1 e sul retro le pagine 2 e 15 un secondo foglio con le pagine14 e 3 sul fronte e 4 e 13 sul retro un terzo foglio con le pagine 12 e 5 sul frontee 6 e 11 sul retro un quarto foglio con le pagine 10 e 7 sul fronte e 8 e 9 sulretro Secondo questa stessa sequenza vengono imposte le ulteriori pagine suifogli che formeranno le segnature successive

Stampando il file segnaturepdf sulla stampante A4 in modalitagrave fronte eretro i vari fogli vengono stampati in ordine ogni quaterna di fogli contienegiagrave una segnatura che basta piegare a metagrave per poi impilarla con le successivesegnature in bellrsquoordine non resta che incollare o cucire e poi brossurare o incas-sare Per maggiori dettagli ci si puograve riferire alla documentazione del pacchettopdfpages

Esiste anche il pacchetto booklet per ottenere piugrave o meno lo stesso risultatole differenze sostanziali fra le strategie di imposizione dei due pacchetti sonoessenzialmente queste

bull pdfpages presuppone che il documento di cui si devono creare le imposizionisia giagrave composto in formato PDF booklet invece compone il documento apartire dal solito file sorgente producendo in uscita un file PDF contenentele imposizioni Questo implica specialmente con le segnature con piugrave pagineche si metta a dura prova lrsquointera memoria del programma di composizionepdftex e questa possibilitagrave egrave menzionata anche nella documentazione dibooklet

bull Il testo da comporre potrebbe non avere un numero di pagine complessivopari ad un multiplo intero del numero di pagine delle segnature specificateentrambi i pacchetti aggiungono il numero necessario di pagine biancheallrsquoultima segnatura Ma pdfpages aggiunge un numero di pagine tale chelrsquoultima segnatura abbia lo stesso numero di pagine delle altre mentrebooklet consente che lrsquoultima segnatura abbia un numero di pagine multiplodi 4 anche se questa segnatura dovesse avere meno pagine delle altre

Il testo di Gustavo Cevolani [8] spiega molto dettagliatamente il procedimentodelle imposizioni con molti esempi ed esegue un confronto accurato dei duepacchetti

Naturalmente per un lavoro non casalingo basta predisporre il file PDF ma-gari con i crocini (vedi piugrave avanti) e in tipografia verranno eseguite le imposizionicorrette per la produzione delle segnature sui grandi fogli da piegare con diversepieghe per poi passare le segnature alla sezione di cucitura o incollaggio e poialla sezione di confezionamento finale con la coperta in brossura o incassataprodotte da una linea di produzione diversa

Con riferimento alla figura 191 vale la pena di osservare come sono eseguitele imposizioni per generare le segnature su un foglio piegato a metagrave piegato duevolte a metagrave e piegato tre volte a metagrave Le pieghe si suppongono sempre eseguitepiegando a metagrave il lato lungo del foglio o del fascicoletto parziale le pieghedisegnate in rosso rappresentano quella che diventeragrave il dorso della segnatura lapiega sulla quale viene eseguita la cucitura o la spillatura le pieghe disegnate innero saranno eliminate con la rifilatura dei tre bordi esterni del fascicolo o dellibro

192 LA GEOMETRIA DELLA PAGINA 347

4 1 2 3

2 7

3 6

8 1

5 4

2 15 14 3

7 10 11 6

4 13 16 1

5 12 9 8

CBeccari

ndashpi

ctur

e-20

090

601

Figura 191 Le imposizioni per generare una segnatura in folio in quarto e inottavo

1923 I crocini

Per eseguire il lavoro in tipografia egrave indispensabile poter disporre di una estensionea LATEX che permetta di segnare i lsquocrocinirsquo in italiano i lsquocrop marksrsquo in inglese sitratta di segni spesso a forma di croce che permettono di registrare con precisionele varie pagine durante il lavoro fatto in tipografia in modo che le stampe delledue facciate di una stessa pagina siano esattamente allineate guardando incontroluce il margine sinistro del testo della facciata sul verso deve corrispondereesattamente con il margine destro del testo stampato sul recto della stessa paginae lo stesso deve succedere per tutti gli altri margini corrispondenti

Ogni compositore puograve crearsi i suoi crocini ricorrendo allrsquoambiente picturecome nella figura 192 che mostra un esempio predisposto per una tipografiaitaliana in essa appaiono sia i mezzi crocini che indicano i limiti della paginarifinita e i crocini interi che servono per registrare con precisione le imposizioniNon egrave difficile fare una cosa come quella mostrata nella figura 192 ma egrave delicatain alternativa si puograve ricorrere al pacchetto crop che provvede da solo a disporrei crocini (preconfezionati secondo la tradizione USA) nelle posizioni specificatein relazione alle dimensioni della pagina rifinita La documentazione si trova indoclatexcropcroppdf

348 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

CBeccari

ndashpi

ctur

e-20

090

601

Figura 192 Esempio di crocini predisposti per una tipografia italiana

1924 Dimensioni della gabbia del testoSu ogni facciata va collocata la gabbia del testo stampato chiamata anche specchiodi stampa o gabbia interna questa egrave la parte piugrave significativa della pagina e vadimensionata con cura Non egrave solo una questione di margini il rettangolo checontiene il testo deve essere adeguato al testo che esso contiene e ai font con cuiegrave scritto

Studi di carattere psicosociologico hanno messo in evidenza che il lettoremedio si trova a suo agio nel leggere se le righe non contengono piugrave di 65ndash70caratteri spazi e segni di interpunzione compresi (regola di Bringhurst) Lascelta del font e la scelta del corpo normale quello con cui egrave scritto il testocorrente diventano perciograve fondamentali per definire la giustezza cioegrave la base delrettangolo che circoscrive il testo

Esistono tabelle per determinare la giustezza ottimale per ciascun font e perogni corpo dello stesso font tuttavia non egrave facile procurarsi queste tabelle perqualunque font LATEX perograve offre un metodo semplice e pratico per determinare lagiustezza migliore con un dato font Basta predisporre un piccolo file di prova nelquale si sceglie il font e con quello si misura la lunghezza dellrsquoalfabeto minuscolo

Per esempio con il carattere di default il Computer Modern il semplice fileseguente permette di sapere che la larghezza dellrsquoalfabeto minuscolo di corpo10 pt vale 13758371 pt

documenctlassminimalnewlengthalfabetobegindocumentsettowidthalfabetoabcdefghijklmnopqrstuvwxyz

192 LA GEOMETRIA DELLA PAGINA 349

Lrsquoalfabeto minuscolo CM a 10pt vale thealfabetoenddocument

Sapendo che ci sono 7227 punti in un pollice e che un pollice vale 254mm sipuograve determinare una volta per tutte la dimensione in millimetri di un puntoprecisamente la costante di conversione vale 0351 459 804mmpt Con questacostante di conversione possiamo quindi determinare che lrsquoalfabeto minuscolodi 26 lettere egrave lungo 4836mm quindi si ha mediamente 1859 813mmletteraQuesto semplice conto svolto una volta per tutte permette di calcolare che conquesto font la giustezza ottimale di 65ndash70 caratteri per ogni riga vuol dire unagiustezza da 121mm a 130mm

Esercizio 191 Questo testo testo egrave stato composto con il carattere Latin Moderna 10 punti con la classe book senza modifiche sostanziali Il file bk10cloche specifica le misure relative al font di 10 pt dice che la giustezzatextwidth quando si compone ad una colonna egrave impostata a 345 pt lagiustezza egrave nellrsquointervallo indicato sopra

Il conto appena fatto potrebbe sembrare troppo semplificato non si egrave tenutoconto degli spazi e dei segni di interpunzione siccome gli spazi interparola sonodello stesso ordine di grandezza di una lsquoersquo (anche se possono risultare un pocoallargati o ristretti per la giustificazione) e i segni di interpunzione piugrave frequenti(il punto e la virgola) contano poco anche se contano gli spazi da cui sono seguitiil conto appena fatto bencheacute approssimato fornisce una eccellente stima dellalunghezza della riga ideale

A titolo di esempio nella tabella 192 sono riportate le giustezze in millimetriper righe composte con 60 65 70 e 75 caratteri con diversi font I dati relativi aifont CM e LM sono praticamente identici mentre si osservano diversitagrave sensibilinelle giustezze ottimali con i font TX e PX Ma una differenza che non emergea colpo drsquoocchio egrave la seguente rispetto alle giustezze relative al corpo di 10 ptle giustezze con corpi maggiori o minori per i font TX e PX sono strettamenteproporzionali al corpo percheacute con questi font LATEX lavora solamente con il corpodi 10 pt ingrandito o rimpicciolito a seconda della necessitagrave Con i font CM edLM cade la proporzionalitagrave percheacute LATEX con questi font usa caratteri disegnatiapposta per ciascun corpo3 Il corpo di 10 pt egrave il corpo del testo corrente conlrsquoopzione 10pt il corpo 11 pt egrave relativo allrsquoopzione 11pt e corrispondentementeil corpo di 12 pt si riferisce allrsquoopzione 12pt per il corpo di 10 pt il corpo di 9 ptsi riferisce al comando small e quello di 8 pt al comando footnotesize Sottoquesto aspetto i font nativi del sistema TEX sono migliori di quelli commercialidistribuiti nel solo corpo a 10 pt Fra i font commerciali esistono anche fontlsquoespertirsquo che hanno forme diverse a seconda del corpo ma sono meno diffusi

Il font usato determina pertanto un intervallo ottimale entro cui scegliere ilvalore della giustezza Come si determina lrsquoaltezza La risposta dipende moltodalla natura della testatina e del piedino

19241 Testatine e piedini il pacchetto fancyhdr

Bisogna innanzi tutto decidere che cosa contengano le testatine e i piedini dellepagine dispari e di quelle pari Se il testo egrave un romanzo le testatine e i piedini

3Veramente il corpo indicato con 11 pt in realtagrave egrave di 1095 pt e viene ottenuto peringrandimento del font CM a 10 pt e per rimpicciolimento del font LM a 12 pt

350 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

Giustezze in millimetriNumero di caratteri

Corpo 60 65 70 758 87 95 102 1099 95 103 111 119

10 103 112 120 12911 113 122 132 14112 121 131 141 151

1

(a) Font CM

Giustezze in millimetriNumero di caratteri

Corpo 60 65 70 758 87 95 102 1099 95 103 111 119

10 103 111 120 12911 111 120 129 13812 121 131 141 151

1

(b) Font LM

Giustezze in millimetriNumero di caratteri

Corpo 60 65 70 758 77 83 90 969 87 94 101 108

10 96 104 113 12111 106 115 124 13312 116 125 135 145

1

(c) Font TX

Giustezze in millimetriNumero di caratteri

Corpo 60 65 70 758 86 93 100 1089 97 105 113 121

10 108 117 126 13511 118 128 138 14812 129 140 151 162

1

(d) Font PX

Tabella 192 Giustezze determinate con il metodo della lunghezza dellrsquoalfabetoLe giustezze sono espresse in millimetri e i valori sono arrotondati al valoreintero (a) font CM (Computer Modern) (b) font LM (Latin Modern) (c) fontTX (Times eXtended) (d) font PX (Palatino eXtended)

servono a poco e possono essere anche vuoti o uno dei due puograve contenere solo ilnumero della pagina questrsquoultimo se egrave lrsquounica indicazione oltre al testo presentesulla pagina potrebbe essere collocato nel piedino centrato o a filo del margineesterno del blocco di testo oppure potrebbe essere collocato in testa o al piededel margine esterno della pagina (come una nota marginale) In entrambi i casiesso non impegna visivamente la pagina quindi lrsquoaltezza del blocco di testocontiene effettivamente solo il testo

Se invece il testo egrave un documento di consultazione le testatine destra esinistra e i piedini destro e sinistro giocano un ruolo essenziale nella lsquonavigazionersquodel testo alla ricerca delle informazioni che interessano Ecco allora che il pac-chetto fancyhdr diventa utilissimo per costruire testatine e piedini fortementestrutturati che aiutino davvero nella navigazione del testo questo pacchettoconsente di gestire lrsquoinformazione variabile di pagina in pagina da collocarenelle testatine di sinistra e di destra lo stesso vale per i piedini Il pacchettoconsente di immaginare ogni testatina o piedino diviso in tre parti quella disinistra quella di centro e quella di destra e di scrivere in ciascuna parte unainformazione diversa La documentazione del pacchetto fancyhdr si trova indoclatexfancyhdrfancyhdrpdf

Si capisce subito che questo genere di testatine e di piedini fortemente strut-turati possono essere molto utili nei rapporti tecnico-scientifici adeguatamentepredisposti possono indicare in un vocabolario il primo e lrsquoultimo lemma checompaiono in una pagina Ma quello che egrave piugrave importante egrave che questi elementi

192 LA GEOMETRIA DELLA PAGINA 351

di riferimento sono otticamente lsquoingombrantirsquo e quindi bisogna ritagliarli dalrettangolo del testo tenendo conto anche di un adeguato spazio di separazioneeventualmente anche di un filetto di delimitazione

19242 Le proporzioni della gabbia di testo

Stabilito se le testatine eo i piedini facciano o non facciano parte della gabbia deltesto bisogna decidere quali proporzioni abbia la gabbia del testo il rettangoloche racchiude il testo in relazione al rettangolo che rappresenta la pagina rifinitaSi puograve decidere che abbia le stesse proporzioni (lo stesso rapporto altezzabase)come si puograve optare per proporzioni diverse Per altro non si puograve prenderequesta decisione se non si prendono in considerazione anche i margini e ciograve cheeventualmente questi devono contenere

Una decisione preliminare molto importante egrave se si stampa solo sul recto osul recto e il verso (in bianca e volta come si dice in gergo tipografico) In realtagravese si stampa solo in bianca lo stile grafico perde abbastanza la sua importanzapercheacute si sta parlando di un fascicolo o incollato a caldo o semplicemente inseritoin una legatura a spirale o a punti o ad anelli Ciograve non toglie che non si debbaprendere qualche precauzione per evitare che una parte di testo risulti illeggibile

Normalmente se si stampa solo in bianca le proporzioni della gabbia deltesto rispecchiano le proporzioni della pagina fisica eventualmente depuratadellrsquoulteriore margine a sinistra per tener conto della legatura artigianale o deifori per gli anelli su un foglio A4 si puograve pensare di assegnare circa 7-8mm per larigidezza della incollatura a caldo o della legatura a spirale un poco di piugrave per ifori per i raccoglitori ad anelli La larghezza utile della pagina diventa perciograve da202-203mm a 195mm e la proporzione altezza su larghezza va da circa 147 acirca 152 invece del valore di circa

radic2 asymp 141 tipico della serie UNI

Per esempio per un raccoglitore ad anelli il rapporto utile vale 152 Se lagiustezza egrave di 125mm allora lrsquoaltezza della gabbia del testo deve essere di 190mmCentrando la pagina nello spazio utile i margini superiore e inferiore diventanodi (297 mmminus 190 mm)2 = 535 mm I margini destro e sinistro diventano invecediversi se si deve tenere conto dei 15mm assegnati allo spazio per i fori deglianelli il margine destro diventa (210 mm minus 15 mm minus 125 mm)2 = 35 mm eil margine sinistro egrave 15mm piugrave grande e risulta 50mm come controprova50 mm + 125 mm + 35 mm = 210 mm

Per la stampa in bianca e volta crsquoegrave maggiore libertagrave sia pure tenendo contoche le pagine destre e sinistre sono diverse se non altro percheacute i margini internidevono essere diversi dai margini esterni anche in questo caso si puograve tenere contodi qualche millimetro per contrastare lrsquoeffetto di curvatura in corrispondenzadel margine interno il margine di cucitura Tuttavia non si egrave tenuti a rispettarela stessa proporzione della pagina fisica Anzi i grandi book designer giocanocon la forma della pagina e la forma della gabbia del testo per ottenere effettispeciali Bringhurst per esempio gioca con i rapporti geometrici come se fosseroi rapporti di note musicali sia della scala diatonica sia di quella cromatica ericerca i rapporti che formino accordi gradevoli altri invocano il rapporto aureoaltri invocano i rapporti che esistono negli elementi delle figure geometriche inparticolare dei poligoni regolari Un esempio egrave dato dal disegno riportato nelcapitolo 14 nella figura 142 Definita la diagonale di un poligono regolare comela corda piugrave lunga allora la diagonale di un triangolo equilatero sta al lato inrapporto unitario e dagrave quindi luogo ad una gabbia quadrata Con il quadrato

352 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

il rapporto egraveradic

2 con il pentagono il rapporto egrave quello aureo 1618 conlrsquoesagono il rapporto vale 2 con lrsquoettagono il rapporto vale 2247 con lrsquoottagonoil rapporto vale 2613 Raramente si usano rapporti cosigrave grandi (superiori a 2) manon sono esclusi per particolari documenti in un catalogo di una casa editriceho trovato una gabbia con il rapporto pari a 225 praticamente il rapportodellrsquoettagono

19243 I margini

Tradizionalmente i margini inferiore e superiore stanno fra di loro come il margineesterno sta al margine interno Inoltre in una coppia di pagine affacciate (ininglese uno spread) spesso si desidera che la coppia di margini interni sianocomplessivamente equivalenti a ciascuno dei margini esterni Esaminando il layoutdi diversi testi antichi e moderni Wilson ha trovato che in realtagrave questa tradizionenon era rispettata nemmeno secoli fa sebbene moltissimi libri pubblicati inpassato la rispettassero Wilson ha raccolto diversi disegni di layout antichi emoderni nella parte preliminare del manuale della sua classe memoir che ora sitrova in un file separato ctantex-archiveinfomemdesignmemdesignpdf

Per seguire questa regola gli antichi usavano squadra e compasso ed eseguivanodelle ingegnose costruzioni geometriche per determinare le proporzioni dellagabbia e dei margini

Gutenberg avrebbe disegnato la gabbia delle sue famose Bibbie e di diversialtri stampati seguendo la costruzione della figura 193 La costruzione egrave piugravelunga da commentare che non da valutare graficamente Comunque si basa sulmetodo delle due diagonali La diagonale AB indicata nella figura egrave la diagonaledella pagina di destra mentre la diagonale CD egrave la diagonale delle due pagineaffacciate ed egrave per questo che interseca il margine sinistro della pagina di destraa metagrave altezza Le due diagonali si intersecano nel punto E per il quale si tracciala verticale EF di qui si traccia la parallela FG alla diagonale delle due pagineaffacciate il punto di intersezione H di questa parallela con la diagonale dellapagina individua il primo vertice della gabbia dal quale egrave semplice tirare le debitelinee verticali ed orizzontali per completare il rettangolo HIJK della gabbia

Analizzando la costruzione geometrica si determina abbastanza facilmenteche il risultato della costruzione di Gutenberg egrave lo stesso di quello che si ottienecon il metodo delle nove strisce discritto qui di seguito Infatti la prima metagravedella costruzione determina il punto E tale che il segmento AE egrave un terzodel segmento AB la seconda parte della costruzione determina il punto H inmodo che nuovamente il segmento AH sia un terzo del segmento AE perciograve ilmargine interno e quello superiore sono rispettivamente un nono della larghezzae dellrsquoaltezza della pagina rifinita sulla base della quale si egrave fatta la costruzionegeometrica Per la similitudine dei vari triangoli che hanno generato il margineinterno e quello superiore i margini esterno e quello inferiore sono esattamenteil doppio quindi due noni della corrispondente dimensione della pagina rifinita

La costruzione piugrave semplice consiste nel dividere il rettangolo della paginarifinita un un certo numero di strisce uguali sia in verticale sia in orizzontaledue strisce verticali esterne vengono riservate al margine esterno e due strisceorizzontali in basso vengono riservate al margine inferiore una striscia orizzontalein alto viene riservata al margine superiore e infine una striscia verticale vieneriservata al margine interno In questa maniera le proporzioni della gabbia deltesto risultano uguali a quelle della pagina il margine interno egrave metagrave del margine

192 LA GEOMETRIA DELLA PAGINA 353

h

h2

A C

B

D

E

F

H

G

I

JK

CBeccari

ndashpi

ctur

e-20

090

601

Figura 193 Costruzione geometrica usata da Gutenberg per determinare leproporzioni e la posizione della gabbia delle sue famose Bibbie

esterno e il margine superiore egrave la metagrave del margine inferiore La figura 194permette di seguire la costruzione su un foglio con le proporzioni della carta A4nella costruzione della figura (a) viene usato il rapporto 2 1 tra la larghezzadel testo e la larghezza complessiva dei margini cosigrave come tra la larghezza delmargine esterno rispetto al margine interno e lo stesso viene fatto per le altezzeQuindi sei strisce per il testo e tre complessivamente per i margini delle qualidue per il margine maggiore e una per il margine minore

Sempre usando le strisce ma con un rapporto diverso si puograve ottenere unacostruzione differente ma che conserva la stessa proporzione fra le dimensionidella pagina e quelle della gabbia Per esempio se si sceglie il rapporto 3 2occorrono complessivamente 25 strisce 4 per il margine piccolo 6 per il marginegrande 10 in totale per i margini 15 per la gabbia questo egrave quello che si egrave fattonella figura 194(b)

Sviluppando i calcoli in modo algebrico senza fare riferimento alle strisce(che diventerebbero infinite) si potrebbe calcolare la divisione della pagina con ilrapporto aureo il margine piccolo sta a quello grande come 1 φ e il testo staai margini complessivi ancora come 1 φ Quindi il margine piccolo sta a quellogrande che sta al testo come la proporzione 1 φ φ(1 + φ) Svolgendo i calcolisi ottiene che se w egrave la dimensione orizzontale o verticale della pagina rifinita

354 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

(a) (b) (c) (d)

(e)CBeccari

ndashpi

ctur

e-20

090

601

(f) (g) (h)Figura 194 Determinazione della gabbia e dei margini con il metodo delle strisce(a) esempio con 9 strisce e rapporto 2 1 (b) esempio con 25 strisce e rapporto3 2 (c) esempio con il rapporto aureo ndash si noti che la gabbia non egrave un rettangoloaureo (d) esempio con il rapporto 4 3 Nella seconda riga viene rappresentato ilmetodo delle strisce riferito solo al rapporto dei margini (e) metodo dei marginicon 11 strisce (f) metodo delle 10 strisce usato dalla classe octavo (g) metododei margini con 8 strisce (h) gabbia aurea con margini aurei su foglio A4

allora le dimensioni orizzontali o verticali rispettivamente dei margini e dellagabbia sono 0145 898w per il margine piccolo 0236 068w per il margine grandee 0618 034w per la gabbia Ciograve egrave quanto si vede nella figura 194(c)

La situazione egrave diversa per il disegno (h) In questo disegno si impone che lagabbia sia un rettangolo aureo quindi la base della gabbia sta alla sua altezzacome 1 sta a φ Il foglio egrave un rettangolo UNI (A4) con rapporto fra la base elrsquoaltezza pari a

radic2 se si impone il rapporto aureo anche fra i margini piccoli e

quelli grandi questo puograve essere fatto indipendentemente dalle dimensioni dellagabbia Quindi egrave possibile imporre per esempio che la base della gabbia abbia ilrapporto aureo rispetto alla somma dei margini laterali ma non si puograve imporrela stessa relazione fra lrsquoaltezza della gabbia e la somma dei margini superioree inferiore Infatti eseguiti i calcoli4 si ottiene il disegno (h) che egrave piuttostodiverso dal disegno (c)

Nei primi tre schemi della figura 194 i rapporti numerici indicati sono sempre

4I calcoli dannobase del foglio 210000mm margine interno 30639mm

altezza del foglio 297000mm margine esterno 49574mmbase della gabbia 129787mm margine superiore 33231mm

altezza della gabbia 210000mm margine inferiore 53769mm

192 LA GEOMETRIA DELLA PAGINA 355

(a)CBeccari

ndashpi

ctur

e-20

090

601

(b) (c)Figura 195 Confronto fra tre gabbie che sulla carta UNI A4 tengono contodel rapporto aureo (a) gabbia ottenuta con il pacchetto layaureo (b) gabbiacon proporzioni auree fra le dimensioni della gabbia e i corrispondenti marginipiccolo e grande (c) gabbia aurea con margini aurei

costituiti da due successivi numeri di Fibonacci5 egrave noto che la sequenza diFibonacci ha il rapporto fra due successivi termini che tende al rapporto aureonon egrave un caso che la figura 194(c) assomigli molto alla figura 194(b) bencheacute inquesta il rapporto 3 2 = 15 non sia tanto vicino al rapporto aureo 1618 034 ma la costruzione della figura 194 basata sulle strisce consente anche rapportiformati da numeri che non appartengono alla sequenza di Fibonacci Se si sceglieil rapporto 4 3 le strisce occorrenti sarebbero 49 e si omette di disegnarle siottiene la figura 194(d) e come si vede le differenze non sono enormi

Visto che in diverse figure si sono presentati dei disegni della pagina conmargini aurei si egrave riportata ancora la figura 195 dove sono messi a confronto itre schemi ripetendone le caratteristiche

(a) In questo schema prodotto dal pacchetto layaureo la gabbia ha la basepari alla lunghezza ottimale in base alla regola di Bringhurst aumentata di4 pc ndash secondo la tabella 192 la giustezza conterrebbe 75 caratteri del fontLatin Modern lrsquoaltezza in rapporto aureo con la base il margine interno eil margine esterno in rapporto aureo fra di loro il margine superiore

radic2

volte piugrave piccolo del margine inferiore La pagina egrave A4 e la larghezza dellagabbia egrave di 31 pc per il font da 10 pt come specificato sopra Secondo ilpacchetto layaureo la gabbia risulterebbe linearmente piugrave grande di circail 6 per il corpo di 11 pt e di un altro 6 piugrave grande per il corpo di 12 pt

(b) In questo schema i margini sia in orizzontale sia in verticale sono inproporzione aurea e la loro somma egrave in proporzione aurea con la dimensioneorizzontale o verticale della gabbia il rettangolo della gabbia ha quindi lestesse proporzioni della pagina

(c) In questo schema invece il margine interno egrave in proporzione aurea con ilmargine esterno e la loro somma in proporzione aurea con la base dellagabbia lrsquoaltezza della gabbia egrave in proporzione aurea con la base il marginesuperiore e il margine inferiore sono in proporzione aurea fra di loro manon con lrsquoaltezza della gabbia

5La sequenza di Fibonacci comincia con 1 1 e prosegue con ogni elemento costituito dallasomma dei due precedenti quindi 1 1 2 3 5 8 13

356 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

In questi tre esempi la giustezza egrave sempre circa 4 pc (circa 17mm) piugrave grandedi quella raccomandata dalla regola di Bringhurst ma probabilmente solo dicinque o sei caratteri in piugrave quindi una misura assolutamente accettabile Peraltro si vede ad occhio che almeno per la composizione in corpo di 10 pt le gabbie(a) e (c) sono praticamente identiche cosigrave come lo sono i margini Con lo schema(a) usando un corpo maggiore per il font normale si avrebbe un riempimentodella pagina significativamente maggiore

Come si vede solo gli schemi (a) e (c) hanno la gabbia con la base e lrsquoaltezzain proporzione aurea mentre nello schema (b) la gabbia ha la base e lrsquoaltezza inproporzione di

radic2 Nello schema (a) la base della gabbia egrave determinata in base

alla regola di Bringhurst mentre negli schemi (b) e (c) la base egrave determinata inbase alla proporzione aurea rispetto alla somma dei margini Le tre filosofie sirifanno tutte e tre al numero aureo ma ne fanno un uso completamente diversoSta al compositore scegliere quella delle tre soluzioni che considera piugrave gradevolecome sta a lui decidere se rifarsi al numero aureo o al metodo delle strisce

Alcuni pacchetti determinano la gabbia e i margini riferendosi alle strisceusando sempre una striscia per il margine piccolo e due strisce per il marginegrande ma senza imporre nessun rapporto particolare fra le dimensioni dellagabbia e quelle dei margini lasciando quindi libera la scelta del numero dellestrisce nei disegni (e) (f) (g) della figura 194 sono rappresentate semprecon riferimento ad un foglio A4 le gabbie che si ottengono rispettivamente con11 10 e 8 strisce (il disegno con nove strisce egrave il disegno (a)) Si vede dunqueche il metodo delle strisce realizzato dal pacchetto typearea o per le 10 striscedalla classe octavo egrave molto versatile volendo con numeri alti di strisce si puogravestabilire anche un rapporto diverso fra le strisce da dedicare al margine piccolorispetto al margine grande ed egrave quello che il parametri opzionali al pacchettotypearea consentono di fare

Si osservi infine che in tutti i disegni della figura 194 tranne il disegno (h)la gabbia ha sempre le stesse proporzioni del foglio inoltre per costruzione imargini grandi stanno ai margini piccoli come lrsquoaltezza del foglio sta alla basePer cui la gabbia del testo rimane sempre adagiata con la sua diagonale sullacorrispondente diagonale del foglio Lrsquounico disegno che si discosta da questaproprietagrave egrave per costruzione il disegno (h) e quindi la diagonale della gabbia nongiace sulla diagonale del foglio Tuttavia la differenza non egrave enorme ma alla finfine il disegno (h) presenta una maggiore copertura del foglio con margini nontroppo piccoli e ben proporzionati

Il metodo delle strisce permette di suddividere anche le strisce destinate aidue margini in modo diverso fra i margini verticali e quelli orizzontali egrave quindiun metodo molto versatile Tuttavia si richiama ancora il lavoro di Wilson dove inmolti casi le suddivisioni fra i margini non rispettano affatto la regola delle striscee non ci si avvicina affatto al rapporto aureo Appaiono curiosi gli esempi in cui ilmargine interno egrave vistosamente maggiore del margine esterno Un caso particolareche ha la sua giustificazione egrave il libro di Knuth Concrete Mathematics peril quale lrsquoautore ha sviluppato anche la famiglia di font denominata ConcreteComputer Modern con la sigla CC A parte lrsquointeresse specifico per il contenuto illayout della pagina presenta un margine interno vistosamente maggiore di quelloesterno ma anche pieno di note marginali sistemate in questo margine doveriporta le battute dei suoi studenti in corrispondenza degli argomenti trattatiQuesta libertagrave stilistica e di contenuto egrave forse tipica dello humor anglosassonema certamente la lettura di quelle battute alleggerisce molto la difficoltagrave della

193 LrsquoAVANZAMENTO DI RIGA 357

materia Ecco quindi che con uno scopo preciso in mente si possono lsquoviolarersquo leregole dettate dalla tradizione

193 Lrsquoavanzamento di riga e i contrografismiverticali

Sarebbe desiderabile che lrsquoaltezza della gabbia in particolare quella che contieneil testo corrente abbia un avanzamento di riga costante e contenga un numerointero di righe La cosa non egrave semplicissima da calcolare percheacute la prima riga deltesto non dovendo essere distanziata da nessuna riga precedente ha una altezzaconvenzionale indicata da topskip quasi sempre pari a 10 pt mentre le distanzefra le righe di base di tutte le righe successive sono pari a baselineskip Percalcolare lrsquoaltezza del testo textheight in modo che contenga un numero interodi righe bisogna eseguire dei calcoli fra numeri interi con una aritmetica che nonegrave familiare a chi egrave abituato ai calcoli a mano ma che viene benissimo quando sieseguono i calcoli a macchina si tratta di eseguire le divisioni conservando laparte intera del quoziente e gettando via il resto

Scelto lrsquoavanzamento di riga ottimale normalbaselineskip per il font dicorpo normale prescelto (anche questa una operazione delicatissima che occupadiversi capitoli in ogni libro di tipografia) si puograve eseguire il calcolo in questamaniera dal calcolo della gabbia si sottrae lo spazio destinato alle testatinee ai piedini e ai loro contrografismi se si egrave scelto che tutti questi elementifacciano parte della gabbia si ottiene quindi una prima approssimazione ditextheight che chiameremo x1 si toglie topskip che chiameremo y e si divideper normalbaselineskip che chiameremo z il risultato di questa divisionein generale non egrave un numero intero ma la divisione che tex o pdftex eseguonoegrave una divisione intera quindi il risultato egrave la parte intera del quoziente chechiameremo N lrsquoaltezza della scatola del testo corrente non saragrave quindi x1 comeassunto in partenza ma saragrave il nuovo valore x2 calcolato come segue

x2 = Nz + y dove N = intero(x1 minus yz

)Esercizio 192 Per un romanzo privo di testatina e con un piedino contenente

solo il numero della pagina e che quindi non si considera facente partedella gabbia textheight coincide con lrsquoaltezza della gabbia Se si usa ilmetodo delle strisce e il rapporto 2 1 con una pagina rifinita di 170mmper 240mm e si egrave scelto il font Computer Modern di corpo 10 pt e unavanzamento di riga normale di 12 pt quanto deve valere textheightpercheacute contenga un numero intero di righe

Si puograve procedere anche a rovescio scelto lrsquoavanzamento di riga che si vorrebbeusare z1 si calcola quante righe Nt totali stanno nellrsquoaltezza desiderata poisi ricalcola il nuovo avanzamento z2 in modo che nellrsquoaltezza specificata stianoesattamente le N righe cosigrave definite Perciograve i calcoli da fare sono i seguenti

M = Nt minus 1 = intero(xminus yz1

)e poi z2 =

(xminus yM

)Lrsquoultima divisione deve essere una divisione fratta egrave piugrave facile da calcolare conuna ordinaria calcolatrice che non farla determinare a pdftex in realtagrave oggi

358 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

questo sarebbe perfettamente in grado di eseguire la divisione senza problemioggi infatti le versioni moderne di pdftex consentono di determinare nativamenteil valore di alcune espressioni aritmetiche grazie alle estensioni di etex incorporategiagrave da qualche anno Si tralascia qui di mostrare come fare per far fare i calcolial programma stesso ma si indirizza il lettore alla documentazione di etexcontenuta in docetexbaseetex-manpdf al paragrafo 35 intitolatosignificativamente Expressions

Nel presente testo lrsquoavanzamento di riga egrave di 12 pt per il corpo normale di10 pt il file bk10clo corrispondente allrsquoopzione 10pt determina lrsquoaltezza deltesto con una prima approssimazione pari allrsquoaltezza del foglio diminuita di 35pollici un valore forfettario che tiene conto dei margini della testatina e del suospazio di separazione dal testo della prima riga di testo ma non del piedinopoi divide il risultato per lrsquoavanzamento di riga normale conservando la parteintera del risultato infine rimoltiplica lrsquoavanzamento normale per questo numerointero a alla fine aggiunge topskip Praticamente quel che si egrave indicato con ilprimo procedimento

Sarebbe desiderabile che le righe di testo corrente che si vedono controluce frail recto e il verso della pagina siano appoggiate sulle stesse linee di base in questomodo si riduce lrsquoeffetto della semitrasparenza della carta che provocherebbe undisturbo alla lettura se ciograve non avvenisse

Bisognerebbe quindi che ogni struttura del testo stampato che compare suogni pagina dalla semplice riga di testo ai titolini dei paragrafi e delle lorosuddivisioni dalle formule in display alle inserzioni di figure tabelle o altrofossero sempre anche loro dei multipli interi dellrsquoavanzamento di riga normaleQuesto egrave molto difficile da ottenere anche se si prendono tutte le misure e leprecauzioni possibili e immaginabili per avere strutture fatte come si egrave dettoNei testi letterari ci si riesce abbastanza bene ma in testi tecnici egrave difficilissimoAnche i compositori che lavorano con programmi di impaginazione professionalitrovano serie difficoltagrave e nella migliore delle ipotesi devono aggiustare a manolrsquoaltezza di ogni struttura che non sia costituita da semplice testo composto conil font di default nel corpo normale

In pratica bisogna determinare gli spazi bianchi i contrografismi in modoche la loro altezza sommata a quella delle strutture in evidenza sia sempre unmultiplo intero dellrsquoavanzamento di riga normale Questo non egrave difficilissimo dafare ma richiede una pazienza infinita

Il punto egrave che bisogna fare i conti con lrsquoalgoritmo che tex o pdftex usano persuddividere il testo in pagine Come si puograve bene capire lrsquointerprete non lasciail titolo di un paragrafo in fondo ad una facciata per cominciare il testo delparagrafo nella facciata successiva (molti word processor di tipo WYSIWYG lofanno) lrsquointerprete cerca anche di evitare le righe orfane e le righe vedove Unariga orfana egrave una riga isolata in fondo alla pagina quando il capoverso proseguenella pagina successiva (ldquole righe orfane non hanno un passato ma hanno unfuturordquo egrave la frase per ricordare di che cosa si tratta) una riga vedova egrave unariga isolata allrsquoinizio di una pagina il cui capoverso egrave cominciato nella paginaprecedente (ldquole righe vedove hanno un passato ma non hanno un futurordquo)

Questo significa che un paragrafo con il suo titolo corrente puograve cominciare a4 o 5 righe equivalenti di testo corrente dal fondo di una pagina percheacute devecontenere il suo titolo corrente il suo contrografismo e almeno due righe di testoaltrimenti la sua sola prima riga resterebbe orfana Analogamente la fine diun capoverso non puograve avvenire mandando a capo in una nuova pagina la sua

194 I CAPOVERSI 359

ultima riga percheacute questa resterebbe vedova Quando crsquoegrave della matematica indisplay si possono avere altre possibilitagrave di righe orfane o vedove prima o dopo laformula Quando dunque si devono evitare le righe orfane o vedove si hanno duepossibilitagrave o si compone senza giustificare il piede delle pagine affacciate oppuresi giustificano questi piedi ma si introduce dello spazio in piugrave nei contrografismio fra un capoverso e lrsquoaltro in sostanza si disturba la griglia delle righe

Una soluzione sarebbe quella di accorciare di una riga due pagine affac-ciate (uno spread) in modo che la riga vedova che apparirebbe nella paginadi destra senza lrsquoaccorciamento suddetto verrebbe preceduta dallrsquoultima rigadalla pagina di sinistra riportata a destra grazie allrsquoaccorciamento nello stessotempo scorciando anche la pagina di destra le due griglie dello spread restanoallineate Se invece la riga vedova gira nella pagina di destra la prima riga diuno spread accorciando di una riga le due pagine dello spread precedente lavedova non resta piugrave tale percheacute verrebbe preceduta da due righe provenientidallo spread precedente Queste correzioni come egrave facile immaginare vanno fatteallrsquoultimo percheacute qualunque modifica del testo potrebbe distruggere tutta lapaziente operazione appena descritta

Certo in fase di rifinitura finale si puograve intervenire inserendo in punti strategiciopportuni comandi di newpage che eliminano la giustificazione al piede dellepagine oppure comandi enlargethispage con o senza asterisco che ugualmentepossono eliminare la giustificazione al piede delle pagine affacciate Questo fattonon ha nulla a che vedere con il disegno grafico ma bisogna sempre ricordarseneper capire percheacute un disegno accuratamente pensato possa deludere le aspettative

Unrsquoaltra tecnica poco conosciuta per gestire la lunghezza dei capoversi perallungarli o per accorciarli senza modificarne il testo consiste nello specificareil comando primitivo looseness alla fine del capoverso insieme ad un valoreintero positivo o negativo per esempio looseness1 serve per consentire lrsquoallun-gamento del capoverso di una riga Questa tecnica egrave efficace (a) se il capoversoegrave sufficientemente lungo (b) se il capoverso egrave da allungare e il suo ultimo rigo egravesufficientemente lungo (c) se il capoverso egrave da accorciare e il suo ultimo rigoegrave sufficientemente corto Se queste condizioni non sono verificate il comandolooseness lascia le cose come stanno e quindi non risulta efficace ma nondisturba la composizione In questo testo lrsquoartificio indicato egrave stato usato undecina di volte

194 I capoversiUna delle caratteristiche che piugrave distinguono le varie composizioni tipograficheriguarda lo stile di composizione dei capoversi

In generale sarebbe preferibile che ogni capoverso non fosse separato dalcapoverso precedente da una interlinea Con LATEX generalmente questa sepa-razione dei capoversi con una interlinea egrave attuata solamente allrsquointerno delleliste semplici o delle enumerazioni o delle descrizioni In questi casi visto che iltesto ha giagrave un margine sinistro rientrato il tipico rientro del capoverso sarebbeprobabilmente eccessivo

Invece i capoversi del testo lsquonormalersquo non sono separati da una interlineama hanno la prima riga rientrata Questo rientro serve per marcare lrsquoinizio diun capoverso ed egrave particolarmente utile quando il capoverso precedente ha ilsuo ultimo rigo che termina praticamente a filo del margine destro Si capisce

360 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

subito allora che il primo capoverso di un paragrafo non ha bisogno di nessunrientro percheacute non egrave direttamente preceduto da nessun altro capoverso ma solodal titolo del paragrafo

Nella tradizione compositiva francese invece anche il primo capoverso diun paragrafo egrave rientrato NellrsquoOttocento e fino alla prima metagrave del Novecentoanche la tipografia italiana seguiva la tradizione francese non solo per quel cheriguarda il rientro del primo capoverso ma anche per le spaziature davanti aisegni di interpunzione alti e anche fra i caporali e il testo fra loro contenuto Sesi desidera seguire la tradizione francese di rientrare anche il primo capoverso diun paragrafo basta caricare il pacchetto indentfirst

Il rientro del capoverso dovrebbe essere costante indipendentemente dalcorpo usato per esempio 10 pt Se si specifica il rientro mediante una unitagravedi misura dipendente dal font in uso per esempio 1 em questo coincide con10 pt con il corpo 10 ma aumenta o diminuisce con il corpo del font con cuiil capoverso viene composto questo potrebbe essere un inconveniente esteticopercheacute se si usano spesso incisi composti in corpo minore i rientri dei capoversinon appaiono piugrave incolonnati Si consiglia quindi nellrsquousare i pacchetti checonsentono di modificare il layout della pagina di definire il rientro medianteuna misura assoluta per esempio lo stesso ammontare dellrsquoavanzamento di rigaper il testo normale da 12 pt a 15 pt

Non sempre il primo capoverso egrave preceduto dal titolo del paragrafoDipende dal contesto ma in diversi tipi di documenti a stampa o in certe

loro sezioni come per esempio una introduzione non si divide il testo in paragrafibencheacute vengano trattati diversi argomenti fra di loro non tanto correlati tanto dadover essere sezionati con i rispettivi titoli Spesso si ricorre a delle decorazioni

Nei libri moderni le decorazioni sono spesso assenti altrettanto spesso siriducono a una breve sequenza di simboli per esempio un asterisco centratocome alla fine del paragrafo precedente (prima del capoverso precedente) evengono usati per separare verticalmente parti di testo che non richiedono unsezionamento vero e proprio ma nello stesso tempo non sono propriamentecontigue da un punto di vista testuale

Esistono font che contengono sequenze di motivi floreali o motivi geometricicon i quali si possono realizzare decorazioni piugrave eleganti ma che spesso stonanonei libri moderni

Se invece si deve riprodurre un libro antico o anche solo vecchiotto si puogravericorrere a questi font e si possono cercare su ctan i pacchetti per gestire questedecorazioni nel modo piugrave efficace tra gli altri si segnala il pacchetto fourier

Al contrario anche in alcuni libri moderni si usano i capilettera queste sonolettere di corpo decisamente maggiore di quello del testo circostante e vengonousate rialzate o ribassate per marcare lrsquoinizio di un capoverso o meglio ancorail capoverso iniziale di un capitolo eo di un paragrafo anticamente si usavanoanche capilettera decisamente ornati e di corpo diverse volte maggiore del corponormale per esempio in corpo 70 pt quando si compone in corpo 10 pt

Per usare i capilettera (versal in inglese e lettrine in francese) si puograve age-volmente usare il pacchetto lettrine con il quale sono disponibili comandi eopzioni di diverso genere per collocare i capilettera nella posizione desideratascegliendone il font le dimensioni e gli altri parametri stilistici Vale la pena dileggerne la documentazione in doclatexlettrinelettrinepdf ma egrave

195 TESTATINE E PIEDINI 361

molto interessante esaminare gli esempi riportati in doclatexlettrinedemopdf

Egrave importante considerare anche lrsquoeffetto che si ottiene quando si cominciaun capoverso con un capolettera e si prosegue con il maiuscoletto per qualcheparola per poi tornare al font normale questo egrave un espediente che viene usatospesso quando si usano i capilettera per mitigare la transizione fra le grandidimensioni della lettera iniziale e il corpo normale egrave esattamente quello che si egravefatto allrsquoinizio di questo paragrafo

195 Testatine e piediniDelle testatine e dei piedini si egrave giagrave commentato abbastanza sul fatto cheintervengano o non intervengano nella definizione della gabbia si egrave anche dettodel pacchetto fancyhdr per mettere nella forma dovuta testatine e piedini

Non si ritorna su questi argomenti ma ci si sofferma sulla sostanziale differenzache per il sistema TEX esiste fra una testatina e un piedino non si trattasemplicemente di due blocchetti di testo generalmente composti di una sola rigaciascuno messi uno in testa e uno al piede del testo adeguatamente spaziati daquesto e talvolta adeguatamente separati da semplici decorazioni in generaleformate da un sottile filetto orizzontale

Il punto egrave che lo spazio di separazione fra la testatina (eventualmente com-prensiva del suo filetto) e il testo sottostante egrave costituito da spazio vero e propriodi una dimensione ben specificata dal grafico editoriale Invece lo spazio specifi-cato per distanziare il piedino dal piede del testo rappresenta lrsquoavanzamento diriga fra la linea di base dellrsquoultima linea del testo (o dal fondo del rettangoloideale che lo contiene) e la linea di base della prima o unica riga del piedino

In buona sostanza se si specifica che la distanza headsep fra lrsquoheader(testatina) e il testo egrave di 10mm una volta composta una pagina con quellatestatina si prende il doppio decimetro si misura e si rilevano esattamente 10mm

Se si specifica che la spaziatura del piedino footskip sia di 10mm eattenzione non crsquoegrave nulla da specificare per lrsquoaltezza del piedino dopo averstampato una pagina piena con quel piedino si misurano i 10mm fra le linee dibase dellrsquoultima riga del testo e della prima o unica riga del piedino si trovanoquei 10mm ma considerando i discendenti dellrsquoultima riga e il fatto che la primao unica riga del piedino giace sopra la sua linea di base la distanza effettiva frail piedino e il testo risulta decisamente minore di 10mm e questa differenza egraveotticamente ben percepibile Drsquoaltra parte si egrave giagrave mostrato lo schema quotatodelle due pagine affacciate sinistra e destra nella pagina 282 e nella successivasi vede chiarissimamente che la freccia che inidica la misura di footskip vadalla base del testo alla base del piedino mentre la freccia che indica la misuradi headsep va dalla base della testatina al colmo del testo

Di questo fatto bisogna tenere ben conto nel progettare la geometria dellapagina certamente i pacchetti impiegati per determinare i parametri geometriciaiutano ma non si puograve fare a meno di eseguire alcune prove di stampa per valutaregli effetti questi ultimi saranno tanto piugrave vistosi quanto piugrave lsquoingombrantersquo egrave ilpiedino un semplice numero di pagina centrato nel piedino ma un porsquo troppovicino al testo sovrastante disturba la vista ma lo si puograve sopportare se invecelo stesso piedino contiene a sinistra il nome dellrsquoautore al centro il numerodella pagina e a destra il nome della collana di pubblicazioni a cui appartiene

362 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

il rapporto corrente allora un simile piedino troppo vicino al testo disturbadavvero e non lo si puograve accettare

Per avere lo schema metrico delle due pagine affacciate lo si riporta di nuovonella pagina 364 e nella successiva in modo da avere a disposizione piugrave facilmentele varie misure della pagina descritte in questo capitolo Ci si ricordi per altroche le quote indicate sono relative alla classe book con un formato della paginaA4 ma senza avere modificato le dimensioni predefinite Su fogli della serie ISOla disposizione del testo non egrave perfetta ma egrave accettabile specialmente se si fa unlargo uso di note a margine Si capisce quindi percheacute la maggior parte degli utentiricorre ai pacchetti di personalizzazione specialmente geometry e typearea perdisporre di una maggiore flessibilitagrave nel disegno della pagina6 Questo egrave benema non bisogna esagerare quei pacchetti eseguono al posto nostro i vari calcolinecessari e seguono le nostre indicazioni stilistiche come meglio possono ma staal compositore valutare il risultato da un punto di vista estetico

196 I pacchetti di personalizzazione

1961 Il pacchetto geometry

Il pacchetto geometry egrave un pacchetto che contiene tutte le necessarie opzioni emacro per descrivere il layout geometrico di una pagina lsquonormalersquo tenendo ancheconto dellrsquoingombro ottico delle testatine e dei piedini permette di specificare imargini di scegliere un layout classico di scegliere le proporzioni adeguate allostile desiderato e al font usato Esegue insomma tutte le operazioni descrittenei paragrafi precedenti

Date le molteplici applicazioni la sua documentazione egrave piuttosto importantela si trova in doclatexgeometrymanualpdf

Una delle cose piugrave utili del pacchetto egrave la sua capacitagrave di determinare leinformazioni geometriche mancanti a partire da un certo numero di parametri didefault Per esempio esso usa un rapporto predefinito (che ovviamente puograve esseremodificato dal compositore) fra il margine interno (o superiore) e il margineesterno (o inferiore) delle pagine se il documento egrave stampato solo in bianca ilrapporto di default viene usato solo per i margini superiore e inferiore mentreper quello interno ed esterno viene usato il rapporto 1 1 vale a dire che la gabbiaviene centrata orizzontalmente fra margini uguali Se invece il documento vienestampato in bianca e volta il rapporto predefinito o specificato dal compositoreviene usato per tutti i margini Conoscendo le dimensioni della pagina rifinita ilpacchetto egrave in grado di calcolare la gabbia e i margini a partire da una sola diqueste informazioni

Per esempio il manuale presenta questo caso supponiamo di avere una paginafinita in formato A4 quindi di 210mm per 297mm e di specificare il margineesterno di 24mm il rapporto predefinito vale 2 3 (come nella figura 194(b)) e ilriempimento della pagina vale 07 (un porsquo maggiore rispetto al valore di 35 che

6La classe memoir contiene i suoi propri comandi per la creazione della geometria dellapagina essi sono molto flessibili e potenti memoir mette anche a disposizione dei comandi perpresentare graficamente la disposizione dei blocchi di testo i titoli e altre cose del genere inmodo da aiutare il compositore a scegliere meglio i parametri geometrici delle varie pagine

196 I PACCHETTI DI PERSONALIZZAZIONE 363

appare nella figura 194(b) ) Allora

margine interno = (23)times 24 mm = 16 mmgiustezza orizzontale = 210 mmminus 24 mmminus 16 mm = 170 mm

giustezza verticale = 07times 297 mm = 2079 mm

margine superiore = 22 + 3 times (297 mmminus 2079 mm) = 3564 mm

margine inferiore = (32)times 3564 mm = 5346 mm

Allo stesso modo si sarebbe potuta specificare qualunque altra singola dimen-sione (oltre alle dimensioni della pagina finita) e si sarebbero potute calcolare lemisure mancanti geometry si incarica poi di tradurre i valori di giustezze e dimargini in termini di lunghezze usate dallrsquointerprete per eseguire la composizionetipografica

Non si insiste oltre percheacute la funzionalitagrave del pacchetto egrave talmente vastache continuando con gli esempi si finirebbe con riscrivere il manuale Ciograve nonimpedisce di ribadire che il pacchetto geometry egrave uno dei pacchetti preferiti daogni compositore che voglia personalizzare un pochino i suoi documenti senzaconformarsi agli stili predefiniti dalle classi standard della distribuzione delsistema TEX Come egrave giagrave stato notato le funzionalitagrave di geometry sono tutteincorporate nella classe memoir che le estende ulteriormente se si usa questaclasse non egrave necessario caricare il pacchetto geometry a meno che non se nevogliano sfruttare i comandi invece di affidarsi ai comandi di memoir che hannonomi diversi Chi scrive ha usato sia lrsquouna che lrsquoaltra strada e la sua opinioneegrave che se si usa memoir egrave meglio non caricare neacute geometry neacute typearea (vedisotto) e usare solo i comandi e le altre funzionalitagrave della classe

Anche la collezione KOMA-script dispone di un insieme di comandi perspecificare la geometria della pagina anzi questi comandi sono contenuti nelpacchetto typearea che puograve essere caricato separatamente anche quando si usinoclassi non appartenenti alla collezione KOMA-script Vale la pena di documentarsinella guida scrguienpdf (in inglese) in doclatexkoma-script pervedere che cosa offra il pacchetto typearea il quale di default usa il metododelle strisce per la specificazione della geometria della pagina naturalmente sonodisponibili comandi accessori per eseguire delle variazioni sul layout basato sullestrisce in ogni caso il procedimento di calcolo egrave molto flessibile

1962 I titoli e i titolini i pacchetti titlesec fancyhdrsectsty e tocloft

Per definire lo stile compositivo dei titoli correnti (titolini) ci sono diversipacchetti sempre senza trascurare la classe memoir che include in seacute la maggiorparte della funzionalitagrave dei vari pacchetti sparsi in rete

Uno di quelli maggiormente citati egrave titlesec il cui manuale a sua voltasi premura di avvisare i possibili utenti che se desiderano usare strumentipiugrave semplici possono usare i pacchetti fancyhdr sectsty e tocloft Sono tuttipacchetti validissimi in effetti ma ognuno egrave destinato a modificare lo stile solo

Testatina

Corpo

Piedino

NoteMarginali

8

7

1

3

10

9

11

24

5

6

1 un pollice + hoffset 2 un pollice + voffset3 evensidemargin = 79pt 4 topmargin = 23pt5 headheight = 12pt 6 headsep = 18pt7 textheight = 598pt 8 textwidth = 345pt9 marginparsep = 7pt 10 marginparwidth = 115pt

11 footskip = 25pt marginparpush = 5pt (non mostrato)hoffset = 0pt voffset = 0ptpaperwidth = 597pt paperheight = 845pt

Testatina

Corpo

Piedino

NoteMarginali

8

7

1

3

10

9

11

24

5

6

1 un pollice + hoffset 2 un pollice + voffset3 oddsidemargin = 28pt 4 topmargin = 23pt5 headheight = 12pt 6 headsep = 18pt7 textheight = 598pt 8 textwidth = 345pt9 marginparsep = 7pt 10 marginparwidth = 115pt

11 footskip = 25pt marginparpush = 5pt (non mostrato)hoffset = 0pt voffset = 0ptpaperwidth = 597pt paperheight = 845pt

366 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

delle testatine oppure dei titoli correnti oppure degli indici7 Invece titlesecdovrebbe poter agire su tutti i fronti con una interfaccia unificata

Per quel che riguarda lrsquoaspetto da dare ai titolini il pacchetto puograve semplice-mente essere invocato con alcune opzioni queste controllano la famiglia la seriee la forma dei font si puograve stabilire il corpo usato nei titolini come anche la suacomposizione giustificata centrata o in bandiera Si puograve facilmente sceglierecome comporre lrsquoetichetta identificativa della sezione sia per quel che contienesia per il font con cui egrave scritta

Se si vogliono fare personalizzazioni piugrave estese il pacchetto offre una mol-titudine di comandi per specificare ogni possibile dettaglio relativo a titoli etitolini Naturalmente queste cose sono applicabili non solo a titoli correnti diogni sezione ma anche alle testatine e ai piedini

Caricando il pacchetto color si possono usare anche i colori per tutte questelsquoiscrizionirsquo particolari Naturalmente sta al buon gusto del compositore o delgrafico editoriale decidere se usare i colori e sceglierli in modo adeguato anche altipo di documento che viene composto Negli anni rsquo90 era abbastanza frequentelrsquouso di un colore celeste sia per i titolini sia per le formule sia per le figure eraun tentativo per evitare le fotocopie visto che le fotocopiatrici di quellrsquoepocaavevano difficoltagrave a copiare alcuni colori fra i quali il celeste Oggi il celeste puograveancora essere usato (magari non cosigrave chiaro come allora) ma certamente non perevitare le fotocopie percheacute oggi le fotocopiatrici copiano perfettamente qualsiasicolore

I comandi estesi per affrontare personalizzazioni importanti nello stile dellapagina servono anche per definire nuovi stili o per modificare quelli giagrave definiti Inparticolare egrave possibile definire variazioni di stile rispetto alla pagine normali perle pagine che contengono solo oggetti flottanti nelle quali si possono usare altreiscrizioni nelle testatine eo nei piedini e si possono eventualmente eliminarei filetti normalmente presenti affincheacute non possano essere confusi con oggettiappartenenti agli oggetti flottanti

Si possono gestire anche i lsquomarkrsquo TEX e LATEX lavorano con tre specialimarcatori per definire che cosa deve essere scritto nelle testatine eo nei piediniSono il topmark botmark e firstmark essi sono caricati con il 〈titolo breve〉dei comandi chapter section (ed eventualmente subsection con la classearticle) e consentono di avere sulla pagina corrente o sulle pagine di destralrsquoinformazione del titolo del paragrafo (o del sottoparagrafo) corrente per lapagina nella quale compare lrsquoindicazione se nel corso della pagina correnteviene iniziato un nuovo paragrafo a seconda del tipo di documento puograve essereimportante mostrare nella testatina per esempio il titolo del paragrafo che erain vigore allrsquoinizio della pagina oppure quello in vigore alla fine della paginatutte queste informazioni vengono gestite diversamente da TEX e da LATEXma in entrambi i casi esse sono limitate a quei tre marchi LATEX li gestisceattraverso entitagrave che si chiamano leftmark e rightmark che vengono lsquocaricatirsquomediante lrsquouso implicito di markboth e markright attraverso i comandi disezionamento il processo egrave abbastanza schermato allrsquoutente normale che cosigravenon deve preoccuparsi di queste cose piuttosto delicate Con il pacchetto titlesecsi hanno molte piugrave possibilitagrave percheacute si dispone di piugrave mark e di piugrave flessibilitagravenei campi delle testatine e dei piedini

7Egrave opportuno aggiungere anche il pacchetto caption che consente di personalizzare ledidascalie degli oggetti flottanti

196 I PACCHETTI DI PERSONALIZZAZIONE 367

Il pacchetto consente anche di comporre indici parziali per esempio allrsquoiniziodi ogni capitolo si potrebbero stampare lrsquoindice interno del capitolo e anchegli elenchi delle tabelle eo delle figure contenute nel capitolo naturalmentequesti indici parziali possono essere composti con uno stile diverso dallrsquoindicegenerale tuttavia anche in questo caso lrsquouso di questi indici parziali deveessere adeguatamente pensato in funzione del particolare documento che vienecomposto Non vale il principio lsquoitalicorsquo che ldquosiccome lo si puograve fare allora lo sideve farerdquo

Vale quanto viene detto nel paragrafo 8 della documentazione

Avendo letto questa documentazione dovrebbe essere chiaro chequesto non egrave un pacchetto per lrsquoutente occasionale a cui piace illayout standard e vuole fare qualche piccola modifica Questo egraveinvece uno strumento per il tipografo professionale che ha una ideaprecisa del layout che vuole realizzare ma non ha le conoscenze[informatiche] per farlo Non si egrave fatto nessuno sforzo per migliorareil vostro gusto nella composizione dei titoli8

1963 TestatineLa descrizione dello stile delle pagine fatta nel paragrafo precedente egrave piuttostosommaria ed egrave meglio approfondire per poter rendersi conto esattamente comesono composte le testatine negli stili delle pagine headings o myheadings o inqualunque altro stile che il compositore si voglia definire

I comandi per definire il contenuto delle testatine di sinistra e di destra sonocontenuti nelle macro evenhead e oddhead comandi interni protetti con ilsegno Se il documento egrave composto solo in bianca viene usata solo la testatinacomposta con lo stile delle pagine dispari se il documento egrave composto in bianca evolta vengono usate entrambe le macro in particolare oddhead per le testatinedelle pagine dispari e evenhead per le testatine delle pagine pari

Per la classe book queste due macro contengono (semplificato un porsquo) ilcodice seguente

defoddheadtextslMakeUppercaserightmarkhfillthepagedefevenheadthepagehfilltextslMakeUppercaseleftmark

Come si vede e come si constata guardando la pagina corrente le testatinehanno i titoli correnti composti con un font nella forma inclinata e completamentein lettere maiuscole grazie ai comandi MakeUppercase il numero della paginaviene composto allrsquoestremitagrave esterna delle testatine in carattere normale Mache cosa viene scritto nelle testatine Per la classe book che compone di defaultin bianca e volta Nella testatina di sinistra pagina pari viene inserito il titolodel capitolo mentre nella testatina di destra pagina dispari viene inseritoil titolo del paragrafo Queste due informazioni sono contenute nelle macrorightmark e leftmark A loro volta questi marchi sono inseriti quando siusano esplicitamente o implicitamente il comandi markboth o markright Lagrande macro che definisce lo stile dalla pagina per esempio headings non

8Once you have read the documentation it should be clear that this is not a package forthe casual user who likes the standard layout and wants to make simple changes This is atool for the serious typographer that has a clear idea of what layout wants and doesnrsquot havethe skill to get it No attempt is made to improve your taste in section formatting

368 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

definisce solo il contenuto delle testatine stesse ma anche che cosa i comandichapter e section caricano attraverso i comandi markboth e markrightrispettivamente tenendo conto del fatto che capitoli e paragrafi siano numerati ecompaiano nel corpo del testo (mainmatter) invece che nelle parti preliminari(frontmatter) o nelle parti finali (backmatter) Quando si usa un comandochapter nel corpo del testo il suo titolo (breve) viene implicitamente usato nelcomando markboth a sua volta chiamato dal comando chaptermark che a suavolta viene chiamato da chapter Quando si usa lo stile di pagina myheadings icomandi markboth e markright vengono usati esplicitamente dal compositoreEgrave inoltre possibile definire altri stili di pagina attraverso i pacchetti citati primaoppure attraverso i comandi giagrave presenti dentro alcuni file di classe come memoir infine possono venire usati i comandi primitivi simili a quelli che vengono usatinel nucleo di LATEX per definire gli sili headings e myheadings a cui ci si puograveriferire per prendere spunto

Bisogna capire bene come agiscono questi comandi di marcatura Egrave benericordare che LATEX consiste di moltissime macro che durante la loro esecuzionevengono sviluppate fino ai comandi primitivi Nella fattispecie i comandi primitivirelativi ai marchi sono firstmark topmark e botmark Quando la routine diuscita di LATEX compone la pagina completa di testatine piedini inserti flottantieccetera fa riferimento ai marchi contenuti in firstmark e botmark comesuggerisce il loro nome il primo rappresenta il marchio che si incontra allrsquoiniziodella pagina e il secondo egrave quello che si incontra alla fine della pagina Invecetopmark egrave quello che ogni pagina eredita dallrsquoultimo marchio della paginaprecedente ed egrave quello che viene usato se la pagina non contiene un altro primomarchio Se la pagina non contiene nessun nuovo marchio tutti e tre sono ugualia topmark il cui valore viene passato per ereditagrave alla pagina successiva e cosigravevia Dopo il primo marchio che LATEX incontra nel comporre un documentoin tutte le pagine successive che siano presenti o assenti nuovi marchi i treparametri sono sempre definiti

Per rendere le cose un poco piugrave flessibili LATEX usa i due comandi markbothe markright che inseriscono rispettivamente o due o una sola informazione inogni marchio che viene messo nel codice da cui la routine di uscita preleveragrave leinformazioni per le testatine Precisamente il contenuto di ogni marchio egrave fattodi due informazioni raccolte fra parentesi graffe secondo lo schema seguente

〈marchio di sinistra〉〈marchio di destra〉

dove le qualificazioni ldquodi sinistrardquo o ldquodi destrardquo si riferiscono al contenuto delgruppo di sinistra piuttosto che a quello di destra ma non si riferiscono egraveimportante sottolinearlo neacute alla pagina di sinistra neacute alla pagina di destra Disolito dunque il titolo di un capitolo forma il 〈marchio di sinistra〉 e il titolodel paragrafo forma il 〈marchio di destra〉

Ecco la spiegazione del meccanismo il comando rightmark preleva dalprimo marchio nella pagina firstmark oppure topmark la componente didestra di quel marchio invece leftmark preleva la componente di sinistradellrsquoultimo marchio presente nella pagina botmark

Questo spiega percheacute se in una pagina non compare lrsquoinizio di nessun para-grafo o un dato paragrafo inizia a metagrave pagina il titolo corrente nella testatinaegrave quello corrispondente al paragrafo che era ancora in vigore quando la pagina egraveiniziata (marchio ereditato dalle pagine precedenti) non allrsquoeventuale paragrafoiniziato a metagrave pagina Se si desiderasse lrsquoindicazione del paragrafo che egrave in

196 I PACCHETTI DI PERSONALIZZAZIONE 369

vigore alla fine della pagina non bisognerebbe prenderlo dal firstmark o daltopmark ma dal botmark

Ecco percheacute se si volesse indicare nella testatina di un dizionario il primo elrsquoultimo lemma che compaiono nella pagina bisognerebbe innanzitutto definire ilcomando per inserire il lemma con per esempio

newcommandlemma[1]1markboth11

e poi inserire il lemma con

lemmalemma

Bisogna definire un nuovo stile di pagina in modo che le testatine di sinistrasia quelle di destra non contengano il numero della pagina il quale va quindimesso nel piedino ma contengano i riferimenti al primo lemma in vigore allrsquoiniziodella pagina e lrsquoultimo lemma inserito nella pagina bisognerebbe cioegrave che letestatine e i piedini siano definiti nello stile della pagina pressappoco9 cosigrave

defoddheadnullhfill rightmark -- leftmarkdefevenheadrightmark -- leftmark hfillnulldefoddfootnullhfillthepagehfillnulldefevenfootnullhfillthepagehfillnull

Si noti che null rappresenta una scatola vuota contro cui spinge lo spazioelastico hfill per cui la sequenza costituita dal primo e dallrsquoultimo lemmacompare allineata con il bordo esterno della testatina mentre i numeri di paginasono centrati nel piedino

Se il dizionario egrave composto su due colonne come succede quasi semprebisogna caricare il pacchetto fixltx2e che sistema meglio il comportamento dellaroutine di uscita in merito ai marchi (e sistema anche altre cose che risultano nontroppo ben definite quando si compone a due colonne) senza questo pacchettole informazioni relative al primo e allrsquoultimo lemma si riferirebbero alla solacolonna di destra di ciascuna pagina

Egrave anche vero che la classe book egrave una classe generica non direttamenteutilizzabile per comporre un dizionario sarebbe meglio usare la classe memoirche incorpora giagrave molte delle estensioni e dei comandi necessari per eseguireogni genere di personalizzazione allo stile di composizione di qualunque partedel documento che si intende comporre

Con la classe memoir la personalizzazione per lo stile delle pagine interne diun dizionario si ridurrebbe alle seguenti righe ognuna autoesplicativa

makepagestyledizionariomakeheadruledizionariotextwidthnormalrulethicknessmakeevenheaddizionariobfseriesrightmarkbfseriesleftmarkmakeoddheaddizionariobfseriesrightmarkbfseriesleftmarkmakeevenfootdizionariothepagemakeoddfootdizionariothepage

Si noti il filetto che separa la testatina dal blocco del testo si noti che testatinee piedini sono fatti di tre parti quella di sinistra quella di centro e quella didestra e a queste parti si riferiscono gli ultimi tre argomenti alcuni lasciativuoti di ciascuna testatina e di ciascun piedino Infine in questo stile il primo

9Il ldquopressappocordquo si riferisce al fatto che sono possibili infinite varianti

370 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

lemma della pagina egrave indicato a sinistra e lrsquoultimo lemma egrave indicato a destraentrambi in neretto Ecco quindi un altro modo di personalizzare lo stile dellepagine di un dizionario

197 La pagina del titoloNon egrave un caso che la pagina del frontespizio non sia componibile con nessuno deipacchetti disponibili su ctan Lrsquoambiente titlepage della classe book offre unospazio per inserire il comando maketitle ma per la veritagrave il risultato egrave moltomodesto come si puograve vedere dalla pagina vii di questo documento Nella primapagina senza usare titlepage si egrave cercato di ottenere un frontespizio accattivanteda stampare sulla copertina (in brossura) di un esemplare stampato su cartaAnche questo risultato non egrave esaltante

Il motivo egrave semplice ed egrave chiaramente espresso da Wilson nel manualedella sua classe memoir il titolofrontespizio va disegnato apposta per ciascundocumento tenendo conto del suo contenuto del tipo di titolo delle immaginievocative che possono esservi associate eccetera Ovviamente quanto verragraveeventualmente stampato sulla prima pagina della copertina egrave una cosa mentre egraveuna cosa completamente diversa quello che verragrave stampato nella pagina del titolo(solitamente la terza delle facciate composte e cucite la prima puograve contenerelrsquoocchiello detto half title in inglese10)

Probabilmente secondo Wilson esistono programmi grafici interattivi piugraveadatti per comporre la prima e la quarta di copertina noncheacute per comporre ilfrontespizio (e lrsquoocchiello) non egrave nemmeno da escludere che queste pagine equelle che devono contenere le informazioni di carattere legale debbano o possanoessere prodotte separatamente dalle segnature che compongono il documento

Tuttavia chi scrive ha trovato piuttosto comodo ridefinire un ambiente title-page in modo che dentro ai delimitatori drsquoambiente il compositore possa scriveretutte le informazioni che ritiene necessarie egli le introduce mediante macrocome titolo autore eccetera non dissimili da quelle che si possono usarecon i nomi inglesi nel preambolo title author date sono solo in numeromolto maggiore che non quelle previste di default da LATEX

Il comando di apertura dellrsquoambiente praticamente non fa nulla salvo verifica-re che si stia lavorando in una nuova pagina il comando di chiusura fa tutto nelsenso che prende ogni informazione definita con i comandi dati dal compositoree ogni altra informazione definita di default per collocarle in una griglia difrontespizio abbastanza elastica ma definita una volta per tutte esso metteanche nel verso del frontespizio (talvolta impropriamente chiamato lsquocolophonrsquo)tutte le informazioni di carattere legale necessarie puograve se il compositore haspecificato il numero corrente dellrsquoopera generare e stampare anche il barcodecalcolando persino la cifra di controllo per il barcode a 13 cifre ovviamente questoegrave stato fatto per una collana di volumi di una data casa editrice dove propriopercheacute si ha a che fare con una collana i frontespizi non possono essere moltodiversi lrsquouno dallrsquoaltro anche gli argomenti trattati nei volumi sono sempre di

10Comunque la pagina dellrsquoocchiello non deve essere confusa con il risguardo iniziale che egravegeneralmente una doppia pagina di carta piugrave pesante incollata fra la seconda di copertina e ilblocco delle segnature il risguardo allrsquoinizio del libro e quello alla fine sono sostanzialmentedue elementi strutturali usati per collegare la copertina con il blocco delle segnature questastruttura egrave particolarmente importante ed egrave sempre presente nei libri incassati

198 LE INSERZIONI FLOTTANTI E NON FLOTTANTI 371

carattere tecnico Tuttavia la casa editrice pur mantenendo lo stesso layout delleparti scritte affida ad un grafico il compito di disegnare la prima e la quarta dicopertina sovrapponendo (talvolta ricomponendo) il testo del frontespizio soprauna immagine di fondo in modo che anche lrsquoimmagine sia di aiuto al lettore percapire (o di farsi unrsquoidea) di che cosa venga trattato allrsquointerno del volume

198 Le inserzioni flottanti e non flottanti

1981 Gli oggetti flottantiIl pacchetto float la cui documentazione si trova in doclatexfloatfloatpdf serve per definire nuovi oggetti flottanti oltre alle tabelle e alla figuree serve anche per dare loro uno stile un formato adeguato al loro contenutosecondo il gusto del grafico editoriale Naturalmente serve anche per modificarele definizioni degli oggetti flottanti giagrave definiti

Per esempio puograve servire per specificare la collocazione della didascalia ab-biamo notato piugrave volte che con la classe standard book (ma in effetti con tuttele classi standard) la didascalia egrave sempre collocata sotto allrsquooggetto flottantementre per le tabelle (obbligatoriamente per quelle lunghe che si sviluppano sudiverse pagine) in Europa egrave uso mettere la didascalia prima della tabella Lastessa cosa potrebbe essere necessaria per altri stili di oggetti flottanti

Questi potrebbero essere dei medaglioni degli algoritmi dei programmi delleraccolte di formule composte in modo particolare eccetera Egrave evidente allora cheogni oggetto flottante deve avere una sua numerazione una sua coda di gestioneeventualmente un suo elenco (come lrsquoelenco delle figure o lrsquoelenco delle tabelle)potrebbe essere riquadrato come un medaglione potrebbe essere delimitato dafiletti potrebbe avere lo sfondo colorato

Il pacchetto in questione serve appunto per fare tutte queste cose ed altreancora Va perograve notato che mentre egrave relativamente facile anzi con questopacchetto egrave facilissimo definire nuovi oggetti flottanti la parte difficile consistenella loro gestione

Uno dei problemi apparso nel forum di guIt riguardava un tipo di medaglioneflottante il cui contenuto potesse svolgersi su piugrave pagine in modo da non inter-rompere per tutte le sue pagine la composizione del testo corrente tipicamenteil medaglione avrebbe dovuto avere uno sfondo colorato e ogni suo monconeavrebbe dovuto essere delimitato da filetti e da adeguate intestazioni in testa ein calce ad ogni moncone nello stesso tempo i vari monconi avendo deciso cheognuno non avrebbe superato la metagrave dellrsquoaltezza della pagina ordinaria avreb-bero dovuto uscire in pagine assolutamente consecutive senza essere disturbatidagli oggetti flottanti di altro genere eventualmente ancora in coda

Oggi esiste una soluzione di Agostino De Marco membro di guIt che sperovoglia pubblicare il suo risultato su ArsTEXnica11 La soluzione molto parzialeche lo scrivente ha trovato egrave basata su comandi di bassissimo livello del linguaggioprimitivo dellrsquointerprete pdftex e sulla programmazione avanzata eseguita me-diante il comando whiledo del pacchetto ifthen tuttavia essa egrave evidentementetroppo complicata per essere riportata qui Si egrave voluto perograve esporre questo caso

11A tuttrsquooggi Agostino De Marco e Massimiliano Dominici hanno pubblicato un articolo suArsTEXnica di ottobre 2008 in merito a questo problema ma non hanno ancora pubblicato ilfile di estensione

372 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

per far capire meglio la problematica relativa agli oggetti flottanti alla lorocomposizione ma soprattutto alla loro gestione

1982 Gli oggetti non flottantiSembra strano che qui si aggiunga un paragrafo sugli oggetti non flottanti matalvolta egrave necessario farne uso sia pure con estrema moderazione

Certe figure fotografie riproduzioni di stemmi o altri simboli del genere spes-so vengono trattati come delle piccole figure non flottanti alle quali se si dovesseapporre una didascalia sarebbe preferibile usarne una senza numero in modo dalsquoessere costrettirsquo a riferirsi ad esse in via indiretta come per esempio lsquola fotografiadella pagina 125rsquo oppure la lsquofotografia qui a latorsquo Questo si rende necessario perevitare che questi oggetti possano essere trattati come delle figure e quindi gestitiin automatico dalla stessa coda che LATEX usa per le figure questa gestione infat-ti non mette mai una figura con un numero drsquoordine superiore prima di unrsquoaltrafigura con un numero drsquoordine inferiore non deve succedere che una piccola fotoinserita e contornata dal testo abbia una didascalia con una numerazione piugravealta di unrsquoaltra fotografia di maggiori dimensioni trattenuta in memoria fino aquando LATEX trova la pagina giusta per aggiungerla ad una pagina in uscitaContemporaneamente la piccola figura non puograve essere trattenuta in memoriada una grande figura che ne ritarda la collocazione rendendone vano lrsquouso

Ecco percheacute sarebbe opportuno evitare gli oggetti non flottanti ma se proprioquesti oggetti devono venire usati allora egrave bene che non siano trattati alla stessastregua degli oggetti flottanti della stessa natura Si veda anche piugrave avanti ladescrizione delle funzionalitagrave di un altro pacchetto wrapfig che consente direndere flottanti gli inserti contornati dal testo

Esiste un piccolo pacchetto picinpar purtroppo privo di una decente docu-mentazione ma fornito di un file di esempi drsquouso con il testo in tedesco doclatexpicinparpincinpardvi nessun problema per chi conosce il tedescoma il suo uso potrebbe essere proibitivo per la maggioranza degli utenti italianiche di fatto non conosce il tedesco Il pacchetto ha qualche annetto e il filesorgente della lsquodocumentazionersquo egrave scritto con il vecchio linguaggio di LATEX209LATEX2ε conserva perograve una forma di compatibilitagrave con il vecchio LATEX cosiccheacutenon egrave particolarmente faticoso leggere il codice sorgente del file di esempi

In sostanza il pacchetto mette a disposizione un ambiente window con lasintassi seguente

beginwindow[〈lista di opzioni〉]〈testo che contorna lrsquoimmagine〉endwindow

Il testo deve essere un capoverso abbastanza lungo da poter contornare lrsquoimmaginee dal quale lrsquoambiente ritaglia via lo spazio rettangolare per inserire lrsquooggettonon flottante Questo puograve essere anche un capolettera oltre che una immaginenel vero senso della parola infatti anche un capolettera egrave un lsquodisegnorsquo attorno alquale gira il testo

Con la stessa sintassi opera lrsquoambiente figwindow solo che una delle opzio-ni della 〈lista di opzioni〉 puograve essere costituito da una figura vera e propriaeventualmente disegnata con lrsquoambiente picture Questo ambiente perograve accettaanche una ultima opzione che contiene (fra parentesi graffe) la didascalia

198 LE INSERZIONI FLOTTANTI E NON FLOTTANTI 373

Anche piccole tabelle possono venire collocate con gli ambienti prodotti daquesto pacchetto in particolare con lrsquoambiente tabwindow sempre con la stessasintassi

La 〈lista di opzioni〉 egrave una lista di qualificatori o di oggetti separati da virgoleesse sono quattro La prima opzione dice dopo quante righe dallrsquoinizio del 〈testoche contorna lrsquoimmagine〉 bisogna cominciare a ritagliare il rettangolo nel qualecollocare lrsquoimmagine o la tabella con la sua eventuale didascalia

La seconda opzione specifica con le solite lettere l (left) r (right) e c (center)se il rettangolo debba essere ritagliato a sinistra a destra oppure nel centroquestrsquoultima egrave una specificazione da non usare percheacute lrsquoeffetto visivo non hanulla a che vedere con lrsquoarte tipografica tuttavia puograve servire per indicare checosa non imitare negli esempi di composizione ottenuti con altri software Peraltro componendo a due colonne non sarebbe troppo strano inserire una piccolafigura al centro ritagliando parte dello spazio per la figura dal margine destrodella colonna di sinistra e mutatis mutandis il resto dello spazio dalla colonnadi destra Non esiste a tuttrsquooggi una estensione simile a picinpar che sia in gradodi realizzare questo artificio LATEX produce una composizione tipografica sobriaquesto genere di artifici non lo egrave Tuttavia se il compositore ha molta pazienzapuograve sfruttare intelligentemente picinpar cominciando a mettere lrsquoinserto a destradella prima colonna facendo credere al pacchetto che lrsquoinserto sia largo la metagrave diquanto non lo sia in realtagrave compone la pagina a due colonne e prende nota conquali righe della colonna di destra lrsquoinserto interferisce infine inserisce un altroinserto a sinistra della colonna di destra in modo che cada in quelle righe malrsquoinserto egrave composto da una scatola vuota alta come linserto vero e larga la metagrave

La terza opzione fra parentesi graffe egrave lrsquooggetto vero e proprio nel caso di uncapolettera potrebbe essere semplicemente lrsquoindicazione del corpo e il segno dellalettera da usare come capolettera nel caso di una immagine o di una tabellasempre fra parentesi graffe vanno messi i comandi per includere o per generarelrsquooggetto Lrsquooggetto potrebbe essere anche una formula matematica come peresempio una matrice relativamente grande

Lrsquoultima opzione sempre fra parentesi graffe egrave la didascalia usando gliambienti figwindow o tabwindow il testo della didascalia egrave preceduto dal suonome e dal suo numero per esempio Figura 1 oppureTabella 2 Con lrsquoambientewindow invece il testo della didascalia non viene preceduto da nessuna etichettaquesto egrave lrsquoambiente preferibile per gli oggetti non flottanti si puograve evitare deltutto la didascalia percheacute basta lasciare vuoto il contenuto di queste ultimeparentesi graffe

Il 〈testo che contorna lrsquoimmagine〉 puograve essere composto con diversi capoversiindicando la fine di ciascuno con la solita riga bianca gli ambienti di questopacchetto trattano i capoversi come se fossero veri e propri capoversi e quindicon le normali caratteristiche stilistiche che i capoversi hanno nel resto del testorientranza spaziatura eccetera Tuttavia questi capoversi sono delle lsquosimulazionirsquopercheacute il linguaggio primitivo dellrsquointerprete contiene speciali comandi comehangindent hangafter parshape per creare le rientranze sagomate perlrsquoinserimento di questi oggetti ma la cui efficacia si svolge nellrsquoarco di un solocapoverso per poter sagomare piugrave di un capoverso bisogna ricorrere a varitrucchi uno dei quali egrave quello di lsquoimbrogliarersquo lrsquointerprete facendogli credere chepiugrave capoversi ne costituiscano uno solo

Ecco in questo paragrafo egrave stato necessario addentrarci un poco nella pro-grammazione anche per dare qualche indicazione ai lettori che non conoscono

374 CAPITOLO 19 LATEX LA GEOMETRIA DELLE PAGINE

il tedesco Ma al di lagrave dellrsquoaspetto tecnico ci si ricordi sempre di evitare glioggetti non flottanti se proprio si devono usare li si usi con una didascalia nonnumerata In ogni caso non li si usi mai al centro della giustezza Chi scriveha usato degli oggetti non flottanti ritagliati nel margine esterno in un librocommemorativo dove allrsquoinizio di ogni capitolo veniva inserita non flottante inun riquadro ritagliato dal lato destro del testo la fotografia del personaggiocommemorato Il risultato era accettabile per lo scopo di quel volume ma ingenerale si tratta di artifici da evitare

A questo proposito anche se lrsquoambiente window rende lrsquoaspetto tecnico piugravesemplice dopo aver gestito a mano lrsquoinserimento di una figura non flottantese per qualche motivo egrave necessario allungare o accorciare il testo che precedelrsquoinserimento dellrsquooggetto non flottante potrebbe essere necessario rivederea mano la nuova collocazione rinunciando alla comoditagrave dellrsquoottimizzazioneeseguita da LATEX per inserire gli oggetti flottanti Ecco percheacute la foto delpersonaggio commemorato andava bene allrsquoinizio di un capitolo non crsquoera testoprecedente da accorciare o da allungare e lo stile della pagina iniziale del capitoloassicurava almeno una ventina di righe dalle quali ritagliare il riquadro doveinserire la fotografia

Il lettore attento puograve vedere se riesce a usare questo pacchettoe i suoi ambienti per inserire oggetti non flottanti che non sianocompletamente inseriti in un ritaglio del testo ma sporgano nelmargine adiacente un inserimento di questo genere senza didascaliapotrebbe essere piugrave elegante di un analogo inserimento completa-mente collocato nel ritaglio del testo La particolare soluzione usataqui12 prescinde dal pacchetto picinpar e si affida a una macro chericorre ai comandi primitivi dellrsquointerprete

La soluzione adottata attraverso un nuovo ambiente inserto13 quiimpegna due capoversi logici ma imbroglia lrsquointerprete facendoglicredere che si tratti di un unico capoverso questo si ottiene forzan-do lrsquoa capo con il nuovo comando npar che ordina di cominciare

una nuova riga indentandola esattamente della rientranza specificata mediantehspaceparindent ma senza assolutamente lasciare righe bianche

La rientranza per il numero corretto di righe si ottiene mediante le specifichehangindent e hangafter calcolandone i parametri in base alle dimensionidellrsquoinserto il codice usato per inserire lrsquoinserto egrave il seguente

begininsertoincludegraphicsasterix-romancioIl lettore attento puograve vedere se riesce a usare questo pacchettomacro che ricorre ai comandi primitivi dellrsquointerpretenparLa soluzione adottata attraverso un nuovo ambiente ambinsertoil codice usato per inserire lrsquoinserto egrave il seguente

12Lrsquoimmagine contiene il frontespizio di un album di Asterix pubblicato dallrsquoeditore Dar-gaud come tutti gli altri album della collana tradotto in reto-romancio e pubblicato perinteressamento della comunitagrave romancia del Canton Grigioni in Svizzera

13La definizione i questo ambiente compare nel file MacroGuidasty con lrsquoausilio del quale egravestata composto questo testo si tratta di una definizione un porsquo elaborata percheacute ricorre aduna soluzione asincrona per essere sicuri di collocare lrsquoinserto nel margine esterno tramite unanota marginale usata in modo insolito Richiede di comporre il testo due volte

199 CONCLUSIONI 375

endinserto

Come si vede la cosa non egrave particolarmente difficile da realizzare anche consemplici comandi di base ma egrave comunque consigliabile usare gli ambienti delpacchetto picinpar che sono piugrave versatili anche se direttamente non riescono arealizzare quanto fatto in questo esempio

Un altro pacchetto interessante per inserire oggetti non flottanti attorno aiquali fluisca il testo egrave wrapfig questo pacchetto definisce due ambienti wrapfiguree wraptable simili nelle prestazioni ai normali ambienti flottanti figure e tablema che richiedono due argomenti facoltativi e due obbligatori il primo dei qualidice con una opportuna lettera di posizionamento se lrsquooggetto deve flottare orestare fisso in entrambi i casi lrsquooggetto puograve essere collocato nel lato destroo sinistro del testo oppure componendo in bianca e volta dal lato esterno odal lato interno del testo La documentazione egrave un poco nascosta si trova nellostesso file wrapfigsty dopo la riga che contiene endinput il file in questionesi trova in texlatexwrapfig Invece nel ramo della documentazionedoclatexwrapfig si trova un piccolo file testuale che spiega a qualiartifici bisogna ricorrere quando si compone a due colonne

Il vantaggio di wrapfig rispetto a picinpar egrave che riesce a far flottare anche gliinserti contornati dal testo e riesce anche a farli sporgere nello spazio fuori dellospecchio di stampa destinato alle note marginali o a farli sporgere di quanto ilcompositore desideri Lo svantaggio egrave che non si possono inserire didascalie senzaetichetta per cui la numerazione della didascalia potrebbe in certi casi esseresuperiore a quella di un corrispondente oggetto flottante che egrave rimasto nella codadelle figure o delle tabelle flottanti lsquonormalirsquo La documentazione bencheacute un porsquonascosta egrave chiara e scritta in inglese probabilmente piugrave conosciuto del tedesco

199 ConclusioniIn questo capitolo sono stati illustrati diversi pacchetti per ottenere lsquoeffettispecialirsquo nella composizione tipografica con LATEX Sta al compositore deciderese e come usare questi strumenti percheacute come egrave stato detto allrsquoinizio lrsquoartetipografica si basa su sottigliezze non su vistosi effetti speciali

Si egrave raccontato in breve come si produce un libro e come lo si disegnaovviamente queste poche pagine non possono essere considerate nemmeno unabreve introduzione alla tipografia quindi non si raccomanderagrave mai abbastanza didocumentarsi non solo negli aspetti programmatori di LATEX ma specialmentesulla tipografia stessa senza lasciarsi catturare dalle mode del momento maesercitando il proprio giudizio estetico adeguatamente educato

Lo scopo egrave quello di sviluppare una propria competenza nello scegliere lesoluzioni compositive lsquonon acrobatichersquo ma che siano effettivamente capaci ditrasmettere il messaggio al lettore nel modo piugrave chiaro possibile e senza sottoporloa stress inutili causati da errori stilistici nella composizione

Capitolo 20

Ortografia tipografica

Che cosa si intende per ortografia tipografica Tutti conoscono il significato dellaparola ortografia la scrittura corretta Ma questo significato di solito viene intesoin senso limitativo come la scrittura corretta delle singole parole

Quando si scrive con un potente word processor o con un programma dicomposizione come LATEX le regole da osservare sono molto piugrave numerose percheacutemolto piugrave numerosi sono i modi di scrivere sia per lrsquoabbondanza dei segnia disposizione sia per le famiglie serie forme corpi dei caratteri sia perla posizione dei segni sia per la disposizione del testo sulle pagine sia perlrsquointerpunzione insomma la tipografia egrave unrsquoaltra cosa

Egrave ovvio che lrsquoortografia tipografica quindi comprende anche lrsquoortografiatestuale ma la scrittura tipografica corretta richiede di rispettare anche altreregole

Se ne egrave accennato anche in altri capitoli alcuni degli argomenti verrannoquindi ripresi e sviluppati con maggiore respiro cercando di spiegare il percheacutedi certe regole anche per imparare a deviare coscientemente da quelle esposte oper dirimere la questione delle ambiguitagrave ldquoin questo caso si puograve fare cosigrave oppurecosigraverdquo va bene ma allora che cosa egrave meglio fare Conoscendo i percheacute si puogravetrovare la risposta a ragion veduta

201 Ortografia testualeNon crsquoegrave bisogno di raccomandare la scrittura corretta di ogni parola del testoegrave del tutto ovvio Ma la pratica insegna che durante lrsquointroduzione del testo sicompiono numerosi errori di battitura anche se il ldquotastieristardquo conosce benissimolrsquoortografia Si suole dare il nome di refusi a questo tipo di errori percheacute aitempi della composizione con i caratteri metallici spesso era necessario fonderedi nuovo i caratteri di una o piugrave righe al fine di eseguire la correzione

Oggi ogni programma di elaborazione di testo permette di fare la verificaortografica spesso la verifica puograve essere fatta solo su testo evidenziato in mododa poter usare regole ortografiche diverse per lingue diverse Tuttavia egrave ben notoche questi correttori ortografici permettono di eliminare un gran numero di refusima non permettono di eliminare quei refusi che generano altre parole validei famosi fischi e fiaschi corpo e copro viene e vine anche insolite1 lrsquoelenco

1La parola vine egrave il plurale di vina nome di uno strumento musicale indiano

377

378 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

potrebbe andare avanti a piacere Ne consegue che la rilettura del testo va fattada una persona possibilmente diversa dal ldquotastieristardquo magari un correttore dibozze professionista in ogni caso la rilettura non va fatta subito ma bisognalasciar trascorrere alcuni giorni e anche il ldquotastieristardquo puograve rendersi conto di altrirefusi sfuggiti ai precedenti controlli

2011 Ortografie alternativePer altro crsquoegrave un numero di parole che ammettono diverse ortografie per esempioobbiettivo e obiettivo uguale e eguale in questi casi egrave necessario verificare su unbuon dizionario della lingua italiana se per caso non esistano delle preferenzeper lrsquouna o lrsquoaltra scrittura se non esistano degli ambiti testuali nei quali siapreferita una scrittura e altri ambiti nei quali sia preferita lrsquoaltra

Ortograficamente in italiano sono soggetti ad oscillazioni i plurali maschilidelle parole che terminano in -co in -go e in -io e delle parole femminili cheterminano in -cia e -gia Esistono delle regole sia per i nomi maschili sia perquelli femminili ma queste regole presentano numerose eccezioni quindi in casodi dubbio egrave meglio riferirsi a un buon dizionario

Per i maschili in -co e -go vale la regola di default che le parole pianemantengono il suono gutturale (e quindi viene inserita una lsquohrsquo) mentre le parolesdrucciole perdono la pronuncia gutturale e quindi non prendono nessuna lsquohlsquochirurgo produce chirurghi fico produce fichi ma amico produce amici Invecepsicologo produce psicologi elettrico produce elettrici eccetera

Per i maschili terminanti in -io con la lsquoirsquo tonica (quindi io non forma undittongo) non ci sono problemi e la lsquoorsquo muta in lsquoirsquo e si hanno quindi due lsquoirsquoconsecutive come terminazione zio produce zii formicolio produce formicolii

Ma per i maschili terminanti con il dittongo ascendente -io una volta iplurali venivano eseguiti con due lsquoirsquo (studii) oppure con una lsquoirsquo segnata daun circonflesso (studicirc ) oppure con la desinenza j (studj) e persino -ij (studij)oggi si preferisce generalmente scrivere il plurale con una sola lsquoirsquo assumendoche la lsquovocalersquo terminale lsquoirsquo assorba la lsquosemivocalersquo precedente lsquoirsquo Tuttavia simantengono le due lsquoirsquo anche modernamente quando certi plurali si potrebberoconfondere assassinio produce assassinii percheacute questa parola non sia confusacon il plurale di assassino nonostante lo spostamento dellrsquoaccento anche desiderioproduce desiderii per non confondere con la seconda persona del presente delverbo lsquodesiderarersquo desideri se si usasse sistematicamente lrsquoaccento sulle parolesdrucciole non ci sarebbe nessun motivo per derogare dalla regola lsquonormalersquo Dinuovo nel dubbio egrave meglio consultare un buon dizionario

Per i femminili in -cia e -gia purcheacute la lsquoirsquo non sia tonica i plurali oggi sicompongono quasi senza eccezioni conservando la lsquoirsquo semiconsonantica se lasillaba finale egrave preceduta da una sillaba aperta mentre al contrario la perdonose essa egrave preceduta da una sillaba chiusa2 camicia produce camicie ma bilanciaproduce bilance valigia produce valigie ma cengia produce cenge A questa regoladella sillaba precedente aperta o chiusa sembrano3 sfuggire le parole terminanti

2Una sillaba egrave aperta se termina con una vocale mentre egrave chiusa se termina con unaconsonante

3Sembrano soltanto se si prende la definizione in senso troppo letterale egrave vero che cia egravepreceduto da s ma il nesso sci si riferisce ad una pronuncia particolare diversa dalla pronunciadi s seguito dalla pronuncia di cia in alcuni dialetti italiani o pronunce dialettali non egraveinfrequente questa pronuncia separata e lrsquoortografia italiana non egrave predisposta per renderla in

201 ORTOGRAFIA TESTUALE 379

in -scia che hanno costantemente il plurale in -sce ascia e asce biscia e biscestriscia e strisce Come sempre la consultazione di un buon dizionario permettedi risolvere eventuali eccezioni a questa regola infatti ciliegia ammette entrambii plurali ciliegie e ciliege Il dizionario della lingua italiana di Aldo Gabrielli(Hoepli) indica entrambi i plurali ma negli esempi usa solo la desinenza -gie

Anche scrivendo in lingue straniere avvengono gli stessi fenomeni con lrsquoag-gravante che esistono circostanze nelle quali in una nazione si usa una certaortografia diversa da quella di unrsquoaltra nazione Tipica egrave la differenza fra lrsquoingleseamericano e lrsquoinglese britannico dove non solo alcune parole omografe hannosignificati completamente diversi ma parole molto comuni hanno ortografiediverse per esempio colour e color behaviour e behavior to analize e to analise

In queste circostanze il compositore deve scegliere una delle grafie alternativee usare sempre quella per il lettore non crsquoegrave nulla di piugrave fastidioso del trovarela stessa parola scritta in modi diversi Ovviamente se si cita un brano altruideve essere rispettata anche la sua ortografia ma il fatto di avere evidenziato lacitazione fa capire al lettore che quelle parole sono scritte da unrsquoaltra persona

2012 lsquodrsquo eufonica e lsquoirsquo prostetica apostrofiNel parlare si usano spesso le lsquodrsquo eufoniche e le lsquoirsquo prostetiche Nel parlare sipronuncia spesso una lsquodrsquo fra una congiunzione o una preposizione terminantein vocale e la parola seguente specialmente quando inizia con la stessa vocaleTipiche le pronunce di ad ed e od Nello scrivere egrave generalmente accettata lalsquodrsquo eufonica per evitare lo lsquoscontrorsquo di due lsquoarsquo o di due lsquoersquo ad altro scopo adavere ed essere Egrave anche accettata la scrittura di ad esempio negli altri casi lalsquodrsquo eufonica dovrebbe essere evitata

Questa norma vale a maggior ragione per la lsquoirsquo prostetica quella lsquoirsquo cheviene spesso pronunciata dopo preposizioni che finiscono con una consonante seprecedono parole che cominciano con la lsquos impurarsquo in iscuola in istrada Anchese questa lsquoirsquo viene pronunciata non dovrebbe venire mai scritta si tollera lalocuzione per iscritto

Probabilmente esistono simili variazioni di grafia anche in altre lingue egravequindi molto opportuno conoscere a fondo la lingua in cui si scrive oppurecitando brani altrui bisogna essere certi di riprodurli integralmente nella linguain cui sono scritti (eventualmente una traduzione in nota potrebbe essere moltogradita al lettore)

Lrsquoapostrofo viene impiegato abbondantemente in italiano in francese incatalano anche nella variante valenciana e in retoromanzo per indicare lrsquoelisionedi una vocale in italiano bisogna stare attenti a non confondere lrsquoelisione conil troncamento sarebbe sbagliatissimo scrivere unrsquouomo dove invece lrsquoarticoloindeterminativo maschile subisce solo il troncamento (la semplice caduta dellalsquoorsquo) e di fatto egrave un errore rarissimo negli scritti a stampa Invece egrave piuttostofrequente incontrare espressioni errate come qualrsquoegrave

Salvo poche locuzioni ormai cristallizzate lrsquoelisione si manifesta in italiano solocon gli articoli determinativi maschili e femminili e con gli articoli indeterminativifemminili Ma oggigiorno lrsquoelisione viene eseguita raramente limitandola agliarticoli singolari e anche in questi casi spesso non viene eseguita si trova quasi

modo semplice in piemontese si trova per esempio s-centragrave ma in molte parti di Italia sisente pronunciare in lsquoitalianorsquo s-centrato

380 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

sempre lrsquoequazione o talvolta nei testi tecnici la equazione ma non si incontramai lrsquoequazioni Sessanta anni fa era comune vedere scritto glrsquoitaliani oggi nonsi incontra piugrave questa scrittura Vista la possibilitagrave di eseguire o di non eseguirelrsquoelisione il compositore deve decidere come comportarsi e poi deve coerentementeseguire la sua decisione come al solito il lettore apprezza la coerenza

Lrsquoapostrofo viene anche usato per marcare apocopi e aferesi che oggi initaliano si incontrano poco un porsquo scuro rsquosta volta In espressioni da recitare siusa lrsquoapostrofo per indicare gli imperativi di alcuni verbi darsquo qui farsquo attenzione4In passato era molto comune scrivere ersquo per indicare il pronome maschile diterza persona ei ma questrsquouso egrave durato solo nei primi secoli di vita dellrsquoitalianoOggi egrave corretto scriverlo solo nelle citazioni di brani tratti da testi antichi

In tipografia non bisogna confondere lrsquoapostrofo con lrsquoapice molti font di-spongono di due segni distinti con i font normalmente usati con LATEX si usa unsolo segno nel testo (rsquo) mentre in matematica il segno (prime) egrave diverso ma ci pensasempre LATEX ad usare i segno giusto se nel file sorgente si usa sempre il segnodellrsquoapostrofo

202 AccentiIn italiano gli accenti obbligatori sono da porre solo sullrsquoultima vocale delle paroletronche una apposita norma UNI regola la questione ma in buona sostanzatutte le vocali terminali delle parole tronche ricevono lrsquoaccento grave tranne lalsquoersquo che puograve riceverlo o grave o acuto secondo precise regole ortografiche

Lrsquoaccento acuto (acute) si pone su cheacute e sui suoi derivati percheacute affincheacute ecceterasui derivati di tre re e fersquo (fede) ventitreacute vicereacute autodafeacute eccetera su alcuneparole come scimpanzeacute seacute

Lrsquoaccento grave (`) si pone sulla terza persona singolare del verbo essereegrave e sui suoi derivati come cioegrave sulle parole acquisite in italiano e derivateprevalentemente dal francese come bidegrave relegrave su nomi di bevande come caffegravetegrave (la scrittura the egrave errata) sui derivati di me come ahimegrave sui nomi propricome Noegrave Mosegrave Giosuegrave Josegrave (anche se in spagnolo si scrive Joseacute che per altroegrave ugualmente corretto) eccetera

Si fa osservare che gli italiani sono piuttosto sciatti nel distinguere gli apostrofigrave e acuto non egrave raro trovare scritto perchegrave comprensibile per il fattoche con la tastiera italiana la lsquoegraversquo si ottiene premendo un solo tasto ma sitrova scritto anche eacute che non egrave nemmeno comprensibile percheacute con la tastieraitaliana bisogna premere due tasti Il compositore e il ldquotastieristardquo che vuolrispettare lrsquoortografia tipografica oltre che quella grammaticale deve quindiporre particolare attenzione alla distinzione di questi due accenti

La norma UNI per altro egrave piuttosto poco impegnativa nel senso che dagraveindicazioni poco restrittive essa consente per esempio di usare lrsquoaccento acutosulle vocali lsquoirsquo e lsquoursquo vocali naturalmente chiuse per le quali sembrerebbe piugraveadeguato lrsquouso dellrsquoaccento acuto che specifica il suono chiuso delle vocali lsquoersquoe lsquoorsquo Mentre sulla lsquoersquo la norma egrave chiara (e nel caso di dubbio egrave consigliabilerivolgersi ad un buon dizionario) sulla lsquoorsquo delle parole tronche il suono egrave sempreaperto quindi lrsquoaccento obbligatorio sulla lsquoorsquo egrave sempre grave

4Si noti la differenza dagrave terza persona singolare dellrsquoindicativo di dare darsquo seconda personasingolare dellrsquoimperativo di dare

203 SILLABAZIONE 381

Il filologo italiano Gian Luigi Beccaria usa regolarmente gli accenti acutisulla lsquoirsquo e sulla lsquoursquo (cosiacute piuacute) cosa che egrave permessa anche dalla norma UNI macon la tastiera italiana egrave difficile da realizzare egli usa anche il circonflesso suiplurali dei maschili terminati in -io (principicirc )

Ma la norma UNI consente anche gli accenti facoltativi cioegrave sulle sillabeinterne In questo caso se si vuole distinguere coacutelto (istruito) da cogravelto (raccolto)bisogna scegliere lrsquoaccento secondo lrsquoapertura della vocale lsquoorsquo egrave quanto maiopportuno verificare la pronuncia corretta su un buon dizionario moderno dovespesso la pronuncia egrave descritta mediante i segni dellrsquoalfabeto ipa (InternationalPhonetic Association)

Il filogravelogo Migliorini membro della commissione che curograve la redazione dellanorma UNI in questione vi fece introdurre la specificazione che non si acceacutentanomai le parole piane se non per indicare il suono aperto o chiuso della vocaletogravenica lsquoersquo oppure lsquoorsquo si pogravessono accentare e si consiglia di farlo le parolesdrugravecciole e bisdrugravecciole5 il consiglio diventa quasi un imperativo quando vipossa essere confusione con parole omogravegrafe con pronuncia piana Seguendoquesta indicazione si distingueragrave prigravencipi da principi ma non si scriveragrave maiprincigravepi si distingueragrave seacuteguito da seguito ma non si scriveragrave mai seguigraveto amaggior ragione si distingueragrave lagravevati (imperativo) da lavati (participio) e anessuno verrebbe in mente di scrigravevere lavagraveti Tuttavia si incoacutentrano spesso parolepiane accentate in violazione dellrsquoindicazione espressa nella norma UNI Anche ilrispetto di questa norma costituisce un aspetto dellrsquoortografia tipogragravefica

Non era cosigrave un tempo Su un libro stampato da Bodoni nel 1803 ho trovatoche lrsquoaccentazione dellrsquoitaliano era eseguita con le regole del greco accentograve sulle parole tronche e accento acuto sulle parole sdrucciole o bisdruccioleindipendentemente dallrsquoapertura della vocale Ovviamente una citazione di queltesto richiede il rispetto di quel tipo di accentazione ma il fatto che il testo siamesso in evidenza come citazione giustifica il fatto di non essere conforme allanorma UNI (che non esisteva nel 1803)

203 SillabazioneSecondo alcuni sarebbe meglio comporre in modo che nessuna parola sia divisain sillabe in fin di riga Probabilmente egrave vero ma la necessitagrave di eseguirela cesura dipende dalla lunghezza della riga di testo e dalla lunghezza dellaparola sicuramente non fa parte della lsquoortografiarsquo tipografica avere diverse righeconsecutive che terminano con la lineetta di lsquoa caporsquo Se la giustezza egrave decisamentepiccola egrave meglio comporre in bandiera allineata a sinistra piuttosto che con lagiustificazione da entrambi i lati Egrave qui che il compositore deve esercitare il suogiudizio per comporre lsquogiustorsquo

Tuttavia una delle cose che salta allrsquoocchio quando si legge un testo con moltecesure egrave non solo se queste cesure siano corrette (ci mancherebbe altro) mase sono eseguite in modo da rendere confortevole la lettura Egrave per questo peresempio che le regole di sillabazione realizzate da LATEX per la lingua italianaevitano di dividere i possibili dittonghi i gruppi di vocali che potrebbero esseretali ma che non sapendo leggere e non sapendo dove cade lrsquoaccento LATEXnon puograve trattare con certezza In questo modo si perdono possibili punti di

5Egrave quello che si egrave fatto in questo capoverso

382 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

cesura ma la lettura resta molto piugrave confortevole Si pensi ad una parola comepaura le lettere au in altre parole formano un dittongo discendente ma quiformano uno iato e la parola grammaticalmente si potrebbe dividere in pa-u-raLATEX divide invece solamente in pau-ra In effetti non sarebbe sbagliato se LATEXdividesse come dice la grammatica ma il lettore si troverebbe a disagio se la rigafinisse con lsquopa-rsquo e la riga successiva iniziasse con lsquourarsquo Questo genere di problemiavviene piugrave spesso di quanto non si immagini ma la sillabazione tipografica (equindi lrsquoortografia tipografica) differisce dalla sillabazione ordinaria (e quindidallrsquoortografia ordinaria) proprio percheacute tende ad avere anche il lettore non solola grammatica come metro di misura della lsquocorrettezzarsquo

Bisogna ricordarsi di selezionare la lingua giusta con babel in modo che LATEXpossa usare le regole di sillabazione adatte alla lingua in uso bisogna ricordarsidi specificare la lingua ogni volta che si compone in una lingua diversa da quellaprincipale forse il testo in lingua non subiragrave nessuna cesura in fin di riga manon lo si puograve sapere in anticipo quindi egrave meglio provvedere per tempo

Per altro se componendo in colonne strette si vuole aggiungere qualche puntodi divisione in fase di correzione delle bozze si puograve sempre inserire nellrsquoargomentodel comando hyphenation una lista di parole con iati divise tenendone contoper esempio si potrebbero inserire (con tutte le varianti e sempre che le parolesiano effettivamente usate nel testo)

hyphenationpa-u-ra pa-u-re i-de-a-le i-de-a-li ba-u-le ba-u-licro-a-to cro-a-ti cro-a-ta cro-a-te

Anche le parole scientifiche ottenute dallrsquoagglutinazione di varie radici egrave beneche siano divise etimologicamente per facilitarne la comprensione da parte dellettore le norme UNI che regolano la questione sono piuttosto flessibili in questosenso esse danno le regole generali per la divisione fonetica ma non proibisconoal compositore di eseguire la divisione etimologica Se una parola scientifica diquesto genere capita sovente nel testo egrave meglio inserirla con le sue variazioninella lista di hyphenation se la si incontra sporadicamente puograve essere piugravesemplice introdurre una divisione opzionale mediante lrsquouso del carattere attivo che consente la divisione anche negli altri lsquomonconirsquo della parola piuttosto cheil comando LATEX - che invece consente la divisione solo nel punto dove egraveindicato Il carattere attivo produce questo effetto solo mentre si compone initaliano6 non egrave possibile usarlo componendo in altre lingue per le quali esistonocomandi analoghi formati da due segni

204 PunteggiaturaIl problema della punteggiatura si presenta sia nella composizione del testo siaquando si inseriscono parti matematiche se ne egrave giagrave parlato diffusamente in altricapitoli Si tenga presente che i segni di punteggiatura non sono solo i quattro osei segni ai quali siamo soliti dare questi nomi In tipografia ci sono

1 i segni di marcatura logica la virgola il punto e virgola i due punti e ilpunto

6Quando si usa xelatex e si specifica babel come pacchetto da usare per la gestione dellelingue il doppio apice dovrebbe poter essere usato come descritto qui se invece si gestiscono lelingue con polyglossia il doppio apice non egrave piugrave attivo e non puograve venire usato per la divisionein sillabe su base etimologica

204 PUNTEGGIATURA 383

2 I segni di espressione il punto interrogativo il punto esclamativo e i puntinidi sospensione (usati anche per le omissioni)

3 I segni di enfasi le virgolette alte le virgolette basse (in entrambi i casisemplici o doppie)

4 I delimitatori principalmente le parentesi tonde e quadre ma anche lecoppie di virgole

5 I segni di sezionamento o di opposizione la barra obliqua il trattino olineetta il trattino medio e il trattino o lineato lungo

6 I segni di sezionamento usati anche come simboli a seacute stanti il segno diparagrafo sect e il segno di capoverso para

Direi che quelli piugrave difficili da usare correttamente sono i semplici segni dimarcatura logica Infatti fin dalle scuole elementari siamo stati tutti esposti alladefinizione di tali segni come dei segni che marcano le pause Non egrave vero lavirgola il punto i due punti e il punto e virgola servono per marcare le divisionisintattico-grammaticali del testo secondo regole che nulla hanno a che vedere conla marcatura prosodica Questa infatti non puograve essere marcata adeguatamentecon i soli quattro segni indicati e ogni oratore che debba leggere un discorso hala sua personale maniera di indicare i segni prosodici per modulare le inflessionidella voce per marcare le pause drsquoeffetto eccetera Questo naturalmente nonvuol dire che i segni di interpunzione non contribuiscano alle pause se unodovesse leggere ad alta voce ma non generano necessariamente pause brevimedie o lunghe in corrispondenza alla virgola al punto e virgola e al puntopossono invece aiutare a mutare il tono della voce Tuttavia queste pause e questimutamenti non sono la funzione principale della punteggiatura sono solo lrsquoaiutoalla comprensione per il lettore che esegue le pause e i mutamenti in base a quelloche egli ha compreso Dare la definizione dei segni di punteggiatura mediante ladurata delle pause significa scambiare la causa con lrsquoeffetto

I segni prosodici servono per leggere ad alta voce un testo I segni di punteg-giatura servono per dare risalto alle sezioni sintattico-grammaticali del testo eservono in sostanza ad aiutare il lettore a comprendere lo scritto leggendo congli occhi non con la bocca gli occhi non hanno bisogno di respirare

La virgola serve in generale some separatore seriale nelle enumerazioni serveper separare certe frasi subordinate dalla frase principale usata a coppie serveper marcare gli incisi puograve essere usata per spostare lrsquoattenzione del lettore dauna parola ad un altra anche a poca distanza Le coppie di virgole delimitatricidi un inciso possono non essere apparenti percheacute se risultano adiacenti ad unsegno di interpunzione di maggiore importanza ne vengono assorbite

La funzione seriale egrave evidente ldquoChiare dolci fresche acque La funzione di separazione di frasi non egrave altrettanto semplice da illustrare ci

sono frasi subordinate che si pensano sempre come subordinate e quindi separateda una virgola ed altre che non svolgono sempre lo stesso ruolo anche se lagrammatica le classifica nello stesso modo

Per esempio lrsquoipotesi di una costruzione ipotetica egrave quasi sempre separatacon una virgola dalla tesi ldquoSe arrivo in tempo posso cenare con voirdquo Invece unafrase relativa viene separata con una virgola dalla principale solo se ha carattereesplicativo o appositivo mentre non egrave separata dalla virgola se ha significatospecificativo o restrittivo ldquoIl paziente che ha manifestato una forte poliuria va

384 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

trattato con rdquo la frase relativa egrave specificativa nel senso che la sua eliminazionetoglierebbe significato a quello che resta Viceversa una relativa egrave esplicativaquando la sua eliminazione toglie qualcosa dal discorso ma la sua assenza nonpreclude la comprensione del testo restante La professoressa Mortara Garavelliin [34] mostra un bellrsquoesempio di relative che svolgono ruoli diversi le parolesono le stesse mentre i periodi differiscono solo per una virgola

bull Non seguo i programmi televisivi che mi sembrano scadenti

bull Non seguo i programmi televisivi che mi sembrano scadentiI due ruoli della frase relativa sono assolutamente evidenti nel primo caso ilsoggetto non segue alcuni programmi televisivi quelli che gli sembrano scadentinel secondo caso il soggetto non segue nessun programma televisivo e spiega chenon li segue percheacute tutti i programmi gli sembrano scadenti

La virgola serve anche per spostare lrsquoattenzione Poicheacute nella frase ordinariaitaliana i concetti piugrave ldquopesantirdquo vengono collocati alla fine introducendo unainterruzione con una virgola egrave possibile spostare lrsquoattenzione su un concettoprecedente si osservi ancora la coppia di frasi proposte dalla professoressaMortara Garavelli

bull poveri ma belli

bull poveri ma belliNel primo caso lrsquoattenzione cade su ldquobellirdquo mentre nel secondo caso cade suldquopoverirdquo

Ecco quindi che molte regole delle grammatiche elementari diventano dellecostrizioni che impediscono di comunicare correttamente il pensiero in formascritta

Forse anche il problema della punteggiatura esterna alla matematica in dis-play potrebbe essere visto alla luce di queste considerazioni Puograve darsi che loschieramento a favore di uno o lrsquoaltro dei due approcci comprenda che lrsquoaltroapproccio egrave piugrave conforme alla punteggiatura in generale puograve darsi anzi cheentrambi gli schieramenti si orientino verso una interpunzione esterna alla mate-matica che non sia neacute la totale assenza di interpunzione neacute la presenza di unainterpunzione abbondante Qui non si prende posizione nel modo piugrave assoluto sivuole semplicemente osservare che lrsquointerpunzione va vista con uno sguardo piugraveampio di quello che le grammatiche scolastiche hanno postulato e che noi tuttici portiamo dietro fin dai tempi delle scuole elementari

Il punto e virgola svolge o puograve svolgere funzioni simili a quelli della virgolama solitamente serve per separare frasi autonome grammaticalmente nella suafunzione di serializzazione serve per separare frasi che contengano esplicitamenteo implicitamente anche il verbo Il ruolo di enfasi egrave ancora piugrave importante con ilpunto e virgola che con la virgola

Il punto serve per terminare un periodo se dopo si va a capo esso segnaanche la fine di un capoverso puograve servire anche per le abbreviazioni

I due punti sono un porsquo particolari essi servono per introdurre una frase chesia una spiegazione della precedente comunque costituisce un modo per creareuna aspettativa per ciograve che segue

Vale la pena di ricordare che in inglese la virgola i due punti e il punto sichiamano rispettivamente comma colon e period Queste sono le forme rimastenella lingua inglese delle denominazioni latine che venivano usate nei manuali

204 PUNTEGGIATURA 385

di oratoria come quello di Quintiliano In latino vigeva la scrittura continuasenza nemmeno gli spazi fra le parole Solo verso la metagrave del primo millenniosi cominciograve a scrivere almeno nelle iscrizioni sulle lapidi inserendo un puntoa mezza riga fra una parola e lrsquoaltra Per i non latinisti egrave piuttosto difficileleggere iscrizioni latine con la scrittura continua Lo doveva essere anche pergli antichi e Quintiliano insegnava a distinguere le locuzioni dalle frasi e daiperiodi (rispettivamente in latino comma colon e periodus) mediante dei segnidi interpunzione il comma veniva terminato con un punto basso il colon conun punto medio e il periodo con un punto alto Questi erano allo stesso temposegni demarcatori sintattici e segni prosodici ma Quintiliano insegnava ancheche per enunciare correttamente il discorso bisognava prima capirlo poi lo sipoteva leggere ad alta voce

Nei secoli questi tre segni hanno cambiato forma e funzione nel testo [35]sono descritte queste evoluzioni in tutte le lingue europee principali si trattadi una lettura molto interessante anche se puograve sembrare una lettura piuttostopesante I collaboratori della curatrice in varia forma hanno esposto i loro studialcuni in un registro da iniziati altri in un registro piugrave divulgativo ma tutti inmodo interessante

In italiano la virgola (da virgula diminutivo latino di verga asta) svolgetra le altre la funzione del comma Gli altri segni hanno nomi descrittivi dellaforma del segno ma il punto e virgola svolge il ruolo del colon mentre i duepunti sono particolari nel compito di introdurre una nuova frase In italianola parola comma egrave rimasta solo ad indicare una sola modesta articolazione deltesto spesso un solo periodo di un articolo di legge Oggi il termine colon initaliano indica un segmento ritmico di un testo individuato da pause metriche ologiche (non necessariamente marcate con segni di interpunzione)

Va ancora notato che ci sono alcune cose fortemente vietate nella pun-teggiatura come per esempio separare il soggetto dal verbo con una virgolaapparentemente il Manzoni lo faceva ma ad una seconda lettura si capisce chele sue virgole hanno lo scopo di marcare certe enfasi che solo apparentementeseparano il soggetto dal verbo ecco un criticatissimo esempio tratto dai PromessiSposi

Perograve di tante belle parole Renzo non ne credette una neacute che ilnotaio volesse piugrave bene a lui che arsquo birri neacute che prendesse tanto acuore la sua reputazione [ ]

Oggi noi (che non siamo Manzoni) considereremmo questa frase errata e mette-remmo la virgola prima di lsquoRenzorsquo In realtagrave leggendo meglio sembra di guardarein faccia il narratore che arrivato a questo punto del racconto strizza lrsquoocchiocome a dire ldquomica stupido il ragazzordquo

In inglese americano egrave invece comune incontrare questa funzione prosodicadi separazione del soggetto dal verbo ma non sembra un esempio da imitarenemmeno in inglese

Qui non egrave il caso di riscrivere il Prontuario della professoressa Mortara Ga-ravelli [34] a cui reindirizziamo il lettore Perograve si sottolinea lrsquoimportanza dellapunteggiatura nella buona tipografia interpungere bene componendo tipografica-mente puograve voler dire trasmettere un messaggio piuttosto che un altro evitandodi travisare il senso del discorso rispetto a come lrsquoaveva in mente lrsquoautore

Per i segni di espressione il punto interrogativo lsquorsquo ed esclamativo lsquorsquo talvoltageminati in lsquorsquo non dovrebbero esserci problemi interpretativi per i puntini di

386 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

sospensione egrave chiara la loro funzione tipograficamente parlando in Italia si suolescrivere i puntini di sospensione attaccati alla parola precedente nella tipografiaanglo-americana i puntini si scrivono attaccati se rappresentano una sospensionementre si scrivono staccati se rappresentano una omissione Nella tradizionetipografica italiana i tre puntini restano tre anche alla fine del periodo nel sensoche conglobano anche la funzione di punto fermo

I demarcatori come le virgolette alte o basse non richiedono spiegazioniparticolari tuttavia disponendo di entrambi i tipi di segni si egrave soliti dedicare levirgolette basse (chiamate anche caporali sergenti virgolette uncinate virgolettequadrate) per evidenziare parole o locuzioni importanti ovvero per racchiudere idialoghi le virgolette alte (o inglesi) allora si usano per evidenziare parole usatecome tali oppure per segnalarne un uso ironico o traslato comunque inconsuetoLe brevi citazioni nel corpo del testo vanno racchiuse fra virgolette una brevecitazione che ne contenga unrsquoaltra richiede lrsquouso di virgolette diverse la citazioneinterna avragrave per esempio le virgolette semplici e quella esterna le virgolettedoppie oppure quella esterna le virgolette basse e quella interna le virgolettealte

I problemi si complicano dal punto di vista della correttezza tipograficaquando si devono evidenziare i dialoghi per esempio in un romanzo Ci sonodiversi modi di evidenziare i dialoghi e le battute non facenti parte propriamentedi un dialogo Possono essere introdotte da un trattino medio possono essereracchiuse fra virgolette basse come detto sopra possono racchiudere un altrabattuta possono essere solo pensate ma non dette eccetera Le cose si possonocomplicare molto Si veda piugrave avanti anche in merito allrsquouso del trattino

Come al solito la coerenza egrave il metro principale per eseguire le scelte tipogra-fiche giuste I trattini le virgolette alte o basse semplici o doppie sono lsquocodicirsquoper distinguere le battute

Un modo coerente per usare questi segni egrave il seguente

bull si usano le virgolette basse doppie aperte e chiuse per racchiudere ciascunabattuta detta

bull si usano i trattini per separare incisi narrativi allrsquointerno di una battutadetta per esempio laquoSigrave egrave proprio cosigrave ndash affermograve con decisione ndash ne sonoassolutamente sicuraraquo

bull si usano le virgolette alte doppie aperte e chiuse per racchiudere unabattuta dentro unrsquoaltra battuta per esempio laquoMi hai detto testualmenteldquoCattivordquo con un tono troppo aggressivoraquo

bull si usano le virgolette alte doppie aperte e chiuse per racchiudere unabattuta pensata per esempio pensai ldquoOra qui devo cavarmela da solordquo

bull si usano le virgolette alte semplici aperte e chiuse per racchiudere unabattuta dentro una battuta pensata per esempio pensai ldquoGianni miha detto lsquoSigraversquo con poca convinzionerdquo

Chiaramente questo schema egrave coerente ma non egrave lrsquounico che si possa usareA differenza del francese e di altre lingue oltre che dalla pratica tipografica

italiana dei secoli scorsi le virgolette alte o basse non richiedono mai spaziaggiuntivi al loro interno quelle di apertura sono precedute da uno spazio mentre

204 PUNTEGGIATURA 387

quelle di chiusura sono seguite da uno spazio o da un segno di interpunzioneseguito a sua volta dallo spazio necessario

Si faccia attenzione nelle citazioni in lingua straniera dove le virgolettevengono usate come nella lingua drsquoorigine in alcune nazioni le virgolette sonousate con la concavitagrave verso lrsquoesterno in alcune nazioni le virgolette di aperturasono della stessa forma delle virgolette alte di chiusura ma sono poste alla basedella riga di stampa in alcune nazioni le virgolette vengono ripetute allrsquoiniziodi ogni riga per le citazioni che durino piugrave righe Come giagrave detto in francesele virgolette sono distanziate con normali spazi interparola dal loro contenutomentre in italiano questo oggi egrave assolutamente vietato Nel xix secolo anche inItalia andava per la maggiore lo stile tipografico francese per cui anche in Italiale virgolette erano distanziate cosigrave come anche i segni di interpunzione compresila virgola e il punto Oggi sarebbe inaccettabile Anche in latino ecclesiastico7 siusa uno stile tipografico del tipo francese ma con spazi piugrave ridotti rispetto aquelli francesi

Le parentesi tonde servono per incisi piugrave importanti di quelli che si possonodelimitare con una coppia di virgole anche le parentesi tonde non voglionospazi al loro interno Le parentesi quadre servono per inserire delle correzionispecialmente nelle citazioni delimitano insomma delle parti che nella citazioneoriginale mancavano o erano diverse Le parentesi tonde e quelle quadre possonoavere anche altre funzioni come quelle di delimitare le numerazioni delle formuleo delle citazioni bibliografiche sarebbe importante per una buona e correttatipografia che le parentesi di ogni tipo non svolgessero piugrave di due ruoli peresempio quello di incisi e di numerazione delle formule per le parentesi tondee quello delle correzioni e delle citazioni bibliografiche per le quadre Sarebbetroppo confuso per il lettore distinguere piugrave ruoli affidati alla stessa coppia disegni

I trattini hanno ruoli diversi a seconda della loro lunghezza Il trattino breveserve principalmente come indicatore di cesura in fin di riga puograve svolgere ancheil ruolo di trattino che unisce due parole associate nel loro significato cumulativoma tenute distinte per non formare una sola parola indo-europeo Va notatoche quando il trattino unisce due locuzioni a loro volta formate da piugrave di unaparola il trattino viene separato con spazi insecabili dalla prima e dalla secondalocuzione Trentino - Alto Adige

Il trattino medio lsquondashrsquo (en dash in inglese) non deve essere confuso con il segnomeno lsquominusrsquo LATEX mantiene anche graficamente un lunghezza diversa Il segnomeno si usa solo in matematica se si deve indicare una quantitagrave negativa espressain cifre la si componga in modo matematico non si cerchi di simulare il segnomeno con un trattino medio ldquola borsa ha avuto variazioni giornaliere dal 2al minus35rdquo Il trattino medio viene usato specialmente per indicare intervallinumerici senza ricorrere alla composizione matematica che usa altri simboli piugraveprecisi per esempio nelle bibliografie specialmente se si tratta di articoli egraveopportuno indicare le pagine nelle quali essi si trovano stampati dentro al volumeche li raccoglie si scriveragrave dunque ldquopag 321ndash347rdquo

Nei romanzi il trattino medio serve anche in sostituzione delle virgoletteper demarcare i dialoghi In particolare una battuta generalmente inizia con un

7Il latino ecclesiastico egrave latino moderno non medievale oltre ad avere uno stile france-sizzante usa gli accenti Questo sembra sia richiesto per consentire ai fedeli e ai religiosi dileggere correttamente e allrsquounisono indipendentemente dallrsquoaccentazione che spontaneamenteuserebbero in base alla sensibilitagrave ritmica derivata dalla loro lingua madre

388 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

trattino medio e uno spazio se essa finisce con il punto a capo non ha bisognodi avere anche il trattino di chiusura Se invece viene interrotto da una partenarrativa o il testo prosegue sulla stessa riga con una parte narrativa allorala battuta viene separata da quanto segue con il trattino medio preceduto dauno spazio Nella letteratura anglosassone questo ruolo del trattino medio vienesvolto dal trattino o lineato lungo

Il trattino lungo (em dash in inglese) viene usato poco nella tipografia italianaprincipalmente viene usato per indicare delle omissioni di lettere in una parolaper esempio per non svelare il nome di un personaggio si puograve scrivere ldquoil signorAmdashrdquo Talvolta imitando le tradizioni tipografiche angloamericane il trattinolungo viene usato al posto del trattino medio

Il segno di paragrafo lsquosectrsquo e di capoverso lsquopararsquo vengono usati raramente ilprimo certamente viene usato piugrave del secondo questo a sua volta trova la suacollocazione specialmente nei libri liturgici insieme ad altri numerosi segni specialilo si vede anche nei libri che cercano di imitare la scrittura dei codici

205 AbbreviazioniLe abbreviazioni sono un altro terreno infido spesso esse formano degli acronimiin questo caso solitamente viene usata la lettera iniziale maiuscola (talvolta anchele due lettere iniziali) di ciascuna delle parole che formano il nome dellrsquoente odellrsquoentitagrave di cui si usa lrsquoacronimo Alcuni acronimi sono diventati parole a seacutestanti di cui si egrave perso nel comune sentire il significato della locuzione originaleper esempio la parola comune radar egrave in realtagrave un acronimo inizialmentescritto in lettere maiuscole RADAR che sta per la locuzione inglese RAdioDetection And Ranging Lrsquoacronimo coreco sta per COmitato REgionale diCOordinamento Lrsquoacronimo onu sta per Organizzazione delle Nazioni Uniteovviamente in altre lingue come lrsquoinglese lrsquoacronimo corrispondente egrave unoCome fatto qui gli acronimi sono composti con lettere maiuscole preferibilmentein minuscole del maiuscoletto senza punti di abbreviazione interposti

Le abbreviazioni piugrave comuni sono formate dalla prima sillaba e dalle primeconsonanti della seconda sillaba e vengono terminate dal punto di abbreviazioneRaramente le abbreviazioni sono formate solo dalle prime consonanti della solaprima sillaba In rari casi al contrario lrsquoabbreviazione egrave costituita dalle primedue sillabe della parola da abbreviare seguite dalle prime consonanti della terzasillaba e terminando il tutto con il punto di abbreviazione per esempio lsquoteoremarsquopuograve essere abbreviato in lsquoteorrsquo

Il burocratese ci ha inquinato con usi strampalati delle abbreviazioni dupli-cando alcune lettere per indicare il plurale dalla parola abbreviata questo avvieneanche negli acronimi VVF (Vigili del Fuoco) OOSS (Organizzazioni Sindacali)pagg (pagine) sigg (signori) proff (professori) Sebbene il meccanismo siachiaro il plurale indicato in questo modo egrave pleonastico e fuorviante visto che ilsignificato plurale egrave implicito dal contesto

In alcuni altri casi si sono sviluppate abbreviazioni stenografiche usando soloalcune consonanti della parola da abbreviare btg (battaglione) cfr (confronta)e simili

Altre volte vengono usate abbreviazioni quando non crsquoegrave nessun bisogno diabbreviare quando si abbrevia lsquosigrrsquo al posto di lsquosignorrsquo si risparmia solo unabattuta lo stesso avviene per lsquosigrarsquo e lsquosignarsquo Certamente queste abbreviazioni

206 APPELLATIVI E MAIUSCOLE 389

sono piugrave adatte a una lettera commerciale che a un testo a stampa il burocratesesia lasciato alla burocrazia

Ma questi malvezzi si trovano anche negli scritti a stampa per esempio inuna bibliografia a piegrave di pagina puograve capitare di citare una nota e il numero di unvolume entrambi ammettono lrsquoabbreviazione lsquonrsquo ma egrave evidente che non si puograveusare la stessa abbreviazione per cose diverse quindi egrave meglio non abbreviarepiuttosto che abbreviare lsquonotarsquo in lsquonotrsquo piuttosto si abbrevieragrave lsquonumerorsquo in lsquonumrsquoriservando lsquonrsquo alla nota ma in entrambi i casi egrave meglio evitare lrsquoabbreviazioneoppure se proprio manca spazio si puograve usare il simbolo mediante il comandotextnumero

Direi anche che le abbreviazioni del tipo Flli Illmo Chiarmo con o senzasottolineatura dellrsquoesponente dovrebbero essere evitate in ogni modo anche inburocratese tranne nel caso in cui si debba scrivere la ragione sociale di un enteil cui ldquologordquo comprende proprio questo genere di abbreviazioni

Si ricorda infine che le abbreviazioni eccettuati gli appellativi per i qualivalga la pena non si usano mai nel testo corrente ma si possono usare solonegli incisi fra parentesi si diragrave dunque ldquolrsquoequazione 23 dimostra che rdquo eldquo(v fig 33)rdquo ma non si diragrave ldquolrsquoeq 23 dimostra che rdquo o peggio ancora ldquola 23dimostra che rdquo8

206 Appellativi e maiuscoleIn italiano le maiuscole si usano con grande parsimonia purtroppo lrsquoimitazionedellrsquoinglese ci ha abituato a certe forme dove le maiuscole si sprecano

Cominciamo dagli appellativi Questi sono quei nomi che permettono didistinguere le persone o sul piano professionale o sul piano istituzionale comeingegnere professore re presidente eccetera Anche il semplice lsquosignorersquo egrave unappellativo che la buona educazione fa premettere (nel genere e nel registrogiusto) al nome di qualunque persona Gli appellativi non vanno scritti conlrsquoiniziale maiuscola quando sono seguiti dal nome della persona quindi diremosemplicemente ldquolrsquoingegner Rossirdquo ldquoil professor Brunirdquo ldquoil re Gustavordquo ldquoil presi-dente Napolitanordquo Useremo lrsquoappellativo con la maiuscola quando lrsquoappellativonon egrave seguito dal nome proprio e si riferisce alla posizione istituzionale ldquoilRerdquo ldquoil Presidenterdquo ldquoho parlato con il Direttorerdquo eccetera Penso che lrsquoultimoesempio sia giagrave un porsquo tirato per i capelli personalmente scriverei ldquoho parlatocon il direttorerdquo Tuttavia si prenda in considerazione che la Gazzetta Ufficialegeneralmente scrive ldquoil Presidente della repubblicardquo lasciando lrsquoiniziale minuscolaa ldquoRepubblicardquo

In qualche manuale di indicazioni editoriali si trova scritto che i nomi deglienti si scrivono con le iniziali maiuscole se sono locuzioni formate solo da unao due parole in tutti gli altri casi si scrive con la maiuscola solo la primaparola apparentemente le istruzioni editoriali della Gazzetta Ufficiale seguonoquesta regola Siccome lrsquoarticolo fa parte integrante dei titoli di alcuni giornalibisogna scrivere ldquoLa Stampardquo ldquoIl Giornordquo ma sempre secondo questa regolabisognerebbe scrivere ldquoIl resto del carlinordquo

8Tuttavia in scritti molto tecnici se il numero dellrsquoequazione egrave racchiuso fra certe parentesiche vengono usate solo per indicare le equazioni per esempio le parentesi tonde allora si puograveomettere del tutto la parola ldquoequazionerdquo e si scriveragrave ldquola (23) dimostra che rdquo

390 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

Certamente in italiano non vanno scritte con la maiuscola le parole cheindicano nomi comuni figura tabella equazione teorema nemmeno quandovi si fa riferimento con il numero identificativo Siccome poi la ldquofigura 33rdquo egrave unoggetto ben determinato la locuzione ldquofigura 33rdquo deve essere usata con lrsquoarticolodeterminativo o con la preposizione articolata In nessun caso introducendoiniziali maiuscole Cosigrave vale per tutti gli altri oggetti numerati o numerabili

I titoli degli articoli o dei libri hanno in italiano la sola prima parola conlrsquoiniziale maiuscola i titoli degli articoli vanno sempre citati fra virgolettepreferibilmente alte i titoli dei libri non vanno mai citati fra virgolette ma incorsivo

Lrsquoiniziale maiuscola va usata anche per i nomi propri dei palazzi dei monu-menti degli aerei delle navi dei treni delle automobili

Gli aggettivi di nazionalitagrave vanno minuscoli se sono personalizzati e riferitiad una persona specifica allora possono avere lrsquoiniziale maiuscola Parlando degliolandesi si indicheragrave la parola con lrsquoiniziale minuscola ma parlando di Van Goghsi potragrave dire ldquolrsquoOlandeserdquo allo stesso modo come quando si dice ldquoil Nostrordquoo volendo ldquolrsquoArtistardquo Si tratta di usare un qualche appellativo senza farloseguire dal nome proprio ma come detto sopra egrave giagrave tirato per i capelli usarelrsquoappellativo maiuscolo quando non ci riferisca ad una carica istituzionale

I nomi dei giorni e dei mesi vanno minuscoli i nomi dei punti cardinali vannominuscoli a meno che non vengano usati per indicare delle regioni geografichequindi si parleragrave ldquodel grande Nordrdquo ma si diragrave che ldquogli uccelli migrarono versonordrdquo

Per concludere in italiano le maiuscole si usano con parsimonia e la correttezzatipografica italiana non vuole che si imitino gli anglo-americani come non siimitano i tedeschi o altri modi di scrivere nazionali che usano le maiuscole conregole diverse dalle nostre Nel dubbio ci si astenga dallrsquousare iniziali maiuscole

207 Uso dei fontLa scrittura tipografica consente di sfruttare le possibilitagrave espressive dei fontmediante lrsquouso sistematico di certe serie o di certe forme che scrivendo a manonon sono disponibili Non egrave opportuno fare sfoggio di infiniti font appartenenti afamiglie serie forme e corpi diversi Bringhurst [4] afferma che si dovrebbe usaresolo la forma tonda quella corsiva e quella maiuscoletta e sempre e soltantonella serie media questa affermazione egrave ripresa da Serra in [41] Il nero dovrebbeessere sempre evitato A queste raccomandazioni si ispirano sia il pacchetto Clas-sicThesis sia la classe octavo e senzrsquoaltro questa raccomandazione egrave validissimaper testi di tipo letterario Per quelli di tipo tecnico-scientifico non si rifugge dalnero per i titoli anche di sezioni di livello inferiore a quello del capitolo ma lo siesclude nel corpo del testo

Cosigrave si egrave fatto anche in questo testo che usa le impostazioni di default perla classe book ma si egrave cercato di evitare ogni comando che impostasse la serienera specialmente quando si sono definiti i comandi che compaiono nel fileMacroGuidasty usati per certe composizioni particolari necessarie per questotesto In particolare rispetto alle precedenti versioni si egrave abbandonato il caratterebastoncino nero per caratterizzare i nomi dei pacchetti e lo si egrave sostituito con ilcarattere obliquo della famiglia a spaziatura variabile variabile typewriter type

208 LE NOTE 391

della collezione Latin Modern facilmente distinguibile dal corrispondente fontobliquo della famiglia a spaziatura fissa typewriter type

Per evidenziare qualche cosa si usa preferibilmente il corsivo mai la sottoli-neatura pratica esclusivamente destinata alla dattiloscrittura o alla scrittura amano Per i nomi propri si puograve usare il maiuscoletto questo viene fatto quasisempre nelle bibliografie come per altro viene fatto anche in questo testo

Come giagrave detto i titoli dei libri e delle opere anche teatrali vengono evi-denziati in corsivo mentre i titoli degli articoli pubblicati in periodici o rivistespecializzate vengono evidenziati mettendoli fra virgolette I nomi propri deipalazzi monumenti aerei eccetera vanno scritti in tondo

Il corsivo si usa anche per scrivere parole in lingua straniera (latino compreso)se una parola egrave di origine straniera ma egrave entrata in modo stabile nel lessicoitaliano la si puograve scrivere in tondo ma in questo caso la si assoggetta alle regolegrammaticali dellrsquoitaliano in particolare la si lascia invariata al plurale tennisgolf goal file software eccetera Se la si vuole mettere al plurale con le regoledella lingua di origine la si deve trattare come parola straniera e quindi la sideve comporre in corsivo Si scriveragrave quindi ldquoi curriculumrdquo oppure ldquoi curriculardquoma non si potragrave scrivere ldquoi curriculardquo Drsquoaltra parte percheacute curriculum dovrebbepoter essere declinato mentre ldquolapisrdquo ldquoalbumrdquo ldquoiterrdquo eccetera non vengonodeclinati

Va da seacute che se si vogliono usare i plurali delle lingue di origine egrave necessariooltre allrsquouso del corsivo anche la perfetta conoscenza della grammatica dellalingua drsquoorigine Attenzione Questo egrave un terreno estremamente sdrucciolevolespecialmente se le parole in questione terminano con vocali presenti anche nelledeterminazioni delle parole italiane I frutti kaki sono caratterizzati da un nomegiapponese quindi non si puograve scrivere anche italianizzando con la sostituzionedella lsquokrsquo con la grafia corrispondente italiana il caco i cachi infatti la linguagiapponese non modifica le parole al plurale e kaki vale tanto per un kaki quantoper tanti kaki

In matematica la scelta dei font egrave vincolata da norme molto precise almenoper la varietagrave di matematica scritta dai fisici e dai tecnologi percheacute ci sono dellenorme ISO e delle norme CNR-UNI che ne prescrivono gli usi corretti Si ripetequi che le norme UNI in Italia hanno valore di legge qualunque documento concarattere legale un contratto un capitolato una perizia perde la sua validitagravese non vengono rispettate le norme le conseguenze negative potrebbero esseremolto molto pesanti

208 Le noteLe note di commento al testo possono essere di tre tipi le note marginali le notea piegrave di pagina le note di fine capitolo o di fine documento

Le ultime andrebbero evitate con cura sono di disagevole lettura qualunquefunzione svolgano percheacute sono lontane dal testo a cui si riferiscono

Le note marginali possono costituire dei commenti puntuali che si riferisconoal testo che esse affiancano purcheacute siano sufficientemente brevi e possano trovareposto davvero vicino al testo a cui si riferiscono Richiedono la presenza dimargini larghi e la capacitagrave di allineare la prima riga della nota alla riga deltesto a cui si riferiscono Vengono usate raramente nei testi tecnico-scientificima nei testi di scienze umane vengono usate abbastanza spesso Ricordiamoci

392 CAPITOLO 20 ORTOGRAFIA TIPOGRAFICA

che le edizioni critiche possono avere diversi apparati di note se in calce adogni pagina ci fossero 5 apparati di note ogni pagina sarebbe tremendamentecomplicata Spostare un apparato di note nel margine puograve costituire una notevolesemplificazione

La tradizione anglo-americana vorrebbe che per le note a piegrave di pagina ilrichiamo fosse costituito da un numero o una lettera o un simbolo ad esponentee lo stesso richiamo fosse ripetuto in calce prima del testo della nota Fin quinon crsquoegrave nessuna differenza con la tipografia italiana Ma la stessa tradizioneanglo-americana vorrebbe che il richiamo nel testo segua lrsquoeventuale punteggia-tura dopo la parola a cui la nota si riferisce si dovrebbe scrivere ldquoamigdala9rdquoe non ldquoamigdala9rdquo Questa raccomandazione o tradizione non sembra averealtra ragione che lrsquoestetica alla luce di quanto egrave stato detto sulla funzione del-lrsquointerpunzione apparirebbe piugrave corretto scrivere il richiamo di nota prima delsegno di punteggiatura in quanto la nota si riferisce ad una parola che si trovaprima di quel segno di punteggiatura segno che appunto separa una partesintattico-grammaticale da unrsquoaltra

Tuttavia entrambe le collocazioni del richiamo hanno la loro ragione drsquoessereil compositore sceglieragrave quella che gli sembra piugrave adatta al tipo di documentoche scrive ed avragrave cura di rimanere fedele a quella scelta per lrsquointero documento

209 ConclusioniCome si vede le regole da seguire in tipografia sono molte e sono molte anche leconsuetudini tipografiche alternative che si possono seguire qualunque composi-tore dovrebbe seguire come prima regola la coerenza Per rispettare la coerenzacompositiva egli si trova avvantaggiato se usa LATEX percheacute mediante la defini-zione di opportune macro egrave in grado di comporre molte cose nello stesso stile sein un secondo tempo dovesse decidere di cambiare stile gli basta cambiare ladefinizione della macro e automaticamente tutto il documento viene compostonel nuovo stile in modo corretto e coerente

LATEX perograve non basta ci sono diverse situazioni come quelle relative allapunteggiatura che vanno usate con coerenza ma che non possono essere codificatedentro a opportune macro Egrave utile allora che il compositore se non gli fosse giagraveimposto uno stile della casa editrice per cui compone si scrivesse autonomamenteun manualetto di stile bastano poche pagine dove vengono riassunte tutte leregole scelte e magari dove sono indicati anche i nomi delle macro che realizzanoquelle scelte In un manualetto del genere si possono anche scrivere alcunipromemoria per la punteggiatura per lrsquoevidenziazione per le virgolette peri plurali per le citazioni in lingua straniera eccetera in modo da non doverconsultare un libro alla ricerca della regola che non si ricorda piugrave

Tempo fa chi scrive contribuigrave con diversi articoli o lemmi al Dizionariodi ingegneria pubblicato dalla utet Fu un opera colossale magistralmentecoordinata dalla redazione editoriale che dovette assemblare i contributi dicentinaia di persone La precedente edizione era stata ideata e coordinata daEligio Perucca professore di fisica sperimentale al Politecnico di Torino

Eligio Perucca era stato anche il presidente e coordinatore di diverse com-missioni o gruppi di lavoro dellrsquoEnte Italiano di Unificazione (UNI) e si era resoconto della necessitagrave di una simbologia unificata nelle scienze e nelle tecniche Peril Dizionario di ingegneria aveva esaminato con cura i font di cui disponeva la

209 CONCLUSIONI 393

utet e aveva predisposto un manualetto di regole editoriali di molte pagine nonuna cosetta da poco dove oltre alle regole ortografiche indicate in questo capitoloaveva riportato un interminabile elenco di simboli per indicare virtualmentequalunque grandezza fisica potesse entrare in un dizionario di questo genereAi tempi della prima edizione il Sistema Internazionale non era ancora statoapprovato in fisica regnava lrsquoanarchia piugrave generale fra sistemi lsquocgsrsquo lsquocgsmrsquo lsquocgsersquolsquocgs Gaussrsquo lsquomksa razionalizzatorsquo lsquomksa non razionalizzatorsquo ed altri ancoraEligio Perucca aveva dispiegato una varietagrave di simboli e vi aveva associato unavarietagrave di nomi in modo che il Dizionario potesse contemperare senza confusionetutte le grandezze che fino ad allora erano state chiamate con gli stessi nomi eindicate con gli stessi simboli quando in realtagrave si trattava di cose diverse I fontusati ricorrevano ad ogni possibile serie e ad ogni possibile forma disponibilenella tipografia in cui sarebbe stato composto il Dizionario Si usavano senzasovrapposizioni i font corsivi con grazie i font senza grazie i font gotici rotondisia lrsquoalfabeto latino sia quello greco tutti nelle varianti medie e nere

Questo manuale editoriale fu usato anche per la seconda edizione fu prezio-sissimo sia per gli autori che allora non disponevano ancora dei PC sia per icompositori sia per la redazione Per chi scrive quellrsquoesperienza fu importantissi-ma in particolare gli insegnograve lrsquoimportanza dellrsquoortografia tipografica Chissagrave seegrave riuscito anche a metterla in pratica

Capitolo 21

Il formato PDF archiviabile

In una guida come questa non puograve mancare un capitoletto sul formato PDFarchiviabile Questo formato soddisfa alla norma ISO19005-1 del 2005 chestabilisce particolari restrizioni o specifiche al formato

Come questa Guida nasce essenzialmente come libro elettronico (e-book) cosigraveuna miriade di altri documenti nasce come documenti elettronici che talvoltavengono stampati ma sempre vengono archiviati Come saragrave possibile leggerequesti documenti di archivio di qui a cinquanta anni Ecco questo egrave il motivoper il quale lrsquoISO ha provveduto e emettere le norme per lrsquoarchiviazione deidocumenti elettronici

Sostanzialmente il formato prescelto dallrsquoISO egrave il PDF (Portable DocumentFormat) che giagrave in partenza era nato come uno strumento relativamente apertoma comunque indipendente dalla piattaforma sulla quale ogni documento erastato composto La Adobe che aveva sviluppato questo formato aveva resopubbliche le specifiche in modo che chiunque potesse scrivere programmi diconversione di composizione o di visualizzazione per questo formato

Gli Utenti di TEX ne sono perfettamente consapevoli visto che usano pdftexnato in modo indipendente dalla Adobe usano anche ghostscript nato per leggeree stampare i documenti scritti in formato PostScript e successivamente esteso aleggere e a scrivere (convertire) documenti in formato PDF La collezione deiprogrammi del sistema TEX contiene anche il programma dvipdfm per convertiredirettamente un file in formato DVI in un file corrispondente in formato PDFlo stesso avviene per i vari altri programmi ldquofratellirsquo di pdftex Aleph ConTEXtLuaTEX eccetera Nessuno di questi programmi egrave nato presso la Adobe ma egravestato possibile predisporli grazie al fatto che le specifiche del formato sono adisposizione di chiunque

Era naturale che con queste premesse lrsquoISO si rivolgesse al formato PDFcome base per il formato archiviabile Essa perograve ha imposto che il documentoarchiviabile sia scritto con il linguaggio PDF nella versione 14 e che sia dotatodi altre informazioni che consentano il reperimento dellrsquoinformazione utile con isistemi archivistici piugrave avanzati per esempio esso deve contenere dei metadatache consentano come minimo di ricercare il documento sulla base del suo titoloeo dei suoi autori ancor meglio questi metadata possono contenere anche leparole chiave per eseguire ricerche piugrave mirate

LrsquoISO impone anche che il documento sia indipendente dalle risorse dellrsquoelabo-ratore sul quale viene eventualmente letto dopo molti anni dalla sua archiviazione

395

396 CAPITOLO 21 IL FORMATO PDF ARCHIVIABILE

ovviamente lrsquoelaboratore dovragrave disporre di un lettore di documenti PDF manon necessariamente uno dei lettori esistenti oggi Non basta il documento deveessere autosufficiente anche per quel che riguarda i font con cui egrave composto edeve completamente integrare ogni immagine della quale sia anche ben chiaro ilmodello di colore usato

In sostanza i requisiti minimi richiesti ad un documento archiviabile oltreai metadata per le ricerche di archivio sono che il documento sia leggibileesattamente nella stessa forma in cui era stato composto Questi requisiti minimiconfigurano la specifica PDFA-1b meno restrittiva della specifica PDFA-1ala quale invece richiede che il file PDF sia anche un tagged PDF affincheacute siaestraibile anche la struttura logica del documento indipendentemente dal fattoche questo contenga gli hyperlink interni per la lettura dinamica sullo schermo

Ovviamente la Adobe ha provveduto con il suo programma Acrobat Profes-sional dalla versione 70 in poi a rendere disponibile un certo numero di opzioniper trasformare file nati in formato PDF nei requisiti richiesti dalle norme ISOsia per la variante PDFA-1a sia per quella PDFA-1b Tra le opzioni crsquoegrave anchela possibilitagrave di verificare se un file PDF prodotto esternamente sia giagrave conformeallrsquouna o allrsquoaltra delle due specifiche anzidette eventualmente ne consente lacorrezione in ogni caso ne segnala gli errori e le manchevolezze

In commercio esistono diversi altri programmi di conversione e di verifica maa conoscenza dello scrivente e fino ad oggi (fine 2008) nessuno di quei programmiegrave disponibile gratuitamente salvo ovviamente i programmi del sistema TEXInfatti questo sistema contiene ora (dicembre 2008) le cose necessarie per produrrei file PDFA-1b ma egrave anche affiancato dal programma ghostscript (dalla versione860 in poi) che riesce ad eseguire la conversione in modo diverso ma conformealle specifiche Quello che il sistema TEX non contiene ancora egrave un programma diverifica della conformitagrave e lrsquoutente non puograve fidarsi del fatto che se lrsquoesecuzionedi pdflatex o di ghostscript egrave andata a buon fine allora siano anche rispettatetutte le specifiche della norma ISO

La produzione di un documento archiviabile non fa parte in senso strettodellrsquoArte della Composizione Tipografica tuttavia se un documento egrave statoprodotto con ogni cura e deve essere archiviato egrave importante che il compositoresegua anche quelle norme e quelle procedure che permettono di rispettare lenorme ISO

211 Le immagini

Le immagini incluse in un file archiviabile devono essere tutte conformi allo stessomodello di colore Se si dispone di immagini in vero bianco e nero questo puograveessere accettato insieme agli altri modelli di colore ma solitamente le immaginicon cosigrave poca informazione (ovvero con un contrasto cosigrave alto) sono assai scadentiquindi sarebbe meglio evitarle specialmente se sono ottenute tramite uno scannerEgrave sempre possibile configurare lo scanner utilizzato per evitare lrsquouso di soli duebit per ogni pixel sarebbe meglio configurarlo per un modello di colore a tonalitagravedi grigio (8 bit per ogni pixel) meglio ancora egrave lasciare le impostazioni di defaultche si riferiscono in generale al modello di tricromia additiva RGB (Red GreenBlue) che rendono perfettamente i colori (anche il nero) sugli schermi dove ipuntini luminosi emettono luce corrispondente a quei tre colori fondamentali

212 I FONT 397

Talvolta si egrave portati a pensare alla stampa la quale usa la quadricromiasottrattiva CMYK (Cyan Magenta Yellow blacK ) dove i puntini colorati sonoottenuti depositando particelle piccolissime di colore che riflettono il coloredesiderato assorbendo gli altri colori presenti nella luce bianca con cui vieneilluminato lo stampato Egrave meglio non fare riferimento al modello CMYK ognistampante a seconda del sistema di stampa che usa del tipo di pigmenti coloratieccetera ha il suo convertitore di colore che trasforma il modello additivo RGBin quel che occorre alla stampante per stampare correttamente rendendo i colorial meglio

Per cui tutte le immagini oltre a essere conformi allo stesso modello di coloreegrave bene che facciano riferimento al modello additivo RGB

Questo implica che i metadata contenuti nel file PDF archiviabile menzioninoesplicitamente il modello di colore Ne deve specificare non solo il tipo ma ancheil file che lo descrive questo tipo di file ha estensione icc1

Se una ricerca sui file del proprio PC non presentasse nessun file con estensio-ne icc allora bisogna scaricarsene uno di validitagrave generale si consiglia il sitodellrsquoEuropean Color Initiative (httpwwweciorg) dalla cui pagina di down-load egrave possibile scaricare il file ECI-RGBV10icc e fare riferimento a questofile su qualunque piattaforma Ovviamente questo aspetto della configurazioneandragrave personalizzato da ciascun compositore secondo le sue necessitagrave quanto siegrave detto egrave sostanzialmente una indicazione generale per giunta valida per tutti etre i principali sistemi operativi

Una attenzione particolare va posta nei modelli di colore e nei colori usati peri comandi interni di pdflatex per esempio a chi scrive egrave successo di configurarecon il colore magenta i link alle citazioni bibliografiche constatando che il filenon era conforme alle norme ISO cambiando il colore in blue il file diventavaconforme

Questo succede percheacute in mancanza di configurazioni globali i colori che sipossono usare vengono tratti dai comandi interni che fanno uso del minimo diinformazione necessaria il colore blue egrave uno dei colori fondamentali del modellodi colore RGB mentre il magenta egrave uno dei colori fondamentali del modello dicolore CMYK e da questo viene tratta la codifica interna del colore da usarechiaramente incompatibile con il modello RGB con cui era dichiarato il file etutte le sue immagini Basta usare correttamente i comandi di configurazione delpacchetto color o xcolor o graphicx e il problema svanisce anche con il coloremagenta e gli altri colori fondamentali del modello CMYK

212 I fontI file PDF archiviabili devono contenere tutti i font di cui fanno uso essi devonorisultare tutti Embedded quando se ne guardano le caratteristiche per esempiousando il programma gratuito Adobe Reader e chiedendogli di mostrare le pro-prietagrave del documento In generale i font non vengono incorporati completamentema ne viene incorporato un sottoinsieme (subset cosiccheacute lrsquoapposita finestra delReader indicheragrave Embedded subset) per quei font di cui sono stati incorporati isoli caratteri effettivamente usati nel documento

1File un porsquo anzianotti potrebbero avere estensione icm ma sarebbe meglio evitarli e fareriferimento a file piugrave recenti

398 CAPITOLO 21 IL FORMATO PDF ARCHIVIABILE

Ma attenzione quando si incorpora una figura anche PDF che a sua voltacontiene altri font anche questi devono risultare incorporati Ci si dimenticaassai spesso che le figure prodotte con altri programmi e salvate in formato PDFspesso non incorporano tutti i caratteri in particolare i 35 font che si supponeesistano di default su qualunque macchina capace di visualizzare i file PostScriptoppure gli 11 font che si suppone esistano di default su qualunque macchinacapace di visualizzare2 i file PDF

Bisogna quindi ricordarsi di configurare correttamente i programmi del si-stema TEX affincheacute incorporino tutti i font usati anche quelli di default mabisogna ricordarsi di configurare anche i programmi di disegno affincheacute salvinole loro immagini in un formato che contenga almeno il sottoinsieme dei caratteriusati

I programmi del sistema TEX sono configurati attraverso il file updmapcfgnelle prime diciamo 100 righe ci sono le impostazioni booleane per lrsquoincor-porazione dei font sia per il programma dvips sia per i programmi pdftex edvipdfm per questi ultimi due egrave impostato il valore true per lrsquoincorporazione deifont mentre per il primo lrsquoimpostazione egrave false quindi bisogna per prima cosacambiare questo valore in true e poi rilanciare il programma eseguibile updmapal fine di creare le mappe dei font configurate correttamente

Per le immagini incorporate o si riesce a configurare correttamente il pro-gramma di disegno usato oppure bisogna ricorrere ad un trucco non altrettantoefficace dal punto di vista estetico ma accettabile Il file PDF prodotto esterna-mente puograve venire elaborato con il programma gratuito inkscape chiedendoglidi salvare il risultato di nuovo in formato PDF i font non incorporati ma resivisibili attraverso i font in dotazione a questo programma vengono sostituiticon i loro disegni vettoriali il carattere vettoriale dellrsquoimmagine presente nelfile originale viene conservato ma dopo il trattamento il file ufficialmente noncontiene piugrave nessun font

Questo egrave il primo problema che si presenta con i font il secondo problema egraveche ogni carattere deve avere una larghezza non nulla Sembra ovvio ma le cosenon stanno cosigrave

Infatti specialmente con i font vettoriali (in formato pfb) delle collezionidel sistema TEX alcuni segni matematici vengono composti giustapponendoelementi del loro disegno che talvolta devono sovrapporsi ad altri elementi

Fra i font che presentano questo difetto ci sono tutti i font matematici cmsye i loro parenti di altre collezioni derivati dai font Computer Modern I segniproblematici sono not e mapsto La presenza anche di una sola istanza di unodi questi segni in un file altrimenti ineccepibile rende il file PDF non conformealle norme ISO e non egrave archiviabile anche se a schermo esso appare perfetto

Nella descrizione del pacchetto pdfx di cui si parleragrave fra non molto e nel sitohttpsupportriver-valleycomwikiindexphptitle=Generating_PDFA_compliant_PDFs_from_pdftex vengono suggeriti alcuni modi di aggiustarela situazione chiaramente il lettore puograve seguire quei consigli qui si presenta unasoluzione alternativa non esattamente equivalente ma di validitagrave generale e chenon richiede la ldquomanomissionerdquo dei file appartenenti al sistema TEX se e quandoi curatori di quelle collezioni di font vorranno provvedere ad eseguire nativamentele correzioni necessarie non occorreragrave piugrave ricorrere a nessun aggiustamento

2Qui si usa la parola visualizzare anche quando il processo di visualizzazione consiste nellastampa

212 I FONT 399

Il comando not viene sovrapposto a qualunque operatore matematico direlazione per negarlo tipicamente not= o il suo equivalente neq produce ilsegno = ottenuto sovrapponendo il segno al segno = Ai tempi in cui nacqueil sistema TEX le memorie RAM e i clock che regolavano lrsquoesecuzione delleistruzioni macchina anche nei grossi main frame erano rispettivamente assaimodeste e assai lenti risparmiare su qualunque cosa era importante per cui isegni matematici di relazione negati erano tutti ottenuti in questo modo i fontdellrsquoAmerican Mathematical Society hanno rimediato al brutto aspetto di alcunidi questi segni negati ma il meccanismo egrave rimasto anche per compatibilitagrave con imilioni di documenti scritti in passato anche oggi che sono passati 30 anni dallanascita del sistema

Purtroppo il segno not privo di dimensioni orizzontali non egrave accettabiledalle norme ISO per cui bisogna provvedere a sostituirlo con un trucco diprogrammazione base di TEX consistente nel comando primitivo mathchoicequesto comando per ciascuna delle quattro modalitagrave di composizione dellamatematica (in display in linea con il testo indici primi indici secondi) offrequattro modalitagrave distinte di operazione che vengono specificate ordinatamentenei suoi quattro argomenti La ldquocorrezionerdquo ricorre a comporre dentro una scatoladi larghezza nulla una barra di dimensioni orizzontali non nulle specificandoneuna dimensione diversa per ciascuno dei quattro modi Ecco il codice dove sisono volutamente incolonnate le corrispondenti graffe aperte e chiuse in mododa rendersi conto piugrave facilmente delle quattro scelte

renewcommandnotmathrel

mathchoicerlap$displaystylemkern25mumathnormal$rlap$textstylemkern25mumathnormal$rlap$scriptstylemkern25mumathnormal$rlap$scriptscriptstylemkern25mumathnormal$

Il comando rlap (right overlap) serve per comporre una scatola di larghezzanulla il cui contenuto si sovrappone a qualunque cosa si trovi alla sua destrasiccome al suo interno il modo di composizione torna ad essere quello testualebisogna riattivare il modo matematico e al suo interno per ciascuna delle quattromodalitagrave di composizione bisogna specificare lo stile di composizione rispet-tivamente mediante i comandi displaystyle textstyle scriptstyle escriptscriptstyle Il comando mathrel serve a specificare che il comandonot egrave un operatore di relazione mentre mathnormal serve per scegliere il fontmatematico da cui trarre la barra

Il comando mapsto di per seacute non sarebbe problematico e produce il segnorarrIl problema nasce dalla sua coda che egrave definita con una dimensione orizzontalenulla non egrave chiaro il motivo in quanto esso compare solo nella definizione dimapsto sarebbe stato forse preferibile disegnare il segno direttamente senzaricorrere alla coda di larghezza nulla aggiunta ad una freccia normale chissagraveforse nelle prime versioni del sistema TEX questo segno serviva anche ad altro Ilfatto egrave che esso non egrave accettabile in un file conforme allo standard PDFA

400 CAPITOLO 21 IL FORMATO PDF ARCHIVIABILE

In questo caso si egrave preferito usare i comando rule di LATEX ahimegrave questasoluzione egrave usabile solo con LATEX e ne egrave escluso lrsquouso con TEX3 Tuttavia questa Guida si riferisce allrsquouso di LATEX per comporre tipograficamente in modoeccellente La soluzione trovata ricorre ancora a mathchoice ma il segno egraveottenuto con dimensioni diverse per i quattro modi di composizione distinti

renewcommandmapstocharmathrelmathchoicerlaprule[05ex]1ex1exmkern-5murlaprule[05ex]1ex1exmkern-5murlaprule[035ex]08ex75exmkern-5murlaprule[025ex]065ex55exmkern-5mu

I numeri ldquomagicirdquo usati servono per legare lo spessore del segno e la posizioneprecisa a seconda dello stile di composizione matematico sono tutti valori ricavatisperimentalmente e ovviamente non si tratta di prescrizioni immutabili mavanno adattate anche a font diversi da quelli qui ipotizzati dei simboli matematicidella collezione Computer Modern

Queste due soluzioni non toccano i font originali possono essere inseritein un file di opzioni personali da usare sempre o soltanto quando si devonoprodurre file PDF archiviabili Speriamo solo che in un lasso di tempo ragionevolequeste correzioni o meglio correzioni piugrave professionali vengano apportate ai fontoriginali e vengano ridefiniti i comandi di generazione di questi segni in modoche il risultato finale sia lo stesso ma sia anche compatibile con il formato PDFarchiviabile

Al contrario potrebbe succedere che altri file che fanno uso di altri fontpossano dare luogo a problemi simili a seconda della diagnosi eseguita (oggi)con Acrobat Professional ci si comporteragrave adeguatamente ma in modo analogoa quanto descritto sopra

213 Gli hyperlinkAnche gli hyperlink possono dare dei problemi ma il pacchetto hyperref accettaora la nuova opzione pdfa che consente di evitare questi problemi Lrsquounico cheresta egrave quello di ricordarsi di specificare lrsquoopzione A questo scopo il pacchettopdfx provvede da solo ma se per qualche motivo non fosse possibile usarepdflatex non si potrebbe usare pdfx e bisognerebbe passare attraverso il formatoPostScript e a ghostscript in questo caso bisogna ricordarsi di specificare benelrsquoopzione alla chiamata esplicita di hyperref

Vale la pena di ricordare che nel formato PDFA gli hyperlink internicontinuano ad essere attivi ma gli hyperlink verso indirizzi esterni pur restandocolorati come qualunque altro hyperlink sono disattivati la ratio di questalimitazione egrave che giagrave oggi si incontrano molti hyperlink che non funzionano piugraveprobabilmente fra cinquanta anni nessuno degli indirizzi internet oggi esistentisaragrave piugrave valido Sarebbe quindi perfettamente inutile indirizzare i lettori versoindirizzi lsquomortirsquo Bisogna tenere conto di questo fatto specialmente quando siscrivono i riferimenti nella bibliografia o nel testo in modo da evitare riferimentiad indirizzi internet esterni

3O meglio il comando rule di LATEX deve venire sostituito dal comando vrule di TEXcorredandolo delle necessarie specificazioni di altezza larghezza e profonditagrave

214 GENERAZIONE DI UN FILE PDF ARCHIVIABILE 401

214 Generazione di un file PDF archiviabileAffrontati i problemi a cui bisogna porre attenzione (che riflettono un porsquo anchela strada tortuosa che chi scrive ha dovuto scoprire ldquosperimentalmenterdquo vistoche la documentazione era e resta (per ora) spiacevolmente carente) non restache procedere alla generazione di un documento in formato PDF archiviabile

2141 La strada maestra

La strada maestra egrave quella di usare pdflatex richiamando il pacchetto pdfxQuesto pacchetto egrave recentissimo se ne suggerisce lrsquoinstallazione e la letturaattenta della sua documentazione tenendo conto anche di ciograve che egrave detto qui

Il pacchetto solo in congiunzione con con pdflatex serve per produrre filein formato PDFA-1b se gli specifica lrsquoopzione a-1b oppure file in formatoPDFX-1a se gli specifica lrsquoopzione x-1a il formato PDFA-1b egrave quello che ciinteressa qui Il formato PDFX-1a serve per rispettare unrsquoaltra norma ISOindirizzata alla conformitagrave dei file stampabili le problematiche sono simili mai file stampabili sono completamente orientati al modello di colore CMYK edispongono di una serie differente di metadata

Siccome il pacchetto pdfx carica a sua volta il pacchetto hyperref con legiuste opzioni a seconda dei formati esso pdfx deve essere invocato per ultimonel preambolo del documento archiviabile o per ultimo nel file di classe deldocumento ne consegue che eventuali personalizzazioni dei comandi relativiallrsquoaspetto degli hyperlink devono venire eseguiti subito dopo la chiamata dipdfx vale a dire alla fine del preambolo se il pacchetto viene invocato per ultimonel preambolo oppure allrsquoinizio del preambolo se la chiamata del pacchettoviene eseguita alla fine del file di classe

Bisogna perograve almeno la prima volta configurare il file pdfxsty in mododa invocare il modello di colore giusto a meno che non si voglia usare quellodi default Contrariamente al solito egrave esplicitamente consentito personalizzareil file pdfxsty ma a causa di ciograve esso e i suoi file accessori devono esseremontati in una cartella dellrsquoalbero personale altrimenti al primo aggiornamentodel sistema TEX ogni personalizzazione viene persa Per altro se sulla stessamacchina operano diverse persone ognuna ha il suo albero personale e ognuna egravelibera di usare il modello di colore che vuole

Si egrave suggerito di caricare il modello di colore descritto mediante il fileECI-RGBV10icc percheacute il pacchetto pdfx lo possa trovare ed usare egrave neces-sario che esso si trovi sul percorso di ricerca il posto migliore egrave proprio la stessacartella dove si trova il pacchetto Ci si ricordi lo si ripete di personalizzare ilpacchetto pdfx scrivendo il nome da solo o il nome con lrsquoestensione nei puntidove il file originale pdfxsty lo richiede

Il punto essenziale che invece non bisogna dimenticare serve per impostare imetadata relativi al documento da archiviare Questo va fatto evidentementeper ogni documento da archiviare e sempre con dati diversi La cosa migliore dafare egrave quella di scrivere ogni volta un file con estensione xmpdata e con il nomecoincidente con il file principale (o unico) che contiene il testo sorgente tex dacomporre Nel caso di questa Guida per esempio il cui file principale si chiamaGuidaGuITtex bisogna predisporre un file dal nome GuidaGuITxmpdata e conil contenuto corrispondente alla sintassi seguente

402 CAPITOLO 21 IL FORMATO PDF ARCHIVIABILE

Title〈Titolo del documento〉Author〈Lista degli autori〉Keywords〈lista delle parole chiave〉Org〈Organizzazione cui appartengono gli autori〉

Si possono inserire anche altri comandi (tutti inizianti con una lettera maiuscola)e se ne puograve vedere lrsquoelenco completo nella documentazione del pacchetto pdfx(oltre che nel suo listato sempre molto istruttivo)

Non crsquoegrave molto da dire sul significato degli argomenti si noti che la lista delleparole chiave sarebbe meglio che fosse una lista strutturata non semplicementeuna lista di parole separate da virgole tenuto conto che lrsquoapertura e la chiusuradella struttura sono giagrave inserite di default quello che serve egrave solo mettere idelimitatori fra una parola chiave e lrsquoaltra la sintassi egrave la seguente

〈prima chiave〉ltrdfligtltrdfligt〈seconda chiave〉ltrdfligtltrdfligt 〈penultima chiave〉ltrdfligtltrdfligt〈ultima chiave〉

Attenzione qui si egrave indicato con il segno di commento lo spezzamento dellariga ma sarebbe meglio non andare mai a capo e scrivere tutte le parole diseguito diventeragrave una riga lunga quella delle parole chiave ma si egrave piugrave sicuri dinon introdurre caratteri spuri ricordiamo che quanto si scrive qui in una formapraticamente identica va a finire nella sezione dei metadata del file PDF e quindideve rispettare scrupolosamente le convenzioni del mark-up chiamato XMPche egrave un sottoinsieme del linguaggio XML Chi conosce come manovrare con ilmark-up di LATEX non necessariamente padroneggia anche il mark-up XML

Fatto questo bisogna eseguire pdflatex quante volte occorre per soddisfareanche le esigenze della bibliografia e dellrsquoindice analitico e poi bisogna sottoporrea verifica di conformitagrave il file ottenuto Scaramanticamente sarebbe opportunoincrociare le dita Non si dispone ancora di abbastanza esperienza per sapere sesi egrave riusciti ad evitare tutti i trabocchetti con le immagini i colori e i font chepotrebbero produrre un file non conforme Tuttavia chi scrive ha giagrave prodottodiversi file archiviabili e ormai ha sviluppato una piccola esperienza che glipermette di affermare che se si seguono le procedure descritte sopra le possibilitagravedi incontrare problemi di conformitagrave sono ridotte in ogni caso si egrave indicata lastrada per affrontare alcuni problemi con i font e con i file inclusi

2142 Trasformazione di un file PDF o di un file PSIl programma ghostscript permette di convertire un file PS in un file PDF e lrsquounoe lrsquoaltro in file conformi agli standard PDFA-1b oppure PDFX-1a Attenzionequesta possibilitagrave di conversione si ha dalla versione 860 in poi

La documentazione di ghostscript relativa a queste trasformazioni lascerebbeintendere che si possa usare il programma ps2pdf ma chi scrive ha sperimentatoche non egrave propriamente cosigrave in ogni caso il lavoro vero lo fa ghostscript e ilrisultato puograve essere conforme agli standard con la stessa probabilitagrave che si hausando pdflatex

Per non dimenticare per la strada uno qualsiasi dei comandi o delle opzionio dei file che ghostscript richiede egrave meglio confezionarsi un comando mediante

214 GENERAZIONE DI UN FILE PDF ARCHIVIABILE 403

un file bat per le macchine Windows oppure uno script bash per le macchineUNIXLinuxMac OS X

Per le macchine Windows il file per trasformare i file PDF in file PFDApotrebbe chiamarsi pdf2pdfabat dovrebbe trovarsi sul percorso di ricerca deifile e dovrebbe contenere quanto segue

echo offrem procedura batch per lanciare gswin32c per trasformarerem un file PDF in un file PDFArem QUANTO SEGUE DEVE ESSERE SCRITTO SU UNA SOLA RIGAgswin32c -dPDFA -dNOOUTERSAVE -dUseCIEColor -sDEVICE=pdfwrite-sProcessColorModel=DeviceRGB -o 1-apdf PDFA_defps 1pdf

Per trasformare un file PS basta scrivere unrsquoaltra procedura identica a quellaappena illustrata ma con il nome per esempio ps2pdfabat dove si usalrsquoestensione ps nellrsquoultimo elemento del lungo comando

Per le macchine UNIXLinuxMac OS X lo script bash potrebbe esserecontenuto in un file al quale si potrebbe dare il nome pdf2pdfa senza scordarsidi dichiararlo eseguibile (chmod 755 pdf2pdfa) e di collocarlo in una cartellache si trovi sul percorso di ricerca il suo contenuto non egrave molto diverso da quelloscritto per le piattaforme Windows semplicemente sfrutta la migliore sintassidel linguaggio di scriting Bash esso egrave il seguente

binbashfile1=$1pdffile2=$1-apdf QUANTO SEGUE DEVE STARE SU UNA SOLA RIGAgs -dPDFA -dNOOUTERSAVE -dUseCIEColor -sDEVICE=pdfwrite-sProcessColorModel=DeviceRGB -o $file2 PDFA_defps $file1

Per trasformare un file PS basta creare uno script del tutto simile chiamatoper esempio ps2pdfa dove si egrave sostituita con lrsquoestensione ps quella del file cheserve per definire la variabile file1

Lrsquouso dellrsquouna o dellrsquoaltra procedura egrave molto semplice basta usare la finestracomandi e dare il comando

pdf2pdfa 〈nome file senza estensione〉

Ma non basta prima di mandare in esecuzione il programma ghostscript pereseguire la trasformazione bisogna aver predisposto un file PDA_defps nellacartella dove risiede il file da convertire Il contenuto di questo file egrave dupliceserve per definire il DeviceRGB e serve per introdurre i metadata necessari Bastaprendere il file con lo stesso nome dalle cartelle dove si trovano i file che fannoparte della distribuzione di ghostscript copiarlo nella cartella che interessa il fileda trasformare e usarlo come template per inserire le informazioni necessarie

Ci sono tre righe che contengono il commento Customize Queste righesono da modificare o da ampliare secondo le proprie necessitagrave Attenzione il filein questione egrave un file di puro testo ma ha lrsquoestensione ps questa estensionedi solito egrave associata a programmi di resa grafica dei file PostScript in questocaso si tratta di un file di puro testo scritto in linguaggio PostScript e deve

404 CAPITOLO 21 IL FORMATO PDF ARCHIVIABILE

venire aperto con un editor che non faccia danni va benissimo lrsquoeditor con ilquale normalmente vengono scritti i file sorgente tex

Le righe che devono essere personalizzate devono venire modificate cosigrave

bull La riga che contiene il testo

ICCProfile (ISO Coated sbicc) Customize

va commentata premettendovi un segno e subito dopo ne va inseritaunrsquoaltra adeguata

ICCProfile (ISO Coated sbicc) Customize per macchine WindowsICCProfile (CiccECI-RGBV10icc) oppure per macchine UNIXLinuxMac OS XICCProfile (~iccECI-RGBV10icc)

Si egrave supposto a titolo di esempio che il file sia stato salvato in unacartella di nome icc ma non egrave importante dove sia conservato il filepurcheacute nel precedente comando vi sia il percorso completo a partire se nondalla radice del disco almeno dalla propria ldquoHomerdquo concetto che egrave ormaiacquisito anche nelle macchine Windows anche se il suo percorso puograveessere assai diverso da quello delle macchine UNIX o simili Ovviamentenella personalizzazione indicata sopra si useragrave la sintassi per macchineWindows o per le altre macchine a seconda di quale macchina si sta usando

bull La riga che contiene il testo

[ Title (Title) Customize

va adeguata al file specifico che si sta convertendo per esempio pertrasformare il file di questa Guida si possono usare le righe seguenti

[ Title (Introduzione allrsquoarte della composizionetipografica con LaTeX)

Author (Gruppo Utilizzatori Italiani di TeX e LaTeX)Subject (Manuale di istruzioni per usare LaTeX

consapevolmente)

Si possono inserire altre informazioni per esempio una lista di parole chiaveper facilitare le ricerche di archivio ma quelle relative al titolo e allrsquoautoresono il minimo necessario

bull Il terzo punto da personalizzare egrave quello che corrisponde alla riga

OutputConditionIdentifier (CGATS TR001) Customize

215 CONCLUSIONI 405

ma qui non egrave necessario intervenire se non per inserire altre informazionidi cui si conosce la sintassi e il significato Probabilmente questa rigariguarda la trasformazione nel formato PDFX ma non interferisce con latrasformazione PDFA

Con queste personalizzazioni e con le procedure indicate sopra la conversioneprocede spedita e con una ragionevole probabilitagrave di successo i problemi che sipossono presentare in sede di verifica sono gli stessi sostanzialmente di quelliche si presentano lavorando con pdflatex

215 ConclusioniIl lettore non si scoraggi per la relativa rusticitagrave delle procedure per la composi-zione diretta o per la trasformazione di file esistenti in file conformi alla specificaISO19005-12005

Il problema egrave difficile e oggi (fine 2008) siamo appena gli inizi della necessitagravedi archiviare documenti in forma conforme alla specifiche normative

Si tenga presente che gli stessi problemi si pongono con la suite MicrosoftOffice 2007 e con OpenOfficeorg nella versione 3x persino il programma principedella Adobe Acrobat Professional versione 8x incontra i suoi problemi

A chi scrive (e che si egrave giagrave fatto una piccola esperienza in merito) appare piugravecorretto non nascondere le difficoltagrave e i problemi che non proporre agli utentispesso acquirenti che sborsano cifre non trascurabili programmi che non possonofare piugrave di tanto e che non centrano il bersaglio piugrave spesso di quanto non sicreda

Dispiace che il bersaglio non sia sempre centrato nemmeno con OpenOfficeorgche se non altro ha due pregi (a) fin dai suoi inizi ha usato come formato didefault quello con il mark-up XML e (b) si tratta di un programma gratuito inmano alla comunitagrave degli utenti non molto diversamente da quel che succedecon il sistema TEX pur restando su un terreno ben diverso4 Egrave quindi un peccatoche anche OpenOfficeorg sia scivolato su questa questione senza una parola diavviso relativa alla difficoltagrave di salvare file veramente conformi alla norma ISO

4La matematica egrave sempre stato un problema difficile da affrontare con programmi di tipoWYSIWYG OpenOfficeorg ha perograve un plug-in che consente di comporre le formule con LATEXegrave sulla buona strada ma se uno deve avere sulla propria macchina anche il sistema TEX percomporre le formule di OpenOfficeorg a che cosa serve usare OpenOfficeorg Solo per poterusare la tecnica WYSIWYG Per altro non so se la notizia sia vera ma sembra che il nostroGrand Wizard Donald E Knuth abbia collaborato con la Microsoft per lrsquoimplementazione delnuovo equation editor della versione 2007 di MS Office Ultima notizia ancora semiufficialereperibile in merito alla descrizione del plug-in Writer2TeX di OpenOfficeorg ora egrave ancoranella versione beta ma egrave giagrave scaricabile dal sito questo plug-in che consentirebbe di usare lacomponente Writer di OpenOfficeorg come editor quasi WYSIWYG per produrre direttamenteun file con il mark-up di LATEX con i bottoni per eseguire la composizione sia con latex sia conpdflatex e poi di eseguirne la visualizzazione su schermo forse Writer vuole sostituire LYXPuograve darsi e tutto sommato non sarebbe un male purcheacute il file LATEX prodotto sia un fileefficace ed efficiente Per ora (giugno 2010) la versione beta di questo plug-in non egrave ancoracompletamente affidabile Egrave difficile dire se questa soluzione sia un vantaggio per gli utenti diLATEX ma il futuro ce lo diragrave Si veda quanto esposto piugrave avanti nel capitolo 22

Capitolo 22

Comporre da documentiesterni

Un problema che sorge spesso consiste nel comporre unrsquoopera collettiva dove ivari autori scrivono usando programmi diversi del tutto simile egrave la situazione dicolui che si trova nella difficile situazione di dover comporre un testo scritto daun altro autore che ha usato uno strumento ldquoscrittoriordquo diverso da LATEX

Occorre convertire il formato dei testi sorgente per introdurli nellrsquounicomaster file del documento LATEX o piugrave frequentemente per creare nuovi file dafar leggere al master file

Lrsquoevento piugrave frequente egrave quello che richiede di aggiungere il mark-up di LATEXin un file relativo ad un documento scritto inizialmente con un word processor

Naturalmente potrebbe anche succedere di dover fare conversioni opposte daLATEX ad un altro formato Qui non si tratteranno queste conversioni ci si limitaa citare il programma TeX4ht generalmente facente parte di ogni distribuzionedel sistema TEX non minimale o di base Questo programma puograve convertire nelformato HTML un documento scritto con il mark-up della versione standard diLATEX cioegrave che non faccia uso di pacchetti di estensione generici in particolareche non faccia uso di macro personali del compositore Chi lrsquoha usato ne diceun gran bene ma sottolinea la limitazione fondamentale che il file da convertiredeve essere strettamente conforme al linguaggio LATEX di base qual egrave descrittonella guida di Lamport [29]

Drsquoaltra parte questa Introduzione tratta della composizione tipografica conLATEX quindi appare del tutto ragionevole esaminare come si possa creare undocumento compilabile con pdflatex partendo da una varietagrave di documenti divaria origine

221 Conversione manualeLa conversione manuale si puograve dire che richieda non poca fatica ma egrave applicabilequalunque sia lrsquoorigine dei documenti da comporre assieme Di solito si trattadi documenti scritti facendo uso di un word processor come Microsoft WordStarOffice Writer o il Writer della collezione OpenOfficeorg (fratello di StarOfficema con le caratteristiche del software Open Source) potrebbero essere documentiin formato PDF oppure documenti in rete in formato HTML potrebbero essere

407

408 CAPITOLO 22 COMPORRE DA DOCUMENTI ESTERNI

scansioni di documenti stampati potrebbero essere persino dei manoscritti nelsenso letterale del termine documenti scritti a mano Insomma il formato delleinformazioni da elaborare puograve essere veramente eterogeneo

Mentre un documento Word o Writer potrebbe venire convertito facendo usodi opportuni programmi gli altri formati potrebbero essere difficili da elaborarein modo automatico per altro esistono diversi strumenti che consentono dieseguire alcune operazioni preliminari che facilitano non poco lrsquoelaborazionemanuale

Per i documenti HTML o si toglie il mark-up specifico di quel formato oppurebisogna convertire il file HTML in un altro file con il formato XML o anche doce poi procedere con i programmi che verranno esaminati nei prossimi paragrafi

I documenti scanditi1 possono essere elaborati attraverso un apparato eun programma di Optical Character Recognition (OCR) sostanzialmente siscandisce di nuovo una stampa del file grafico frutto della prima scansioneordinando allo scanner di eseguire il riconoscimento dei caratteri il risultato puograveessere molto buono o decisamente deludente dipende da quanto era stata accuratala prima scansione e dipende molto dal tipo di caratteri usati il riconoscimentoautomatico riesce meglio con certi caratteri piuttosto che con altri In ogni casoil file in formato txt (da preferire anche se lo scanner puograve produrre ancheun file in formato doc) contiene molti errori di ortografia dovuti al mancatoriconoscimento di certi caratteri e quindi richiede di essere rivisto e corretto conattenzione

Le immagini presenti nella scansione originale possono solitamente venireestratte sperando di non degradare troppo la loro qualitagrave altrimenti devonovenire eseguite ex novo tutte le immagini costituite da disegni al tratto mentreper le fotografie o si puograve accedere agli originali oppure bisogna accontentarsiPer altro questo egrave un problema comune anche quando si deve trasformare un fileoriginario in formato doc

Comunque ultimati questi preparativi possiamo supporre di avere a dispo-sizione il testo da trasformare in formato di testo semplice oppure di testoformattato contenente eventualmente immagini tabelle formule cambiamentidi stile dei font cambiamenti di margini e simili il testo insomma potrebbeessere in formato txt oppure doc o rtf oppure pdf sigrave anche in formatoPDF ogni visualizzatore di questo formato anche il semplice Adobe Readerpermette di selezionare il testo e di copiarlo per incollarlo altrove bisogna sem-plicemente scegliere dalla barra superiore lo ldquostrumentordquo per selezionare il testogeneralmente caratterizzato da una icona a forma di T

Qualunque metodo si usi per trasformare il file bisogna ricordarsi che undocumento puramente testuale non contiene nessuna informazione descrittivadel testo un file formattato oltre al testo contiene informazioni solamenteriguardanti il modo di apparire non quello che esso rappresenta veramente ilsuo modesto mark-up contiene solo poche informazioni sulle immagini le tabellele formule i font ma raramente contiene informazioni sul tipo di contenuto

1Questo libro non egrave certo un modello di purezza linguistica tuttavia il curatore si rifiuta diusare scannerizzare oppure scansionare bencheacute siano i termini piugrave usati Il verbo scandire e ilsostantivo che ne deriva scansione rendono in italiano esattamente la stessa idea Il nomescansione era giagrave usato 50-60 anni fa per descrivere il movimento del pennello elettroniconei cinescopi per eccitare sequenzialmente tutte la particelle fotoluminescenti che avrebberoprodotto lrsquoimmagine televisiva Egrave esattamente il movimento del raggio luminoso che illuminasequenzialmente lrsquoimmagine da scandire nellrsquoapparecchio che ha il nome tecnico inglese discanner ma per il quale il sostantivo italiano scanditore farebbe ridere tutti

221 CONVERSIONE MANUALE 409

di un brano di testo diversamente da come fa LATEX Questo significa chequeste informazioni vanno aggiunte a mano dalla persona che si occupa dellatrasformazione anche se per alcune parti di questa operazione si avvale distrumenti automatici questi faranno il possibile ma certamente non potrannoaggiungere informazioni che dipendono dalla comprensione del testo se non sonocomprese nel mark-up interno del documento Bisogna ricordarsene anche quandosi discuteragrave della conversione ldquosemiautomaticardquo

Ciograve premesso e ben consci del lavoro necessario per una buona conversionevediamo come eseguire la conversione completamente manuale

2211 Copia e incollaSembra semplice dire che si esegue la trasformazione manuale con la tecnica delcopia e incolla concettualmente non crsquoegrave nientrsquoaltro da fare ma ci sono alcuneoperazioni che conviene tenere presenti

1 Bisogna predisporre o un master document o comunque una intelaiaturadel file LATEX nel quale avverragrave la conversione dalla dichiarazione dellaclasse alla specificazione dei pacchetti che si intende o si prevede di doverusare fino allrsquointelaiatura dellrsquoambiente document da riempire via via con iltesto da comporre Se occorressero altri pacchetti li si puograve sempre invocarein un secondo tempo ma egrave meglio aver studiato prima il documento daconvertire per farsi un piano di lavoro destinato agli interventi da eseguire

2 Conviene procedere un capoverso alla volta lo si copia dalla finestra dellrsquoap-plicativo che consente di visualizzare il formato del documento da convertiree lo si incolla nella finestra di input del file LATEX Se crsquoegrave qualche interventoda fare lo si esegue subito per esempio per mettere in enfasi alcune paroleintrodurre le virgolette giuste o i caporali giusti eventualmente cambiandole virgolette copiate (vedi piugrave avanti i cambiamenti necessari per i caratterinon ASCII) eseguire lrsquoimpostazione delle formulette matematiche in lineae simili piccoli interventi che proprio percheacute piccoli sfuggirebbero se sicopiasse lrsquointero documento in un colpo solo

3 Per le figure bisogna estrarle dal documento se non si dispone di fileappositi nel caso della composizione di un testo ldquonuovordquo tutta questaoperazione potrebbe essere dovuta allrsquoautore che non conosce LATEX eche consegna al compositore il testo scritto per esempio con Word epur avendo inserito le figure nel file doc ha consegnato al compositoreanche le foto e le altre illustrazioni mediante file appositamente allegati Senon fosse cosigrave il compositore risparmieragrave molto tempo se richiede questomateriale allrsquoautore ricordando che per il materiale a matrici di pixel comele fotografie la densitagrave di punti al pollice deve essere almeno di 300 dpi

Se invece non si dispone delle illustrazioni originali estrarle dal documentovuol dire perdere enormemente in dettaglio e si egrave fortunati se si riesce adestrarre immagini a 100 dpi la qualitagrave scende vistosamente approssimati-vamente in proporzione al quadrato del rapporto delle densitagrave scendereda 300 dpi a 100 dpi vuol dire perdere in qualitagrave di un fattore di circa 10volte

410 CAPITOLO 22 COMPORRE DA DOCUMENTI ESTERNI

4 Per le tabelle si puograve procedere sia ricomponendo ogni tabella cella percella reimpostandola in modo piugrave professionale oppure la si puograve copiareintegralmente e dopo averla incollata se il proprio shell editor lo consentesi possono eseguire le sostituzioni di tutti i caratteri ltTABgt (ASCII 09)con il carattere amp ricorrendo alle regular expressions un modo avanzato diusare gli shell editor che consente di fare delle correzioni selettive anchemolto elaborate Bisogna poi marcare i fine riga della tabella con eeventualmente inserire qualche filetto

5 Per le formule nel testo si egrave giagrave detto per quelle in display o le si ricomponea mano partendo da zero oppure puograve succedere che lrsquoequation editor usatoper comporre il file da trasformare abbia salvato oltre allrsquoimmagine dellaformula anche il codice usato per comporla allora conviene copiare questocodice che spesso e volentieri egrave codice TEX o gli assomiglia molto Lacollezione di programmi da ufficio OpenOfficeorg dispone di un plug inche mette a disposizione dellrsquoutente un equation editor basato su LATEX ilcodice LATEX quindi puograve essere copiato e incollato direttamente Se si hala competenza per farlo si possono anche correggere gli errori delle formuleda trasferire sul documento LATEX sempre prendendone nota e informandolrsquoautore per chiedere conferma della correttezza della correzione Se noncrsquoegrave autore a cui chiedere al massimo si puograve ripetere la formula originalesenza correzione inserendo la formula corretta in nota accompagnata dauna frase adeguata

6 Le note vanno copiate e incollate durante la lavorazione dei singoli capoversiegrave molto piugrave difficile inserire le note alla fine dopo aver sistemato lrsquointerotesto non egrave complicato percheacute basta incollare il testo della nota fra le duegraffe che delimitano lrsquoargomento di comando footnote

Egrave molto piugrave delicato convertire le note di tipo umanistico per i riferimentibibliografici come egrave noto gli umanisti sono soliti annotare i riferimentibibliografici in calce alla pagina usando il meccanismo delle note questomeccanismo per conservare spazio usa spesso abbreviazioni di tipo Ibidemoppure loc cit per riferirsi allrsquoopera citata immediatamente prima oppurenon sequenzialmente ma nella stessa pagina Queste note vanno trattatecon comandi cite ben congegnati e in accordo con gli appositi stilibibliografici per la bibliografia Di conseguenza questo genere di note vaconvertito avendo bene chiaro in mente il tipo di stile bibliografico e il tipodi citazione in modo da usare il pacchetto adatto ad affrontare questo tipodi composizione

7 Per i caratteri non ASCII si puograve procedere capoverso per capoverso oppurealla fine dellrsquointroduzione dellrsquointero testo da convertire qui le esigenze sonoopposte a quelle suggerite sopra per procedere un capoverso alla volta Infat-ti i caratteri da convertire sono sorprendentemente numerosi specialmentequando si converte un file originariamente scritto in formato doc

Naturalmente egrave possibile affrontare il problema con un opportuno encodingdei caratteri in input e un altrettanto opportuno encoding del font concui comporre Probabilmente questo egrave un caso in cui usando sia per il file

221 CONVERSIONE MANUALE 411

sorgente sia per il font da usare in uscita lrsquoencoding utf-82 si risparmiamolto lavoro Chi scrive ha giagrave convertito un numero non indifferente didocumenti lavorando ldquoa manordquo ma ha sempre evitato di usare la codificautf-8 I motivi sono molteplici alcuni giustificati altri difficili da spiegarenel senso che si potrebbero riassumere nellrsquoantico proverbio ldquoChi lascia lavia vecchia per la nuova sa quel che lascia e non sa quel che trovardquo Nonmolto intelligente ma probabilmente nessuno egrave indenne da questo tipo diragionamentiTra le altre cose bisogna disporre di uno shell editor capace di gestire lacodifica utf-8 per molti anni chi scrive ha usato WinEdt che non erain grado di gestire questa codifica Oggi gli shell editor capaci di gestirequesta codifica sono numerosi tuttavia anche con questi editor non egrave banaleintrodurre i segni non presenti in tastiera egrave vero con questa codifica si puogravescrivere anche in cinese ma bisogna disporre di una adeguata interfacciaper scegliere gli ideogrammi da inserire nel testo in modo che non sianecessario ricercare lrsquoideogramma voluto in una enorme tabella che elencale decine di migliaia di ideogrammi disponibiliQuesto problema egrave molto ridotto con gli alfabeti latini tuttavia anchecon questi alfabeti i segni non letterali o paralfabetici che potrebbe esserenecessario gestire sono molto numerosi Un breve elenco non guasta

bull lrsquoapostrofo spesso egrave un carattere speciale leggermente inclinato nonverticale come appare sullo schermo quando si usano i caratteri ASCII

bull Le virgolette alte sono spesso virgolette simmetriche () invece cheasimmetriche (ldquo e rdquo) talvolta sono correttamente asimmetriche masono rappresentate dagli appositi caratteri non ASCII che general-mente non sono accettabili direttamente con un encoding come quellosuggerito in tutto questo testo (latin1) esse vanno quindi convertitenelle apposite sequenze delle legature lsquolsquo e rsquorsquo oppure sostituite conmacro che svolgano correttamente il loro lavoro dietro le quinte

bull Non egrave il caso di preoccuparsi per gli apici delle note questi vengonodirettamente sostituiti e rigenerati quando viene usato il comandofootnote

bull Sono invece da gestire adeguatamente gli apici di nota eseguiti me-diante caratteri paralfabetici come lrsquoasterisco la spada la doppiaspada eccetera in questi casi conviene ricorrere ad appositi pacchettiche consentono di gestire agevolmente la composizione delle note Ladocumentazione fornita con il sistema TEX offre diversi pacchetti eognuno sceglieragrave quello che risulta maggiormente adatto alle proprieesigenze

bull Talvolta egrave presente il segno dei gradi piugrave raramente le frazioni abarra del tipo 12 34 e simili Il segno dei gradi potrebbe risultarecompatibile con lrsquoencoding latin1 ma si ritiene che per ldquopuliziardquo siameglio renderlo correttamente con la sua rappresentazione mediante

2La codifica in input per usare lrsquoencoding utf-8 egrave ottenuta specificando lrsquoopzione utf8 perlrsquouscita sarebbe preferibile usare font codificati in UNICODE per questo egrave molto meglio usareil programma X ETEX oppure luatex che gestiscono direttamente i font contenenti piugrave di 256caratteri le versioni come X ELATEX e lualatex che contengono la parte La sono generalmentecompatibili con il mark-up di LATEX

412 CAPITOLO 22 COMPORRE DA DOCUMENTI ESTERNI

i segni disponibili con LATEX che dispone di textdegree per lacomposizione testuale e ^circ per la matematica si egrave giagrave espostonei capitoli precedenti come definire nuovi comandi che consentanodi automatizzare la scelta fra modo testo e modo matematico Peraltro se si parla di gradi Celsius3 C bisogna correttamente inserirelo spazio fine che invece non bisogna inserire quando si parla di gradildquoangolarirdquo si confronti lrsquoangolo di 30 con la temperatura di 30 C

bull Gli apici a e o degli ordinali femminili e maschili vanno sostituitianche questi con gli appositi comandi disponibili con lrsquoopzione italiandi babel apa e apo

bull I deponenti (e i rari ascendenti) da comporre con un carattere noninclinato in modo matematico vanno comunque corretti tutti quantiegrave difficile che chi ha scritto un documento con Word o con Writerabbia avuto lrsquoattenzione di distinguere con il font giusto i deponentiattributivi dai pedici letterali ldquovariabilirdquo questa correzione comunquenecessaria richiede la comprensione della matematica da parte delcompositore

bull Certamente si possono presentare altri caratteri non ASCII nei filesorgente ma quelli piugrave frequenti sono quelli illustrati sopra Per altronon bisogna preoccuparsi delle lettere accentate che a rigore nonsono ASCII percheacute solitamente esse non appaiono come incompatibilinella finestra di editing se lo fossero le parole che le contengonorisulterebbero marcate come ortograficamente errate quindi vi si puograveintervenire caso per casoA chi scrive non egrave mai capitato di dover intervenire per le vocali ac-centate della lingua italiana (salvo lrsquoeventuale correzione degli accentigravi o acuti per la lettera lsquoersquo dove precise norme prescrivono lrsquouno olrsquoaltro accento) ma potrebbe verificarsi in lingue diverse dallrsquoitalianooppure piugrave subdolamente in parole straniere inserite in un contestoitaliano percheacute in questi casi il correttore le dagrave comunque ortografi-camente errate (di solito i correttori ortografici sono impostati peruna sola lingua alla volta) e non egrave immediatamente chiaro se la cosasia solo dovuta ad una parola non appartenente alla lingua di defaultoppure se sia dovuta alla presenza di una lettera con diacritici chenon corrisponde allrsquoencoding preimpostato in questi rari casi si puograveprocedere senza preoccuparsi dellrsquoesito della composizione durante lacompilazione eseguita con pdflatex se il segno non ASCII non egrave rico-nosciuto dalle definizioni corrispondenti allrsquoopzione data al pacchettoinputenc viene segnalato un warning in corrispondenza del caratterenon riconosciuto ed esso viene sostituito con un punto interrogativodi conseguenza prima di eseguire nuovamente pdflatex basta sostituirela lettera incriminata con la sua definizione esplicita mediante gliappositi comandi per gli accenti e i diacritici in particolare

3Qui si egrave barato un pochino nel file che contiene le macro specifiche per la composizionedi questo testo si sono usati comandi diversi per la composizione testuale dei gradi Celsiustextcelsius e $^circmathrmC$ C per la matematica Si osserva che i due segnisono leggermente diversi negli esempi qui riportati si egrave sempre usato il segno matematico resoil piugrave possibile simile a quanto si ottiene con il segno testuale

221 CONVERSIONE MANUALE 413

Dovendo citare la locuzione irlandese4 Riacute Teamrac bisogna scrivereesplicitamente Riacute Teamrac percheacute altrimenti i caratteri pun-tati vengono sostituiti con punti interrogativi (Teara) in quantoincompatibili con lrsquoencoding latin1 con cui egrave stato composto questotesto

Per la conversione di questi caratteri indipendentemente dalla capacitagravedellrsquoeditor di gestire caratteri diversi da quelli corrispondenti al suo encodingimpostato basta copiare una qualunque istanza del carattere da sostituireinserirla nel campo di ricerca della finestra ldquocerca e sostituiscirdquo e inserire iltesto o il carattere o la macro sostitutiva nel campo di sostituzione per poieseguire una sostituzione globale Di solito questa operazione da ripetereper ogni carattere non ASCII egrave risolutiva anche se non guasta controllareuna seconda volta che cosa sia stato effettivamente sostituito e doveNel fare queste operazioni di sostituzione e di correzione si inserisconoanche nei successivi capoversi o nelle successive sezioni del testo ricompostotutte le informazioni di mark-up necessarie le etichette per le informazioniincrociate i comandi per la generazione degli indici e delle varie liste dioggetti flottanti bisogna dunque aggiungere con la sintassi di LATEX quelleinformazioni che non potevano essere contenute dentro i file di puro testoo formattati secondo il formato doc

Lrsquoesecuzione del programma pdflatex non dagrave piugrave problemi di quelli che si hannonella prima esecuzione di un qualunque file sorgente certamente comparirannodelle cose non errate sintatticamente ma che non corrispondono esattamenteal quel che si desiderava comporre certamente bisogneragrave agire sugli oggettiflottanti per trovare loro una posizione conveniente in relazione ai parametri dicollocamento automatico di cui si egrave parlato negli appositi capitoli Ma questiproblemini sono quelli che si incontrano sempre con qualunque documentocomplesso

Per evitare di dover ricercare grossi errori come per esempio lrsquoassenza diuna graffa chiusa o della fine di un lungo ambiente di qualunque tipo convienecompilare il documento ogni pochi capoversi non necessariamente ad ognicapoverso aggiunto al file in lavorazione ecco percheacute si egrave consigliato di convertireun capoverso alla volta per apportare le modifiche di poco conto mentre lacompilazione ad ogni gruppo di capoversi due o tre pagine alla volta permettedi scovare le imperfezioni di piugrave largo respiro e di eseguire le conversioni deicaratteri non ASCII meno frequentemente che non un capoverso alla volta

Chi scrive ha convertito un certo numero di libri in questa maniera un paiodi questi libri erano atti di congressi o di simili conferenze di argomento tecnicoscientifico Specialmente per questi ultimi i cui contributi erano stati scritti daogni presentatore di memorie ma con stili tutti diversi con abilitagrave piugrave o menograndi nellrsquouso di Word o di Writer con competenze di vario livello in meritoalle immagini allegate ai loro lavori con formule composte spesso in violazione

4Questa locuzione egrave stata ripresa dal testo di Peter Flynn [17] In quel testo Flynn diceanche che non esiste una chiave di tastiera che consenta di inserire una lsquoirsquo priva di puntino e cheperciograve bisogna usare la sequenza i questo egrave vero per la lingua celtica usata in Irlanda e per lalingua turca per le lsquoirsquo accentate questo era vero fino ad una decina di anni fa quando per tuttii diversi encoding egrave stato dichiarato che la macro dellrsquoaccento seguita da una lsquoirsquo ldquonormalerdquo (colpuntino) produce direttamente e correttamente la lsquoirsquo accentata con lrsquoaccento che sostituisce ilpuntino Forse non egrave vero con tutti i possibili accenti ma certamente lo egrave per i piugrave comuni

414 CAPITOLO 22 COMPORRE DA DOCUMENTI ESTERNI

di ogni possibile norma di scrittura della matematica tecnico scientifica e senzaservirsi di equation editor validi hanno presentato notevoli problemi sicuramentenon sarebbe stato possibile eseguire nessuna conversione in forma automatica osemiautomatica

222 Conversione automatica

2221 Documenti in formato doc

Chi scrive ha provato ad usare programmi come rtf2latex2e qualunque wordprocessor come Word o Writer puograve aprire un documento in formato doc esalvarlo in formato rtf (Rich Text Format) Il programma citato rtf2latex2escaricabile dalla rete per i tre sistemi principali sembra che consenta di tra-sformare qualunque documento RTF gestendo anche le figure e trattando leeventuali formule in esso contenute come immagini Lrsquoesperienza individuale puograveessere molto varia con questo programma e chi scrive non egrave riuscito ad otteneregrancheacute probabilmente per sua inesperienza

Esiste anche un plug-in per Microsoft Word che si chiama word2tex usabilesolo su piattaforme Windows dagli archivi ufficiali ctan egrave scaricabile un pro-gramma eseguibile con lo stesso nome ma datato 1988 quindi vecchiotto chedovrebbe fare le stesse cose In rete crsquoegrave questo plug-in commerciale aggiornato al2008 nella forma di uno shareware la cui licenza singola da pagare dopo i 30giorni di prova non egrave proprio a buon mercato ma sembra che ne valga il costospecialmente se si esegue la conversione Word minusrarr LATEX con una certa frequenzaLe prove che chi scrive ha visto giagrave eseguite da altri5 sembrano eccellenti ilcodice LATEX egrave corretto e senza sbavature anche se in realtagrave si deve eseguirequalche piccolissimo intervento a mano per dare qualche piccolo ritocco il fileconvertito perograve egrave subito compilabile e il documento prodotto a parte i font equalche altro piccolissimo dettaglio egrave sostanzialmente identico allrsquooriginale

Il plug-in word2tex si presenta nei menugrave di word come una opzione delcomando Salva con nome dove fra gli altri formati compare anche il formatoTEX (in realtagrave vuol dire LATEX) se il file sorgente contiene figure o equazioniqueste vengono correttamente convertite in modo compatibile se sono presentisulla macchina Windows delle librerie dinamiche sufficientemente recenti tuttaviaper questi dettagli egrave meglio leggere la documentazione sul sito ufficiale httpwwwchikriicom

Invece i programmi per Linux AbiWord e Kword possono aprire un documentodoc e salvarlo (ldquoSalva con nomerdquo) in formato tex con il mark-up di LATEX Egravechiaro che questi programmi essendo nativi di Linux e specialmente il secondoessendo legati al desktop KDE funzionano solo su macchine Linux6 in ognimodo nessuno vieta di installare su una macchina Windows il programmaCygWin che serve per simulare un ambiente UNIX su una macchina Windows esuccessivamente installare dentro questo ambiente di simulazione uno dei dueprogrammi in questione Sulle macchine Mac con il sistema operativo OSX nonci sono particolari problemi o si scarica lrsquoapposito programma di installazione

5Chi scrive lavora su un Mac ma il plug-in descritto qui non egrave installabile nella versione diMicrosoft Word per Mac

6Sembra che AbiWord offra anche una versione adatta alle piattaforme Windows permaggiori informazioni si veda nel sito Internet di AbiWord

222 CONVERSIONE AUTOMATICA 415

per Mac oppure si scarica il file sorgente e si genera lrsquoapplicazione compilandoil file sorgente questo egrave uno dei vantaggi conseguenti allrsquoadozione del sistemaUNIX da parte della Apple Quindi in sostanza i due programmi nominati sonousabili su tutti e tre i sistemi operativi maggiori

Tuttavia alla data odierna (marzo 2010) chi scrive ha provato ad usareentrambi i programmi summenzionati su una macchina Linux dotata di sistemaoperativo Ubuntu 910

Con AbiWord si egrave aperto un primo file doc che il programma ha importatodirettamente senza problemi lo si egrave salvato in formato LATEX si egrave aperto questonuovo file ma la conversione non ha dato luogo ad una compilazione correttae lrsquointervento a mano per renderlo compilabile egrave stato decisamente pesante Siegrave aperto un altro file dello stesso formato questa volta un poco piugrave complessocontenente anche lrsquoindice generale Di nuovo lrsquoediting per renderlo compilabilecon pdflatex ha richiesto non poco lavoro Il motivo principale egrave che il filedoc originale era stato composto su una macchina Windows il cui fine riga egravecaratterizzato da due byte uno indica di andare a capo e lrsquoaltro di iniziare unanuova riga Nelle macchine UNIX i file di testo hanno il fine riga marcato da unsolo byte quello di inizio di una nuova riga Bencheacute AbiWord mostri correttamentesullo schermo il contenuto del file doc quando lo converte in formato LATEXsi comporta come se non riconoscesse entrambi i byte di fine riga del formatoldquoWindowsrdquo ma ne riconosce uno solo e racchiudesse lrsquoaltro in un ambienteflushleft questo succede specialmente nelle parti preliminari del documento chehanno diversi spazi verticali fra capoversi introduttivi Certo sapendolo si sache bisogna cancellare un grande numero di questi ambienti contenenti solo unariga vuota ma richiede del tempo e molta attenzione per essere sicuri di noncancellare ldquotroppordquo Bisogna in ogni caso modificare le impostazioni di defaultdel preambolo e molte righe di mark-up interne Fattibile ma faticoso

Con Kword le cose sono simili ma leggermente migliori il dialogo che ilprogramma apre per svolgere la conversione richiede diverse indicazioni checonsentono anche di scegliere lrsquoencoding del file sorgente La scelta della linguaprincipale del documento non sembra avere effetto mentre con AbiWord non crsquoegravepersonalizzazione e la lingua di default egrave comunque lrsquoinglese Entrambi specificanoil formato americano letter per la carta ma egrave immediato modificarlo in A4

Insomma entrambi i programmi eseguono la conversione ma entrambi pro-ducono in uscita dei file LATEX che richiedono non poco lavoro per renderlicompilabili

Chi scrive ha usato anche altri programmi di cui si parla nelle FAQ britannichema i risultati non sono stati per niente soddisfacenti

Non bisogna stupirsene piugrave di tanto i file doc non contengono nessunainformazione in merito alla struttura del documento ma contengono informazioniin merito solamente allrsquoaspetto visuale del testo quindi anche se questi programmiconvertono il file dal formato doc al formato tex con il mark-up di LATEX i filecosigrave prodotti richiedono non poco lavoro per produrre dei documenti compostitipograficamente in modo corretto

Per la componente Writer di OpenOfficeorg esiste lrsquoestensione Writer2LaTeXche non egrave installata di default ma ogni utente di OpenOfficeorg sa come reperiladal sito ufficiale di quella suite scaricare questa estensione e installarla egrave unaquestione di pochi click una volta installata lrsquoestensione la voce ldquoExportrdquo delmenugrave ldquoFilerdquo consente di esportare il file in formato LATEX una finestra di dialogoviene aperta per specificare le impostazioni di default

416 CAPITOLO 22 COMPORRE DA DOCUMENTI ESTERNI

Il file da convertire (chi scrive ha provato a convertire un file con indirizziinternet liste e sezionamenti) viene convertito perfettamente e pdflatex lo compilasenza errori conservando abbastanza bene lrsquoaspetto che il testo aveva nel formatodoc la lingua viene riconosciuta correttamente cosigrave come i caratteri specia-li accettati come caratteri non ASCII che vengono riconosciuti nellrsquoencodinglatin1 Se crsquoegrave qualche modesta critica da fare egrave quella che viene caricato ungran numero di pacchetti esterni molti dei quali servono solo per riconoscerecaratteri che la maggior parte delle volte non sono stati effettivamente usatinel file sorgente Inoltre lrsquoapostrofo viene sempre convertito in una virgolettasemplice alta di chiusura ma tutto sommato non egrave difficile sostituire la stringatextquoteright in un semplice apostrofo quale quello che si ottiene dallatastiera questa sostituzione perograve egrave solo estetica percheacute la sua omissione nonproduce danni di nessun genere salvo rendere leggermente piugrave faticosa la letturadel file sorgente7 Generalmente bisogna anche cambiare il formato della cartada letterpaper a a4paper Per il resto questo convertitoreesportatore dalformato doc al formato tex sembra eccellente

Merita aggiungere che gli sviluppatori di Writer2LaTeX stanno lavorando suuna ulteriore estensione Writer4LaTeX che egrave giagrave inclusa nella versione ldquobetardquodella prossima versione 12 di Writer2LaTeX e che dovrebbe integrare completa-mente Writer con LATEX (latex e pdflatex) in modo da svolgere le funzioni di shelleditor per LATEX insomma in un certo senso svolge le funzioni di LYX con unsuo formato di default e con la possibilitagrave di compilare direttamente con latex opdflatex e di visualizzare direttamente il frutto della composizione senza uscireda Writer Il messaggio che sul sito httpwriter2latexsourceforgenetindex4html accompagna le altre informazioni su questa nuova estensione ri-chiama ancora una volta che sia Writer sia LYX hanno delle capacitagrave limitate(a finite feature set) ma che lrsquoutente esperto puograve sia con LYX sia con Writerinserire codice in linguaggio TEXLATEX in modo da sopperire alle limitazionidel programma usato per la predisposizione del file sorgente

Il sito Wiki di LYX httpwikilyxorgToolsWord2LyXMacro contienealcune macro Word che permettono a Word (2007 e 2000) di ldquoautoconvertirerdquo undocumento doc in un corrispondente documento lyx questo puograve venire apertocon LYX ed essere salvato in formato tex con il mark-up di LATEX chi scriveha provato a montare il file con le definizioni delle macro Word sulla versioneMac di questo programma (Microsoft Office 2004) ma lrsquoesperimento egrave fallitobencheacute le macro siano state salvate e correttamente individuate dal programmaesse non hanno dato luogo che a un errore grave Tuttavia lrsquoinsuccesso egrave dovutoad una incompatibilitagrave del set-up della suite Microsoft Office per Mac con ilcorrispondente set-up su una macchina Windows Infatti su questa macchinala stessa procedura di installazione (Word XP) dagrave luogo a macro eseguibili checonvertono correttamente il file doc in un file lyx Aprendo il file con LYX esalvandolo in formato tex con il mark-up di LATEX si osserva una conversionequasi perfetta subito compilabile senza errori significativi

Gli ldquoerrorirdquo sono in realtagrave impostazioni non desiderate nel preambolo Peresempio il pacchetto hyperref egrave caricato con lrsquoopzione dvipdfm mentre sarebbe

7Per altro chi scrive si egrave rivolto al creatore di questa estensione per segnalargli questoinconveniente egli ha prodotto una versione ldquosperimentalerdquo che lo scrivente ha ha avuto adisposizione prima della distribuzione ufficiale e questo inconveniente relativo allrsquoapostrofo nonsi presenta piugrave probabilmente quando il lettore leggeragrave questa nota in rete saragrave disponibile laversione ufficiale modificata

222 CONVERSIONE AUTOMATICA 417

meglio che questa opzione sia presente solo nel file da compilare con latex noncon pdflatex basta cancellare lrsquoopzione Curiosamente viene impostato lrsquoencodingdel file sorgente con lrsquoopzione latin98 ma non egrave un problema se lo si desideracambiare lrsquoopzione in latin1 Ancora viene usata di default una classe dellacollezione KOMA-script ma viene specificata come opzione globale di default lalingua inglese Come si vede piccole cose che possono venire modificate in modosemplicissimo

Si tenga presente che la macro Word che usa questo procedimento nonconverte le equazioni queste vanno quindi reintegrate a mano Non solo male figure eventualmente presenti nel file doc non devono essere effettivamenteincluse ma devono essere collegate con un link cioegrave vengono rese visibili neldocumento originale mediante un link alla loro posizione nella cartella doverisiede il file doc attraverso il comando di menugrave LinkToFile

2222 Documenti in formato PDFBisogna ancora ricordare che AbiWord e Kword possono aprire o importaredocumenti PDF una volta aperti questi documenti possono venire salvati informato tex adatti al mark-up di LATEX Va da seacute che dai documenti PDF non siriescono a convertire adeguatamente le formule quindi queste vanno ricomposteoppure trattate come detto qui di seguito

Uno dei vantaggi di usare un file PDF da cui partire specialmente se lrsquoautoreha incluso le figure partendo da file adatti con una definizione sufficientementeelevata egrave che queste figure talvolta possono venire estratte ma che comunquepossono venire ritagliate dalla pagina PDF dove compaiono lo stesso si puograve fareper le formule se queste sono state composte correttamente e con i font ldquogiustirdquocioegrave che non stonino con i font del documento

Puograve darsi che lrsquooperazione si possa fare nativamente anche con altri program-mi ma sui Mac OS X il programma Preview (Anteprima se il sistema operativoegrave in italiano) permette di selezionare una parte di pagina per esempio unafigura o una formula di copiarla nel ldquoclipboadrdquo e poi agendo sulla voce delmenugrave File ldquoNew from clipboardrdquo incollare quanto si era copiato in un nuovofile che puograve venire salvato in qualunque formato fra i tanti di cui il programmaegrave dotato in particolare in formato PDF dando al file un nome adeguato que-sto puograve poi venire incluso nel documento in lavorazione con il solito comandoincludegraphics giagrave descritto nei capitoli precedenti Il programma Previewconsente di scontornare lrsquoimmagine prima di salvare il file per cui una voltaterminata lrsquooperazione quanto deve venire incluso egrave giagrave pronto senza bisogno diricorrere alle operazioni di ldquocroppingrdquo giagrave descritte nei capitoli precedenti

Ovviamente questa operazione di taglia e incolla delle figure e talvolta delleformule puograve essere eseguita anche con disegni o altre forme di illustrazioniprodotte da altri programmi Chi scrive solitamente usa questo metodo perestrarre i diagrammi di vario genere da file prodotti con excel il risultato egravesolitamente molto buono Anche se questa non egrave una operazione per convertireil formato di un documento egrave pur sempre un tipo di operazione che occorre farespesso quando si compongono documenti il cui materiale ha provenienze diverse

8Lrsquoopzione latin9 dovrebbe consentire lrsquouso immediato del simbolo dellrsquoeuro senza bisognodi ricorrere al pacchetto textcomp non egrave perograve chiaro in che ordine debbano essere specificatele chiamate ai vari pacchetti per cui si possono incontrare errori oppure lrsquoeuro viene sostituitoda un punto interrogativo

418 CAPITOLO 22 COMPORRE DA DOCUMENTI ESTERNI

Chi scrive non egrave al corrente di tutti i possibili programmi per aprire edelaborare file in formato PDF con le prestazioni di Preview appena descritte egliegrave al corrente del programma Skim sempre per il sistema operativo Mac OS Xche svolge le stesse funzioni di Preview ed alcune altre molto comode fra le qualila possibilitagrave di essere lsquosincronizzatorsquo con lo shell editor Ne esistono di sicuroanche per gli altri sistemi operativi ma egrave bene che ognuno se li cerchi e se liinstalli sapendo bene che cosa vuole ottenere

Una informazione interessante perograve egrave che dalla fine del 2009 la Sun Micro-systems ha messo a disposizione per il suo StarOffice e per OpenOfficeorg unprogramma di estensione chiamato pdfimport da installare come tutti gli altriplug-in di estensione per quei sistemi Con questa estensione installata sarebbepossibile importare file PDF nella sua versione Draw la parte di OpenOfficeorgdestinata ai disegni e i comandi di editing disponibili sono tali da poter introdur-re semplici correzioni (visto che senza un programma dedicato egrave molto difficile ndashparole della Sun ndash apportare modifiche ai file in formato PDF) Tuttavia unavolta importato il file e introdotto lrsquointero documento in un file del Writer diOpenOfficeorg non dovrebbe essere molto complicato esportare il file in formatoLATEX compatibile se egrave giagrave stata installata lrsquoestensione Writer2LaTeX

Chi scrive non ha materialmente provato questa strada sia percheacute a tuttrsquooggi(luglio 2010) il programma egrave distribuito come versione 10 ma forse sarebbemeglio considerarlo una versione beta avanzata sia percheacute apparentemente se lacosa funziona ogni riga vien salvata come una scatola o riga a seacute stante quindibisognerebbe eliminare moltissime dichiarazioni di ambiente Tuttavia anche sela cosa sembra richiedere un grosso lavoro vale la pena di tenerne conto percheacutein alcune circostanze potrebbe essere meglio che eseguire la conversione a mano

2223 Documenti in formato XMLDa diversi anni Microsoft Word puograve salvare i suoi documenti in una sua versionedi formato XML (eXtended Markup Language) lrsquoestensione dei documenti inquesto formato egrave docx dal 2003 il programma puograve salvare anche in formatoxml ma bisogna chiederlo esplicitamente al momento di salvare il documento

OpenOfficeorg Writer ha come formato standard lrsquoXML e i suoi file salvatiin questo formato hanno lrsquoestensione odt se si tratta di testo con poca o nullaformattazione oppure in formato sxw se si tratta di un documento strutturatoSiccome Writer puograve salvare anche nei formati della suite Microsoft Office Writerpuograve salvare anche nei formati docx e xml

Tra i programmi giagrave elencati bisogna ricordare che AbiWord puograve nativamenteaprire i file XML prodotti con qualunque estensione da Microsoft Word e daOpenOfficeorg Writer quindi puograve di fatto aprire qualunque versione standardo meno standard di documento XML e li puograve salvare in formato tex con ilmark-up LATEX

Anche Kword puograve aprire file con i formati XML di base o le variazioni diMicrosoft Word e di OpenOfficeorg Writer Anche Kword puograve salvare i suoidocumenti in formato tex con il mark-up di LATEX

Il programma LYX invece non apre questi formati XML in modo diretto egraveun peccato percheacute il codice LATEX prodotto da LYX egrave decisamente il migliore fraquelli ottenuti per conversione automatica

Perograve almeno sul Mac egrave disponibile o scaricabile dal sito di Microsoftlrsquoapplicativo Open XML converter che consente di convertire i file XML in formati

223 CONCLUSIONI 419

validi per versioni precedenti a quella del 2003 della suite Microsoft Office traquesti ovviamente crsquoegrave il tradizionale formato doc con il quale si puograve operarecome descritto nei paragrafi precedenti

Per altro i file in formato docx sul Mac possono venire aperti anche con lasemplice applicazione TextEdit che puograve salvare il file in formato rtf sul qualesi puograve operare come descritto nei paragrafi precedenti

Anche il potentissimo editor emacs puograve convertire i file XML in file adattia LATEX sembra anzi che esso abbia funzionalitagrave particolarmente avanzate chiscrive perograve non ne ha esperienza diretta ma si rifagrave solo a quanto Peter Flynnafferma nel suo testo [17]

Peter Flynn indica anche unrsquoaltra strada per convertire i file in formato XMLnel formato adatto a LATEX la procedura descritta da Flynn nel suo paragrafo1011 ldquoGetting LATEX out of XMLrdquo egrave abbastanza lunga da descrivere anchepercheacute Flynn scrive delle macro in XLM e le usa per convertire direttamente informato adatto a LATEX usando un programma chiamato Saxon un programmaJava per lrsquoelaborazione di documenti XSLT Secondo Flynn questo sarebbe ilmetodo migliore per eseguire le conversioni ma richiede delle capacitagrave drsquousodei PC che chi scrive ritiene molto superiori alla media degli utenti comunquemolto superiori alle sue capacitagrave

Merita ricordare il programma dblatex si tratta di un comando senza in-terfaccia grafica da lanciare da linea di comando esso apre i file in forma-to XML e li trasforma direttamente in file LATEX Esso gestisce conveniente-mente gli style sheets necessari per la conversione Esso puograve venire scaricatodal sito dblatexsourceforgenet e le istruzioni di lavoro sono in httpdblatexsourceforgenetdoc Esso egrave fornito di comandi di pre- e post-processing che consentono di eseguire tutte le operazioni per comporre il docu-mento o direttamente attraverso pdflatex o indirettamente passando attraverso ilformato PS Durante queste operazioni le figure per esempio vengono convertitenei formati richiesti da pdflatex o da latex (o meglio da dvips) In questo modochi converte il file XML si ritrova alla fine sia con il documento composto sia conun sorgente LATEX che puograve tranquillamente modificare per ottenere un tipo dicomposizione diversa Probabilmente questo pacchetto esegue le stesse operazionidescritte da Flynn e menzionate molto brevemente poco sopra ma le eseguein modo automatico senza o con poco intervento da parte del compositore Egraveinteressante notare che lrsquoautore di dblatex ha predisposto anche un programmaldquogemellordquo dbcontext per convertire i file XML in modo da poterli comporre conil programma context

223 ConclusioniCome si vede i processi per importare in documenti LATEX il contenuto didocumenti in formati diversi sono piuttosto complessi non tanto percheacute ci sianodelle operazioni difficili da eseguire quanto percheacute a tuttrsquooggi non esiste un modosolo unificato e corretto per mettere in un documento LATEX delle informazionitratte da altri documenti che sono privi di tutte le informazioni necessarie Nessunprogramma al di lagrave di alcune impostazioni di default puograve inventarsi che cosaaveva in mente chi ha scritto originariamente il documento iniziale

Va aggiunto che gli utenti dei word processor di solito non usano quelminimo di mark-up che programmi come Microsoft Word o OpenOfficeorg

420 CAPITOLO 22 COMPORRE DA DOCUMENTI ESTERNI

Writer consentono per esempio di scegliere gli header dallrsquoapposito menugrave Quegliheader sono necessari per eseguire automaticamente lrsquoindice del documento mala maggior parte dei documenti sono privi di indice e gli utenti preferisconoscrivere lrsquointestazione e poi cambiare il font e la serie con semplici click del mousepiuttosto che cliccare su un menugrave a discesa che offre una vasta scelta di headerma con poche spiegazioni di che cosa significhino quei termini Risultato ancheil miglior convertitore fa fatica a convertire in formato adatto a LATEX per cuiil compositore deve consumare un tempo notevole per correggere quello che ilconvertitore non ha saputo fare adeguatamente per trasformare un documentodi scarsa qualitagrave in un documento che vorrebbe essere di qualitagrave assai superiorema non puograve proprio per mancanza di informazione adeguata

Quando quindi bisogna produrre un documento di qualitagrave con LATEX par-tendo da numerosi contributi scritti con word processor diversi il compositoredeve armarsi di santa pazienza anche se ricorre a programmi di conversione cheperograve ricordiamolo bene non possono fare lrsquoimpossibile

Appendice A

Dove documentarsi

Invece di inserire un anonimo elenco bibliografico qui si cerca di esporre unalista ragionata di testi utili eo necessari per approfondire la conoscenza di LATEXe dei suoi fratelli Le indicazioni precise di ogni riferimento sono riportate nellabibliografia pagina 558

A1 Documentazione sulla tipografiaQuesta sezione avrebbe lrsquoambizione di fornire qualche idea sulla tipografia leconsuetudini tipografiche e il book design senza limitarsi alla consuetudiniitaliane Per ovvi motivi questa sezione egrave abbondantemente incompleta e lascelta dei riferimenti egrave frutto di un compromesso

Una breve guida sulle consuetudini della tipografia italiana egrave contenutanellrsquoarticolo di Gustavo Cevolani ldquoNorme tipograficherdquo [9]

Questo articolo ha senzrsquoaltro il pregio della concisione una decina di paginema egrave piuttosto completo e indica anche come le varie consuetudini tipograficheitaliane possono essere rese con i comandi e gli ambienti LATEX

Bencheacute abbia i suoi anni il manuale di Roberto Lesina [30] raccoglie in modoben strutturato un certo numero di consuetudini tipografiche e raccomandazionidi vario genere che molti scrittori tecnicondashscientifici considerano assai valide

Anche la documentazione accessoria della classe memoir [57] contiene nonpoche pagine di iniziazione alla tipografia e al book design Anche se il testoegrave in inglese e si riferisce principalmente alla tipografia inglese non mancanoriferimenti alla tipografia europea continentale di varie nazioni e di vari secoli

Precedentemente questa documentazione era contenuta nel manuale stessodi memoir [56] ma nel 2009 il curatore della documentazione ha ritenuto che iltesto fosse diventato troppo lungo e ha separato questo documento dal manualevero e proprio non viene installato insieme a TEX Live bisogna scaricarlo dahttpwwwctanorgtex-archiveinfomemdesign

Il testo elettronico di Peter Flynn [17] egrave sostanzialmente un guida allrsquouso diLATEX ma lrsquoautore egrave professore di Tipografia allrsquoUniversity College di Cork inIrlanda Fu lui il presidente e organizzatore della Conferenza Internazionale diCork dove furono gettate le basi per lrsquoencoding esteso T1 Data la professionedellrsquoautore il testo egrave particolarmente curato nella sua forma grafica e compositivaegrave vero ci sono delle convenzioni insolite per la tipografia italiana per esempio

421

422 APPENDICE A DOVE DOCUMENTARSI

i richiami delle note seguono la punteggiatura mentre nella maggior parte deilibri italiani i richiami di nota precedono la punteggiatura Tuttavia il tipodi composizione egrave piuttosto curata certamente puograve costituire un esempio daseguire

La Imprimerie Nationale francese lrsquoequivalente del nostro Poligrafico delloStato ha pubblicato un interessante libretto [36] Si tratta di una specie diglossario dove sono elencate in ordine alfabetico le varie parole che comportanocerte consuetudini tipografiche e viene specificato come quelle consuetudini sianoapplicate presso questo autorevolissimo ente

Tipica della tradizione tipografica francese egrave la spaziatura uniforme fra leparole indipendentemente da quali segni di interpunzione le separino questoeffetto con LATEX si ottiene con la dichiarazione frenchspacing Vale la pena disegnalare che questo tipo di spaziatura egrave quello di default quando viene compostala bibliografia in questo capoverso si egrave appunto specificata la spaziatura francese

Bisogna osservare che le tradizioni tipografiche francesi sotto certi aspettisono simili a quelle italiane e sotto certi altri sono molto divergenti non egrave solouna questione di lingua ma si tratta proprio di consuetudini una volta moltidecenni fa usate anche in Italia Per esempio i francesi inseriscono degli spaziprima di tutti i segni di interpunzione lsquoaltirsquo dai due punti al punto esclamativoe interrogativo in questo libretto per altro composto con cura a me pare assaisgradevole il fatto che lo spazio che precede questi segni sia piuttosto grandee suscettibile di essere ulteriormente allargato per giustificare le righe forse lasgradevole sensazione dipende dalla mancanza di abitudine Questa sensazionemi si ripresenta quando vedo i numeri romani usati come ordinali ma con ladesinenza ad apice come in lsquoLille est le siegravege de la IIe reacutegion militairersquo in italianosarebbe certamente scorretto mettere ad apice di un numero romano la desinenzadellrsquoaggettivo ordinale

Bisogna perograve ammettere che questo egrave uno dei pochi manuali di composizioneche tratta anche gli aspetti che non vengono mai trattati dagli autori piugrave famosiper esempio la composizione della matematica lrsquouso delle unitagrave di misura lascrittura della chimica anche quella organica con le sue formule di strutturaAnche in matematica la tipografia francese si distingue con particolaritagrave tuttesue tuttavia le indicazioni fornite in questo libro sono certamente una buonaguida anche per gli italiani

Abbastanza documentato e facile anche per i neofiti egrave il libro di MichaelMitchel e Susan Wightman [31] Esso copre tutti gli aspetti della produzione diun libro e dagrave indicazioni assai utili a chi vorrebbe fare o fa di professione il bookdesigner sia pure in un contesto britannico In realtagrave fuori dal Regno Unitocambiano i dettagli ma i problemi da affrontare per la produzione di un librosono praticamente gli stessi in ogni nazione Un dilettante legge volentieri questomanuale percheacute non egrave formato da una serie di prescrizioni ma egrave un susseguirsi didescrizioni dei vari aspetti inclusi quelli tipografici e compositivi naturalmentema egrave molto istruttivo Gli autori non fanno un mistero di avere usato un prodottoprofessionale e commerciale per la mise en page come direbbero i francesi masi sforzano di dare indicazioni per non vincolare il lettore allo stesso programmadi impaginazione Molti dei problemi da risolvere a mano con gli impaginatoriprofessionali sono risolti automaticamente con LATEX ma ce ne sono altri checon LATEX sarebbe molto difficile affrontare e risolvere Egrave utile domandarsi viavia ldquoQuesto con LATEX come potrebbe essere fattordquo

A2 DOCUMENTAZIONE SU LATEX 423

Fra i grandi book designer di questo secolo compare anche Robert Bringhurstegli ha scritto un piacevole libro [4] dal titolo significativo The Elements ofTypographic Style dove egli descrive i suoi principi tipografici e di book and pagedesign egrave incredibile come riesca a legare le proporzioni delle note musicali dellescale diatonica e cromatica con quelle delle figure geometriche e con quelle dausarsi in tipografia Nelle sue mani quei principi per la scelta delle proporzionidiventano davvero musica per gli occhi invece che per le orecchie ma con quellasobrietagrave che consente alla persona di gusto di apprezzarne le finezze discrete esobrie che perograve non si impongano fino a distrarre il lettore Leggendo questolibro e comprendendo appieno i principi tipografici di Bringhurst si capisce cheil book design di qualitagrave non egrave un gioco da dilettanti

Gli ultimi riferimenti sono testi in inglese egrave un peccato che non esistano o sianodifficili da trovare opere simili in italiano1 drsquoaltra parte egrave anche comprensibileche la pubblicazione di opere di questo genere in italiano per lettori italiani nonsarebbe remunerativo mentre lo egrave certamente se sono pubblicate in inglese per ilettori che usano lrsquoinglese come prima o anche come seconda lingua

Tra le opere italiane perograve si puograve citare il manuale di Giorgio Fioravanti[16] dal titolo Il manuale del grafico mdash Guida alla progettazione grafica eallrsquoimpaginazione del prodotto editoriale

Come dice il titolo questo libro egrave piugrave rivolto agli aspetti grafici piuttostoche a quelli compositivi penso che si tratti di una buona lettura ma certamentenon ha il respiro dellrsquoopera di Bringhurst o la copertura di argomenti di Mitchele Wightman Tuttavia merita notare la composizione moderna a gabbia su trecolonne dove spesso due delle colonne sono unite assieme cosigrave che le paginesono mosse e attraenti in questa apparente disomogeneitagrave la struttura graficasi adegua al contenuto senza perograve attrarre lrsquoattenzione su di seacute distraendo illettore dalla comprensione del testo

Si puograve citare anche il libro di Fabrizio Serra [41] lrsquoautore oltre ad essereproprietario e amministratore di un certo numero di aziende tipografiche egravestato anche professore di Composizione della stampa presso la Scuola direttaai fini speciali in Scienza ed Arti della Stampa ora divenuto il corso di laureain Progetto Grafico e Virtuale Le sue aziende si occupano specialmente manon esclusivamente di stampa di libri di collane e di periodici nellrsquoambito dellediscipline umanistiche Il libro di norme che Fabrizio Serra ha pubblicato siriferisce prevalentemente alla stampa di documenti testuali con numerosi insertiiconografici tabellari eccetera ma in genere senza espressioni matematicheIl libro contiene una prefazione una postfazione e una appendice scritte dapersonaggi importanti nellrsquoambito della tipografia e del book design basta citarefra tutti Jan Tschichold famosissimo book designer svizzero

A2 Documentazione su LATEXLa fonte iniziale di ogni sapere a proposito di LATEX standard egrave il manuale diLeslie Lamport [29]

Per leggere un testo introduttivo piugrave breve del manuale di Lamport si puogravericorrere al testo [58] inizialmente scritto in tedesco poi tradotto in molte linguefra le quali lrsquoitaliano la traduzione italiana egrave stata curata da un certo numero dimembri della associazione guIt

1Il testo di Bringhurst esiste anche in italiano ma bisogna ordinarlo in libreria

424 APPENDICE A DOVE DOCUMENTARSI

In italiano egrave appena uscito il testo di Lorenzo Pantieri e Tommaso Gordini[39] dal titolo simile a questo testo Lrsquoarte di scrivere con LATEX Egrave unrsquoottimaguida anche se egrave ancora in elaborazione tipograficamente parlando egrave molto piugravebella di questa Guida lrsquoautore infatti si egrave servito del pacchetto di estensioneClassicThesis che modifica le prestazioni delle classi della serie KOMA Scriptdi cui si egrave giagrave parlato producendo un layout assai elegante e composto con fontscelti con cura al di lagrave del contenuto interessantissimo e ben scritto anche lostile tipografico puograve costituire un buon modello a cui ispirarsi Invece in questaGuida si sono usati la classe standard book e i pacchetti standard in modo damostrare quello che LATEX puograve fare da solo come si egrave giagrave detto una delle pochee piccolissime modifiche apportate egrave stata quella di cambiare il modo di scriverei numeri romani minuscoli per renderli sempre con il maiuscoletto Nel testo diPantieri invece egrave stato cambiato praticamente tutto il risultato egrave eccellente maper i neofiti potrebbe risultare difficile sfruttare le possibilitagrave di ClassicThesisper ottenere le stesse bellissime pagine

Lorenzo Pantieri ha scritto anche unrsquoaltra breve guida LATEX per lrsquoimpazienteche potrebbe sostituire la guida [58] ormai un porsquo datata anche se sempre validaLa guida di Pantieri [38] contiene molti riferimenti ai pacchetti di estensione inmodo da indirizzare subito il lettore impaziente verso le soluzioni compositivemigliori ovviamente espone anche le parti essenziali di LATEX ma non trattaquasi per niente gli argomenti che esulano dalla composizione del testo con ilcriterio di ldquoquello che vedi egrave quello che intendi direrdquo tipico di LATEX Il testoegrave composto con la classe book con lrsquoestensione layaureo Il lettore curioso puogravevedere subito che effetto fa usare questo pacchetto a confronto con la presenteguida dove invece la pagina egrave quella di default della classe

Invece per andare su un testo piugrave completo anche della Guida di Lamport cisi puograve riferire allrsquoeccellente libro di Kopka a Daly [27]

Ma il libro piugrave completo (e pesante non nel prezzo ma nel numero di pagine)il libro dei libri su LATEX egrave certamente il The LATEX companion [32] Si tratta diun libro di quasi 1100 pagine dove crsquoegrave tutto lo scibile concernente LATEX2ε e ipiugrave importanti pacchetti

A3 Documentazione sulla graficaEgrave appena stata pubblicata anche la seconda edizione del volume The LATEX gra-phics companion [33] Questo libro egrave utilissimo per apprendere come manipolarele immagini per poterle inserire al meglio allrsquointerno di un documento compo-sto con LATEX Sono citati e descritti in dettaglio molti dei programmi appenamenzionati in questo testo ma quello che piugrave importa essi sono commentati econfrontati per esplorarne pregi e difetti o per indicare usi alternativi a quelliche ci si potrebbe aspettare2

Per quel che riguarda la creazione di grafica che rappresenta informazionequantitativa si indica il libro di Edward Tufte The visual display of quantitativeinformation Oltre ad essere un bellissimo libro in seacute esso mostra una quantitagravedi rappresentazioni grafiche belle e brutte tutte commentate per quelle brutte icommenti indicano proprio percheacute sono mal riuscite Crsquoegrave molto da imparare anche

2Tutti i libri della Addison Wesley sono acquistabili tramite il sito dellrsquoassociazione mondialedegli utenti di TEX con notevoli sconti si suggerisce di esplorare il sito httpwwwtugorgbooks

A4 DOCUMENTAZIONE SUI SINGOLI PACCHETTI 425

per chi si crede un abile creatore di diagrammi cartogrammi istogrammi ecceteraCiograve non toglie che non si possano tenere in conto anche le raccomandazioni dellanorma UNI 2949 [48] che guarda caso sono coerenti con la maggior parte delleindicazioni di Tufte anche se hanno un aspetto piugrave tecnico dei diagrammi bellimostrati da Tufte nel suo libro

A4 Documentazione sui singoli pacchettiLa documentazione sui singoli pacchetti di estensione fa generalmente parte delladistribuzione stessa del pacchetto ogni volta che si scarica dalla rete un pacchettoe questo viene installato nella struttura standard di cartelle del sistema TEXla documentazione va a finire in una cartella che si chiama come il pacchettonel ramo dellrsquoalbero che comincia con doc puograve poi finire nel ramo latexoppure tex oppure generic a seconda che lrsquouso del pacchetto sia specifico diLATEX di TEX oppure sia polivalente

Queste cartelle sono le prime a dover essere esaminate quando si cerca delladocumentazione specifica non lo si raccomanda mai abbastanza tanto chemolti utenti si rivolgono in rete alla prima mailing list che capita per averedelucidazioni su cose che sono spiegate chiarissimamente sulla documentazioneche arriva insieme al sistema TEX e che quindi egrave giagrave installata nello stessocalcolatore dove lrsquoutente si egrave trovato di fronte ad un problema Per caritagrave un porsquodi aiuto non lo si nega a nessuno ma la lsquonetiquettersquo impone di chiedere aiutoprima di tutto alla mailing list competente e solo dopo aver fatto il possibile perdocumentarsi autonomamente

Per i problemi relativi al sistema TEX egrave certamente competente il forumcomptexttex in groupsgooglecom

Anche il Gruppo degli utilizzatori Italiani di TEX ha un forum allrsquoindirizzohttpwwwguitssuspitforum ed egrave meglio rivolgersi a questi gruppi in-vece di scrivere alla mailing list dello shell editor che si sta usando dimostrandoquindi di non aver capito la distinzione fra lo shell editor e il sistema TEX

Ma una cartella che bisogna avere sempre presente egrave doclatexbasepercheacute quella cartella contiene alcune rapide guide dal titolo xxxguidepdfdove le tre lettere xxx indicano un porsquo stenograficamente di che cosa si trattiusr riguarda il generico utente cls riguarda le classi eccetera anche se sonoabbreviazioni inglesi non egrave difficile decifrarle

Un problema per gli utenti italiani egrave costituito dal fatto che quasi tutta ladocumentazione egrave scritta in inglese capisco che non tutti sono tenuti a conoscerelrsquoinglese come la propria lingua madre tuttavia se si usa un PC o un laptopse si naviga in rete una conoscenza di base dellrsquoinglese egrave sicuramente presentequesta conoscenza di base dellrsquoinglese scritto dovrebbe essere sufficiente

A5 Documentazione su TEXSe si arriva a scrivere dei file di classe o dei pacchetti di estensione viene vogliadi conoscere meglio il linguaggio TEX primitivo il libro dei libri egrave il TEXbook[25] scritto direttamente dal padre del sistema TEX Questo libro egrave la fontepiugrave autorevole sul sistema TEX se si egrave in vena di spese esiste anche lrsquooperaomnia di Knuth relativa alla tipografia digitale pubblicata come ldquoMillenium

426 APPENDICE A DOVE DOCUMENTARSI

Editionrdquo [26] Essa contiene in un elegante cofanetto cartonato tutti e cinquei volumi del sistema TEX Volume A The TEXbook Volume B TEX TheProgram Volume C The METAFONTbook Volume D METAFONT The ProgramVolume E Computer Modern Typefaces Tutti e cinque i volumi sono incassati(copertina rigida) e a seconda dellrsquouso che se ne fa sono molto meglio che nonprocurarsi separatamente le varie parti per giunta brossurate o con legature aspirale

Conviene visitare il sito di Enrico Gregorio httpprofssciunivrit~gregorioegtexhtml Ci sono diversi documenti da scaricare da quello sugliOrrori a quello sugli Esempi Quello che sembra piugrave interessante oltre alle altreGuide sui pacchetti piugrave comuni mi pare il testo PDF Appunti di programmazionein TEX e LATEX si tratta della seconda edizione aggiornata nel 2009 e contienediverse note che descrivono molte macro sia scritte in linguaggio TEX sia inlinguaggio LATEX2ε Si tratta di cose molto istruttive alcune semplici altredecisamente piugrave complesse ma come testo didattico secondo chi scrive egrave unottimo esempio che consente allrsquoapprendista di arrivare per gradi e secondo le suenecessitagrave a livelli alti di programmazione ottimi per scrivere macro complessecosigrave come per scrivere file di classe o di estensione

A6 Documentazione sui simboli di LATEXLATEX consente di inserire nei documenti composti una miriade di simboli chesono disponibili con certi pacchetti oppure con certi font esiste un documento inrete predisposto da Scott Pakin e tenuto costantemente aggiornato che contienetutti i simboli gestibili con LATEX [37] Lrsquoindirizzo in rete rimane sempre lo stessoanche dopo ogni aggiornamento

A7 Documentazione sulla composizione dellamatematica

In una lettera privata a un suo corrispondente Jean-Pierre Serre scrisseMi colpisce il fatto che la scrittura matematica sia simile alla scritturadi una lingua Per essere capito devi seguire certe regole grammaticaliTuttavia nel nostro caso nessuno si egrave preso la briga di scrivere unagrammatica noi lrsquoafferriamo come un bimbo lo fa dai suoi genitoriper imitazione degli altri Alcuni matematici hanno un buon orecchioaltri no (e alcuni preferiscono usare espressioni gergali come peresempio ldquoiffrdquo) Cosigrave egrave la vita3

Tuttavia non egrave proprio completamente esatta questa affermazione alcune regoleesistono almeno per certi stili di scrittura matematica

Le norme ISO per la composizione della matematica scritta dai fisici e daitecnologi (la matematica delle grandezze) si trovano tradotte in italiano neldocumento [10] pubblicato dallrsquoEnte di Unificazione Italiano

3It strikes me that mathematical writing is similar to using a language To be understoodyou have to follow some grammatical rules However in our case nobody has taken the troubleof writing down the grammar we get it as a baby does from its parents by imitation of othersSome mathematicians have a good ear some not (and some prefer the slangy expressions suchas ldquoiffrdquo) Thatrsquos life

A7 COMPOSIZIONE DELLA MATEMATICA 427

Vale la pena di consultare anche le indicazioni fornite dalla Unione Interna-zionale di Fisica Pura e Applicata riportate per esempio nellrsquoappendice F deltesto [55]

Molto interessante e completo egrave il documento elettronico [46] pubblicato dalNational Institute for Standardization and Technology esso egrave estremamentedettagliato e vale la pena di disporne e di ricorrevi spessissimo egrave anche moltoaggiornato sul sistema SI ovviamente si rivolge ai lettori statunitensi quindi dovediscute del separatore decimale indica il punto invece della virgola usa anchelrsquoortografia americana piuttosto di quella inglese per rispettare usi e costumiconsolidati negli USA per giunta fissati per legge da altre norme La bibliografiaegrave molto estesa fra le appendici ci sono elenchi di fattori di conversione daunitagrave ldquostranerdquo a unitagrave SI che risultano di difficilissima reperibilitagrave altrove alcunedi queste unitagrave ldquostranerdquo sono tanto inconsuete che se non fossero elencate inquellrsquoappendice qui in Europa non si sarebbero mai potute incontrare Le normein questione complete di check list per gli autori sono destinate ai vari ricercatoridi quellrsquoIstituto affincheacute scrivano il loro testi tecnici in modo irreprensibile Fattele debite piccolissime tare (tipo il punto decimale) le indicazioni presenti inquesta guida sono validissime per qualunque scrittore tecnico

LrsquoAmerican Mathematical Society ha anche pubblicato due libretti su questoargomento il primo [44] serve per dare adeguate istruzioni agli autori che leinviano lavori matematici da pubblicare il secondo [28] invece oltre a dedicareun adeguato spazio alla composizione della matematica con il calcolatore serveanche per consigliare il lettore come scrivere di matematica cioegrave come usare laprosa che puograve interessare un matematico

Come appare chiaro dal titolo i primi riferimenti si riferiscono esplicitamentealla matematica scritta dai fisici e dai tecnologi mentre i secondi si riferisconoalla matematica dei matematici Come egrave stato giustamente osservato sarebbeopportuno che fisici matematici e ingegneri scrivessero la matematica nello stessomodo non crsquoegrave dubbio Ma non conoscendo se il lettore sia un matematico o unfisico o un ingegnere o un economista o un giurista eccetera allora

In ogni caso si rinvia allrsquoappendice B una lista di simboli e di notazioni trattadalle norme o dalle pubblicazioni suddette

Per altro puograve essere utile il manualetto preparato da Michael Downes [13]della American Mathematical Society che ripercorre un porsquo quanto si egrave giagravedetto a proposito delle estensioni fornite dal pacchetto amsmath ma scende inmaggiori dettagli e fornisce utilissimi commenti e indicazioni di ulteriori pacchettidi estensione della matematica che qui non sono stati nemmeno nominati

Unendo ldquolrsquoutile al dilettevolerdquo si segnala il pacchetto cool [42] esso proponeallrsquoutente un certo numero di estensioni che consentono composizioni matematicheben fatte e ben documentate

Esso puograve essere utilissimo per comporre la matematica sia con lo stile deimatematici sia con quello dei fisici e ingegneri esso consente di usare unamoltitudine di comandi ognuno dei quali realizza la corretta scrittura di ognipossibile piccola o grande operazione matematica con la garanzia che essasaragrave tradotta nel file di uscita in modo corretto e conforme alle norme maesso consente anche una maggiore leggibilitagrave del file sorgente in quanto i nomidegli operatori o delle operazioni sono scritti per disteso o comunque sonopoco abbreviati il pacchetto contiene definizioni anche per gli operatori piugravespecializzati e che non sono listati nellrsquoappendice B Se ne consiglia lrsquouso a tutti

428 APPENDICE A DOVE DOCUMENTARSI

gli utenti di LATEX che abbiano necessitagrave di comporre testi con una notevole dosedi matematica in particolare se questa egrave molto avanzata

Si consiglia vivamante la lettura del documento di Herbert Voszlig Math mode[54] che espone tutti i modi possibili per comporre la matematica sia con plainTEX sia con il mark-up LATEX senza o con le estensioni fornite principalmentedal pacchetto amsmath e pacchetti annessi oltre che con unrsquoaltra ventina dipacchetti specializzati per la composizione della matematica Esamina i problemidi composizione per categorie e spessissimo mostra degli esempi completi dicodice anche per realizzare strutture compositive matematiche per situazioniparticolari sono 135 pagine densissime di informazioni preziose e costituisconouna vera miniera per trovare soluzioni o raccogliere idee nuove

Per quel che riguarda la vexata quaestio della punteggiatura esterna delleformule in display oltre a richiamare quanto annotato verso la fine del capitolo 10si suggerisce qui lrsquoesame dei fascicoletti di istruzioni per gli autori messi adisposizione su ctan e nelle apposite cartelle delle varie distribuzioni del sistemaTEX Si ricorda il giagrave citato fascicoletto della Elsevier [15] e lrsquoanalogo fascicolettopredisposto dalla Kluwer [24] Queste case editrici specializzate nelle pubblicazionidi tipo accademico e scientifico non usano la punteggiatura esterna per leespressioni matematiche in display

A8 Lrsquoarchiviazione dei documentiLrsquoargomento relativo allrsquoarchiviazione egrave ancora abbastanza nuovo e crsquoegrave pocadocumentazione disponibile Lrsquounico testo che sembra essere stato pubblicato egravein vendita solo accedendovi dalla rete [14]

In compenso nel sito httpwwwpdfaorgdokuphpid=starten si tro-va una quantitagrave di informazioni incredibile che vanno dai documenti tecnicialle FAQ le Domande frequenti dove si trovano una quantitagrave di informazionispicciole su argomenti precisi e delimitati

Il sito viene regolarmente aggiornato e vale la pena di accedervi regolarmentespecialmente se la produzione di documenti archiviabili egrave una parte importantedel proprio lavoro

Appendice B

Simbologia matematica efisica

B1 Unitagrave di misura del Sistema InternazionaleLe unitagrave fondamentali del Sistema Internazionale sono raccolte nella tabella B1secondo le norme internazionali gli angoli piani e solidi sono considerati ldquoquantitagravederivate adimensionaterdquo infatti le norme affermano che ldquole unitagrave radiante esteradiante devono essere considerate come unitagrave derivate adimensionate chepossono essere usate od omesse nelle espressioni delle unitagrave derivaterdquo Egrave perquesto che piugrave avanti per alcune grandezze fisiche saranno indicate fra parentesile unitagrave di misura contenenti anche i radianti o gli steradianti in quei casi incui il loro uso consente di distinguere specie fisiche diverse ma apparentementeequidimensionate

Grandezza fisica Unitagrave Simbololunghezza metro mmassa kilogrammo kgtempo secondo scorrente elettrica ampere Atemperatura termodinamica kelvin Kquantitagrave di sostanza mole molintensitagrave luminosa candela cd

Tabella B1 Unitagrave fondamentali

Tutte queste unitagrave noncheacute quelle delle tabelle successive possono essereprecedute dai prefissi decimali raccolti nella tabella B2 Si ricorda che i prefissivanno usati isolatamente (in passato non era infrequente osservare il prefissomillimicro al posto del prefisso corretto nano) Quando lrsquounitagrave di misura conprefisso egrave elevata ad un esponente questo si intende applicato allrsquounitagrave completadi prefisso 3 cm3 indica un volume di 3 (10minus2m)3 = 3times10minus6 m3 e non un volumedi 3times 10minus2 m3

Quando si parla di byte (simbolo B) si usano i prefissi binari questi sonoriportati nella tabella B3 essi sono legali dal 1998 e dovrebbero venire sempre

429

430 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

usati quando si parla di quantitagrave ldquoinformaticherdquo come le capienze dei dischi ole dimensioni di certe memorie e simili Si noti che per lrsquounitagrave kibi (kilo binario)il simbolo comincia con una K maiuscola non egrave un errore tutti i prefissi binaricominciano con lettere maiuscole incluso quello che ricorda il prefisso kilo lo siricorda solamente ma Ki sta per 1024 mentre k sta per 1000 sono evidentementedue cose diverse

Prefisso Valore Simbolo Prefisso Valore Simboloyotta 1024 Y deci 10minus1 dzetta 1021 Z centi 10minus2 cexa 1018 E milli 10minus3 mpeta 1015 P micro 10minus6 microtera 1012 T nano 10minus9 ngiga 109 G pico 10minus12 pmega 106 M femto 10minus15 fkilo 103 k atto 10minus18 aetto 102 h zepto 10minus21 zdeca 101 da yocto 10minus24 y

Tabella B2 Prefissi decimali

Prefisso Valore Simbolokibi 210 Kimibi 220 Migibi 230 Gitebi 240 Tipebi 250 Piexbi 260 Ei

Tabella B3 Prefissi binari

Grandezza Unitagrave Simbolo

attenuazione guadagno decibel dBattenuazione guadagno neper Npintervallo di frequenza ottava ottintervallo di frequenza decade dec

Tabella B4 Unitagrave logaritmiche

Per quanto riguarda le cosiddette unitagrave logaritmiche sono codificate quelledella tabella B4 si ricorda che i nomi che vengono dati a queste unitagrave servonosolo a ricordare quale base egrave stata usata per il calcolo del logaritmo Si richiamalrsquoattenzione anche sulla corretta scrittura dei simboli dB e Np che invece sivedono cosigrave spesso scritti in modo errato Per quanto riguarda le unitagrave diattenuazione e di guadagno si usano i logaritmi decimali per i decibel o neperianiper i neper ed in piugrave si hanno definizioni diverse a seconda che il rapporto dicui si calcola il logaritmo sia eseguito fra grandezze di potenza o energia oppure

B1 UNITAgrave DI MISURA DEL SISTEMA INTERNAZIONALE 431

fra grandezze di campo

α = 10 log10P1

P2oppure α = 1

2 logeP1

P2

dove P1 e P2 sono potenze oppure

α = 20 log10V1

V2oppure α = loge

V1

V2

dove V1 e V2 sono tensioniPer gli intervalli di frequenza si usano i logaritmi binari per le ottave o

decimali per le decadi

I = log2f2

f1oppure I = log10

f2

f1

Egrave stato necessario introdurre molte altre unitagrave per le grandezze fisiche derivateal fine di evitare di dover usare lunghi elenchi di unitagrave fondamentali elevate apotenze insolite che sarebbe fra lrsquoaltro troppo complicato ricordare queste unitagravederivate sono elencate nella tabella B5

Grandezza fisica Unitagrave Simboloangolo piano radiante radangolo solido steradiante srfrequenza hertz Hzforza newton Npressione pascal Palavoro energia joule Jpotenza watt Wcarica elettrica coulomb Ctensione elettrica volt Vcapacitagrave elettrica farad Fresistenza elettrica ohm Wconduttanza elettrica siemens Sflusso di induzione magnetica weber Wbinduzione magnetica tesla Tinduttanza henry Hflusso luminoso lumen lmilluminamento lux lxattivitagrave di un radionuclide becquerel Bqdose assorbita gray Gyequivalente di dose sievert Svattivitagrave catalitica katal kat

Tabella B5 Unitagrave derivate

Un cenno particolare merita il litro percheacute sono leciti ben due simboli perquesta unitagrave l L viene usato (impropriamente) anche ` ma non egrave lsquolegalersquo invecequesto simbolo se fosse legale costituirebbe una scelta quanto mai opportunapercheacute evita ogni possibile confusione della l minuscola con la cifra 1 e quelladella L maiuscola con la cifra 4

432 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Grand

ezza

fisica

Unitagrave

Simbo

loEq

uivalenz

aan

golo

pian

ograd

osessagesim

ale

1

rad

180

angolo

pian

ominutosessagesim

ale

prime1prime

rad

1080

0an

golo

pian

osecond

osessagesim

ale

primeprime1primeprime

rad

6480

00an

golo

pian

ogonograd

ocentesim

ale

gon

1gon

rad

200

angolo

pian

ogiro

giro

1giro

=2π

rad

area

ara

a1a

=10

0m2

area

ettaro

ha1h

a=

1000

0m2

volume

litro

lL

1L=

1dm

3

tempo

minuto

min

1min

=60

stempo

ora

h1h

=36

00s

tempo

giorno

d1d

=86

400s

massa

tonn

ellata

t1t

=10

00kg

massa

unitagrave

dimassa

atom

ica

u1u

=1

6605

7times

10minus

27kg

lavoroe

nergia

elettron

volt

eV1e

V=

160

219times

10minus

19J

lavoroe

nergia

kilowa

ttora

kWh

1kW

h=

36M

Jcaric

aelettrica

ampe

rora

Ah

1Ah

=36

00C

tempe

ratura

Celsiu

sgrad

oCelsiu

s C

1C

=1K

madiffe

risce

lozero

della

scala

t=Tminus

273

15K

Tabe

llaB6

Unitagrave

dimisu

ralegalm

ente

ammesse

B2 SIMBOLI MATEMATICI NELLE SCIENZE 433

Le unitagrave ammesse sono riportate nella tabella B6Infine sono ancora tollerate o temporaneamente accettate alcune altre unitagrave

in via di estinzione quelle che si sono giagrave estinte (come lrsquoatmosfera il quintaleil millimetro di mercurio mdash ammesso solo in campo medico mdash il poise eccetera)non sono nemmeno elencate proprio per evitare che possa venire la tentazionedi usarle ancora Le convenzioni internazionali a cui lrsquoItalia aderisce farannosparire in un prossimo futuro anche queste unitagrave tollerate che sono elencatenella tabella B7

Grandezza fisica Unitagrave Simbolo Equivalenzalunghezza miglio marino miglio marino 1 miglio marino = 1852 mlunghezza aringngstroumlm Aring 1Aring = 10minus10 marea ara a 1 a = 100 m2

area ettaro ha 1 ha = 10 000 m2

area barn b 1 barn = 10minus28 m2

pressione bar bar 1 bar = 100 kPavelocitagrave nodo nodo 1 nodo = (4639) ms

1 nodo = 1 miglio marinohaccelerazione gal Gal 1 Gal = 1 cms2

attivitagravedi radionuclide curie Ci 1 Ci = 37times 1010 Bq

esposizionea raggi X o γ roentgen R 1 R = 258times 10minus4 Ckg

dose assorbita rad rad rd 1 rd = 1 cGyequivalente di dose rem rem 1 rem = 1 cSv

Tabella B7 Unitagrave di misura temporaneamente accettate

Nelle tabelle B1ndashB7 si notano delle assenze vistose oltre a quelle giagrave segna-late in particolare mancano tutte le unitagrave CGS dagli erg alle dine dai gauss aglioumlrsted tanto per citare quelle piugrave comuni non sono accettati il kilogrammo-forzail micron il carato metrico la caloria lrsquoatmosfera Si notano inoltre le assenzedei simboli cc mc mmc mq che sono scorrettamente tanto comuni in alcunescienze al loro posto vanno usati i simboli corretti cm3 m3 mm3 m2 Unavolta ai tempi della dattilografia era piuttosto laborioso inserire gli esponentioggi con i sistemi di videoscrittura in particolare di composizione tipograficacome LATEX gli esponenti non sono piugrave un problema quindi quelle abbreviazionierrate tollerate per necessitagrave di cose fino a trenta anni fa oggi non sono piugraveaccettabili

B2 Simboli matematici nelle scienzeIn questo paragrafo sono raccolti i simboli matematici piugrave comuni che si impieganonelle scienze e nella fisica essi sono ispirati tra lrsquoaltro alle norme CNR-UNI 10002e alle norme CEI 24-1 ma quando queste norme erano in conflitto egrave stataoperata una scelta arbitraria se usare il simbolo proposto da una norma piuttostoche quello indicato dallrsquoaltra oppure se indicarli entrambi Egrave stato seguito questo

434 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

criterio anche per la scelta dei simboli che si ritengono meno frequenti e che nonsono stati inseriti nella tabella B8

Come al solito lrsquoelenco non egrave e non puograve essere completo ma puograve servire daguida o modello per preparare un analogo elenco qualora si facesse uso di unasimbologia fisico-matematica piuttosto elaborata

Nella tabella B8 a e b sono due numeri reali qualsiasi i j k n sono numeriinteri z s sono variabili o numeri complessi x y (talvolta anche z) e t sonovariabili reali D egrave un dominio A B C P sono punti del piano o dello spazioLa colonna intestata Simbolo contiene il segno grafico del simbolo oppureunrsquoespressione che ne fa uso

B3 NomenclaturaEgrave praticamente impossibile fare un elenco di tutti nomi delle grandezze chevengono usate in ogni scienza dalla fisica alla medicina dallrsquoelettronica allageologia Si ritiene perograve cosa utile riprendere lrsquoelenco del prospetto IV dellanorma CNR-UNI 10003 ampliandolo un poco e aggiungendovi il simbolo (o unascelta di simboli) che sono comunemente accettati in ogni scritto scientificosenza che sorga la necessitagrave di compilare un elenco delle grandezze e dei simboliusati

Nel compilare la tabella B9 si egrave tratta ispirazione dalle norme CNR-UNIdalle norme CEI dal fascicolo CEI di nomenclatura nucleare dal documento sullanomenclatura pubblicato dalla Societagrave Internazionale di Fisica senza inventarenulla ma operando solo delle scelte fra le grandezze o i simboli che sono statiinclusi o esclusi nella tabella

Fra parentesi nella colonna delle unitagrave di misura vi sono delle indicazioniulteriori che comprendono anche i radianti o altre unitagrave come i neper o i cicliquando egrave parso che lrsquointroduzione di queste unitagrave accessorie rendesse piugrave chiara ladifferenza fra grandezze di specie diversa ma apparentemente equidimensionate

La tabella B9 come detto sopra egrave certamente incompleta ma rappresentacomunque un modello da imitare qualora fosse necessario fare un elenco dellegrandezze e dei simboli usati nel documento

B3 NOMENCLATURA 435

Tabella B8 Simboli matematici

Simbolo Significato Note

virgola decimale Non usare il punto per separare laparte intera dalla parte decimaleNon usare nemmeno altri separato-ri tra i gruppi di tre cifre prima edopo la virgola Il punto decimalesi puograve usare solo scrivendo in ingle-se ma i separatori fra gruppi di trecifre devono essere assenti lo stessoIn entrambi i casi il separatore puograveessere costituito da uno spazio finenon separabile

infin infinito

π π = 3141 592 Se il font lo consente sarebbe desi-derabile stampare la costante ma-tematica π con un carattere noninclinato

e e = 2718 281 Va scritta in tondo se non altro perdistinguerla dalla carica elementa-re e ma come base degli esponen-ziali neperiani sarebbe preferibiletrattarla sempre come un operatore

γ γ = 0577 215 Vale la stessa osservazione fatta perπ

i j unitagrave immaginariaoperatore di rotazione

Va scritta in tondo come gli altrioperatori

omissione Si usa sia nel significato di elementiomessi sia in quello di eccetera

x y z coordinate cartesiane x larghezza y profonditagrave z altezza

ϕ z coordinate cilindriche distanza dallrsquoasse ϕ longitudinez altezza

ϕ ϑ coordinate sferiche distanza radiale ϕ longitudineϑ colatitudine

a = b uguale

a = b diverso

continua

436 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B8

Simbolo Significato Note

a equiv b identico

e asymp 2718 uguale a circa

a sim b proporzionale Si puograve usare anche a prop b

aharr b equivalente

a gt b maggiore

a lt b minore

a ge b maggiore o uguale

a le b minore o uguale

a b molto maggiore

a b molto minore

ararr b tendente

a b asintoticamente uguale

a b corrispondente Si usa nelle indicazioni di scala deidiagrammi per esempio 1 cm 10 V

adivide b intervallo Si usa nel senso di ldquoda a a brdquo

a+ b somma

aminus b sottrazione

a b a middot b moltiplicazione Non usare altri simboli quando glioperandi sono indicati mediantelettere

15times 23 moltiplicazione Non usare altri simboli quando glioperandi sono entrambi numerici

15 a15 middot a

moltiplicazione Gli operandi numerici precedonosempre quelli letterali

continua

B3 NOMENCLATURA 437

Continua tabella B8

Simbolo Significato Note

ab a

bdivisione Le due simbologie possono essere me-

scolate usare le parentesi per isola-re le singole operazioni ed evitareambiguitagrave per esempio

(ab) + 1(ab) + (ba)

a mod b modulo resto della divisione ab con quozien-te intero egrave sempre

0 le (a mod b)b lt 1

ab elevazione a potenzabradica estrazione di radice Non usare neacute b

radica neacute b

radic(a) se b = 2

b viene omesso

|a| valore assolutonsumi=1

ai somma

nprodi=1

ai prodotto

n fattoriale(n

m

)coefficiente binomiale n(nminus 1) middot middot middot (nminusm+ 1)

1times 2times middot middot middot m

f(x) funzione

logb x logaritmo in base b

log x logaritmo decimale

lnx loge x logaritmo neperiano

lbx log2 x logaritmo binario

ex expx esponenziale In questa e nelle funzioni successivescritte in caratteri tondi lrsquoargomen-to non necessita di parentesi quan-do egrave composto da un solo elementoletterale o numerico

sin x seno

continua

438 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B8

Simbolo Significato Note

cosx coseno

tan x tangente

cotx cotangente

sinh x seno iperbolico

cosh x coseno iperbolico

tanh x tangente iperbolica

coth x cotangente iperbolica

arcsin x arcoseno

arccosx arcocoseno

arctan x arcotangente

arccotx arcocotangente

arsinhx arcoseno iperbolico

arcoshx arcocoseno iperbolico

artanhx arcotangente iperbolica

arcothx arcocotangente iperbolica

K(k) integrale ellittico completodi prima specie

K(k) =int π2

0

dϑradic1minus k2 sin 2ϑ

F (ϕ k) integrale ellitticoincompleto di prima specie

F (ϕ k) =int ϕ

0

dϑradic1minus k2 sin 2ϑ

E(ϕ k) integrale ellitticoincompleto di secondaspecie

E(ϕ k) =int ϕ

0

radic1minus k2 sin 2ϑ dϑ

Π(nϕ k) integrale ellitticoincompleto di terza specie

Π(nϕ k) =int ϕ

0

dϑ(1minus n sin2 ϑ)

radic1minus k2 sin 2ϑ

ϕ amplitudine Lrsquoamplitudine egrave legata allrsquointegra-le ellittico di prima specie dallarelazione x = F (ϕ k)

sn (x k) seno ellittico sn (x k) = sinϕ

continua

B3 NOMENCLATURA 439

Continua tabella B8

Simbolo Significato Note

cn (x k) coseno ellittico cn (x k) = cosϕdn (x k)∆(ϕ)

delta amplitudine ∆(ϕ) =radic

1minus k2 sin 2ϕ

o(x) ordine di infinito oinfinitesimo

Se y = o(x) allora lim yx = 0

O(x) ordine di infinito oinfinitesimo

Se y = O(x) allora | lim yx| ltinfin

Γ(z) funzione gamma Γ(z) =int infin

0tzminus1 eminust dt

(a)n simbolo di Pochhammer (a)n = Γ(a+ n)Γ(a)

erf (z) funzione drsquoerrore erf (z) = 2radicπ

int z

0eminust

2dt

erfc (z) funzione complementaredrsquoerrore

erfc (z) = 1minus erf (z)

C(z) integrale di Fresnel C(z) =int z

0cos(πt22) dt

S(z) integrale di Fresnel S(z) =int z

0sin(πt22) dt

Si(z) seno integrale Si(z) =int z

0

sin tt

dt

Ci(z) coseno integrale Ci(z) = γ + ln z +int z

0

cos tminus 1t

dt

E1(z) esponenziale integrale E1(z) =int infinz

eminustt

dt

Ei(x) esponenziale integrale Ei(x) = minusint x

minusinfin

eminustt

dt

li(x) logaritmo integrale li(x) = minusint x

0

dtln t = Ei(ln x)

ζ(s) funzione Zeta di Riemann ζ(s) =infinsumk=1

kminuss

δ(t) distribuzione di Dirac

u(t) gradino unitario u(t) =

0 per t lt 012 per t = 01 per t gt 0

continua

440 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B8

Simbolo Significato Note

δij simbolo di Kronecker δij =

0 per i = j

1 per i = j

Jν(z) funzione di Bessel di primaspecie

Yν(z) funzione di Bessel diseconda specie

H(1)ν (z) funzione di Hankel di prima

specieH

(1)ν (z) = Jν(z) + iYν(z)

H(2)ν (z) funzione di Hankel di

seconda specieH

(2)ν (z) = Jν(z)minus iYν(z)

Iν(z) funzione di Besselmodificata di prima specie

Kν(z) funzione di Besselmodificata di seconda specie

berν(x) prima funzione di Kelvindi prima specie

berν(x) = Re[Jν(x e3π i 4 )]

beiν(x) seconda funzione di Kelvindi prima specie

beiν(x) = Im[Jν(x e3π i 4 )]

kerν(x) prima funzione di Kelvindi seconda specie

kerν(x) = Re[Kν

(x eπ i 4 )]

keiν(x) seconda funzione di Kelvindi seconda specie

keiν(x) = Im[Kν

(x eπ i 4 )]

M(a b z) funzione ipergeometricaconfluente

Funzione di Kummer di prima specie

U(a b z) funzione ipergeometricaconfluente

Funzione di Kummer di secondaspecie

F (a b c z) funzione ipergeometrica Lrsquoespressione generale egrave

F (a b c z) = Γ(c)Γ(b)Γ(cminus b) middot

int 1

0tbminus1(1minus t)cminusbminus1(1minus tz)minusa dt

Pn(z) polinomio di Legendre Detto anche funzione sferica

Tn(z) polinomio di Chebyshevdi prima specie

Un(z) polinomio di Chebyshevdi seconda specie

C(α)n (z) polinomio di Gegenbauer Detto anche polinomio ultrasferico

continua

B3 NOMENCLATURA 441

Continua tabella B8

Simbolo Significato Note

P (α β)n (z) polinomio di Jacobi Lrsquointervallo di ortogonalitagrave egraveminus1divide+1

G(p q z) polinomio di Jacobi Lrsquointervallo di ortogonalitagrave egrave 0divide+1

Hn(z) polinomio di Hermite

Ln(z) polinomio di Laguerre

L(α)n (z) polinomio di Laguerre

generalizzatoBn(z) polinomio di Bernoulli

En(z) polinomio di Eulero

Pmicroν (z) funzione ultrasferica diprima specie

Quando micro = 0 si omette di scriverneil valore percheacute la funzione coincidecon il polinomio di Legendre

Qmicroν (z) funzione ultrasfericadi seconda specie

limxrarra

f(x) limite

∆x incremento finito

δx incremento virtuale

dx differenziale Come gli altri operatori va scritto intondo ma non richiede lo spazio adestra

f(x)∣∣∣ba

incremento Cioegrave f(b)minus f(a)dydx derivata

party

partxderivata parziale

dnydxn derivata n-esima

partny

partxnderivata parziale n-esima Lrsquoordine di derivazione nelle deriva-

te parziali miste quando non siaindifferente egrave il seguente

part2z

partxparty= part

partx

(partz

party

)intf(x) dx integrale indefinito

continua

442 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B8

Simbolo Significato Noteint b

a

f(x) dx integrale definitointD

f(P) dD integrale esteso ad undominio

Il particolare dominio D va spe-cificato Il punto P appartiene aldominio

minusint b

a

f(z) dz integrale principale diCauchy

La funzione f(z) egrave discontinua lun-go la linea che congiunge a e be lrsquointegrale viene calcolato comelimite simmetrico a cavallo delladiscontinuitagrave∮

`

f(z) dz circuitazione di f lungo lalinea chiusa `

L[f(t)] trasformata di Laplace F (s) = L[f(t)]

Lminus1[F (s)] antitrasformata di Laplace f(t) = Lminus1[F (s)]

F [f(t)] trasformata di Fourier F (ω) = F [f(t)]

Fminus1[F (ω)] antitrasformata di Fourier f(t) = Fminus1[F (ω)]

ABC angolo Il vertice corrisponde al punto B︷ ︷AB arco

AB segmento

~V vettore

|~V | V modulo di vettore

~V1 middot ~V2 prodotto scalare Non usare mai lrsquooperatore times per ilprodotto scalare

~V1 and ~V2~V1 times ~V2

prodotto vettore

int`

~V middotminusrarrd` lsquolavororsquo di ~V lungo la linea `

intS

~V middotminusrarrdS flusso di ~V attraverso la

superficie S

gradΦ nablaΦ gradiente Si puograve indicare anche con minusminusminusminusrarrgradΦoppure minusrarrnablaΦ

continua

B3 NOMENCLATURA 443

Continua tabella B8

Simbolo Significato Note

div ~V nabla middot ~V divergenza

rot ~V nablatimes ~V rotore Si puograve indicare anche conminusminusminusrarrrot ~V

oppureminusminusminusminusrarrnablatimes ~V

nabla2Φ laplaciano di uno scalare

nabla2~V laplaciano di un vettore Vettore le cui componenti sono or-dinatamente i laplaciani delle com-ponenti di ~V Si puograve indicare ancheconminusminusrarrnabla2~V

x valore istantaneo

X valore efficace Il concetto ha senso solo se x(t) egraveperiodica

x xmax valore massimo Il valore massimo della funzione x(t)in un intervallo prefissato tmindividetmax

x xmin valore minimo Il valore minimo della funzione x(t)in un intervallo prefissato tmindividetmax

x valore medio Il valore medio della funzione x(t) inun intervallo prefissato tmin divide tmax

Re z parte reale

Im z parte immaginaria Se z = x+ i y allora Im z dovrebbeessere uguale a y e non a i y matalvolta egrave usato per i y

|z| modulo

arg z argomento o anomalia z = |z| ei arg z

zlowast coniugato Nei testi matematici egrave piugrave comune z

flowast(s) paraconiugato flowast(s) = f(minuss) ma se f(s) egrave hermi-tiana flowast(i y) = flowast(i y)

A insieme A = a1 a2 Nello stesso mo-do per indicare altri insiemi si pos-sono usare altre lettere maiusco-le che non siano giagrave associate adinsiemi particolari

empty insieme vuoto

continua

444 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B8

Simbolo Significato Note

Ω universo

N N insieme dei numeri interipositivi

Z Z insieme dei numeri interirelativi

Q Q insieme dei numeri razionali

R R insieme dei numeri reali

C C insieme dei numericomplessi

AtimesB prodotto cartesiano diinsiemi

Ogni elemento del prodotto cartesia-no egrave formato dallrsquoaccoppiamento diun elemento dellrsquoinsieme A con unelemento dellrsquoinsieme B

Rn Rn insieme delle n-uple reali Indica anche lo spazio reale a ndimensioni

Cn Cn insieme delle n-uplecomplesse

Indica anche lo spazio complesso adn dimensioni

exist esiste Esiste ed egrave unico exist

non esiste

a isin A appartiene

a isin A non appartiene

A 3 a contiene

A 3 a non contiene

A capB intersezione

A cupB unione

AB differenza Lrsquoinsieme AB egrave formato daglielementi di A esclusi quelli cheappartengono anche a B

ΩA complemento ΩA = ΩA

A sub B egrave contenuto A egrave un sottoinsieme di B

A sub B non egrave contenuto

continua

B3 NOMENCLATURA 445

Continua tabella B8

Simbolo Significato Note

A sube B egrave contenuto o coincide

A sube B non egrave contenuto neacute coincide

B sup A contiene B contiene lrsquoinsieme A

B sup A non contiene

B supe A contiene o coincide

B supe A non contiene neacute coincide

A matrice Quando la matrice ha una sola co-lonna (riga) si egrave soliti usare lette-re minuscole La matrice puograve essereesplicitata in uno dei modi seguenti

A =

a11 a1r an1 anr

oppure A =

a11 a1r an1 anr

|A| det A determinante La matrice A di cui si calcola il

determinante deve essere quadrataEgrave

det A =

∣∣∣∣∣∣∣a11 a1n an1 ann

∣∣∣∣∣∣∣A norma

tr A traccia tr A =nsumi=1

aii

Alowast matrice coniugata Nei testi di matematica egrave piugravefrequente A

A tA matrice trasposta Si indica anche con AT Questo se-condo simbolo egrave piugrave adatto quandola matrice egrave esplicitata mediante isuoi elementi

A matrice associata A = Alowast

Alowast matrice paraconiugata Alowast(s) = A(minuss) ma se gli elementiaij(s) di A sono hermitiani forall i j egraveAlowast(i y) = A(i y)

continua

446 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B8

Simbolo Significato Note

D matrice diagonale D = diag (a1 an) Puograve essereusata qualunque altra lettera purcheacutene sia definito il significato

I 1 matrice identitagrave Il secondo simbolo puograve essere usa-to solo quando il primo possaingenerare confusione con altregrandezze

G diadica

sn i capitalizzazione Coefficiente di capitalizzazione di nannualitagrave posticipate allrsquointeresse i

sn i capitalizzazione Coefficiente di capitalizzazione di nannualitagrave anticipate allrsquointeresse i

an i attualizzazione Coefficiente di attualizzazione di nannualitagrave posticipate allrsquointeresse i

an i attualizzazione Coefficiente di attualizzazione di nannualitagrave anticipate allrsquointeresse i

σn i reintegrazione Coefficiente di reintegrazione me-diante n annualitagrave posticipate allrsquoin-teresse i

σn i reintegrazione Coefficiente di reintegrazione me-diante n annualitagrave anticipate allrsquoin-teresse i

αn i ammortamento Coefficiente di ammortamento me-diante n annualitagrave posticipate allrsquoin-teresse i

αn i ammortamento Coefficiente di ammortamento me-diante n annualitagrave anticipate allrsquoin-teresse i

B3 NOMENCLATURA 447

Tabella B9 Nomenclatura simboli e unitagrave di misura

Grandezza Simbolo Unitagrave SI

angolo piano α β γ rad

angolo solido ω Ω sr

lunghezza l m

larghezza b m

altezza h m

raggio r m

spessore d δ m

diametro d m

percorso curvilineo s m

superficie area S A m2

volume V v m3

lunghezza drsquoonda λ m (monda)

numero drsquoonda (1λ) σ mminus1 (ondem)

ondulanza (2πλ) k mminus1

attenuazione spaziale α mminus1 (Npm)

costante di fase β mminus1

costante di propagazione (α+ iβ) γ mminus1

tempo t s

periodo T s (sciclo)

frequenza f Hz (ciclis)

pulsazione ω sminus1

tempo di rilassamento o costante di tempo τ s (sNp)

coefficiente di smorzamento δ sminus1 (Nps)

decremento logaritmico (Tτ) Λ (Npciclo)

velocitagrave v u ms

continua

448 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B9

Grandezza Simbolo Unitagrave SI

velocitagrave angolare ω rads

accelerazione a ms2

accelerazione angolare α rads2

accelerazione di gravitagrave g ms2

costante di gravitazione G Nm2kg2

velocitagrave della luce nel vuoto c0 ms

massa m kg

massa volumica kgm3

densitagrave relativa (allrsquoacqua) d ndash

volume massico (1) v m3kg

quantitagrave di moto p kgms

momento della quantitagrave di moto L kgm2s

momento quadratico di superficie I m4

momento di inerzia J kgm2

forza F N

coppia T M Nm (Nmrad)

momento di una forza M Nm (Nmrad)

pressione p Pa

tensione normale σ Pa

tensione di taglio τ Pa

allungamento relativo ε ndash

modulo di elasticitagrave E Pa

angolo di torsione γ rad

modulo di torsione G Pa

dilatazione volumica relativa ϑ ndash

modulo di compressione K Pa

continua

B3 NOMENCLATURA 449

Continua tabella B9

Grandezza Simbolo Unitagrave SI

rapporto di Poisson micro ndash

viscositagrave dinamica η Pa s

viscositagrave cinematica (η) ν m2s

coefficiente di attrito micro ndash

tensione superficiale γ σ Nm

energia E J

energia potenziale Ep V Φ J

energia cinetica Ek T K J

lavoro W J

potenza P W

rendimento η ndash

velocitagrave del suono c ms

velocitagrave longitudinale cl ms

velocitagrave trasversale ct ms

velocitagrave di gruppo cg ms

flusso energetico (acustico) P Wm2

fattore di riflessione (acustica) ndash

fattore di assorbimento (acustico) αa α ndash

fattore di trasmissione (acustica) τ ndash

fattore di dissipazione (acustica) δ ndash

livello sonoro LN Λ dB

corrente elettrica i I A

densitagrave di corrente j J Am2

carica elettrica Q C

densitagrave volumica di carica Cm3

densitagrave superficiale di carica σ Cm2

continua

450 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B9

Grandezza Simbolo Unitagrave SI

potenziale elettrico V V

tensione (elettrica) V V

impulso di tensione U Vs

forza elettromotrice E V

campo elettrico E K Vm

spostamento elettrico D Cm2

flusso elettrico Ψ C

capacitagrave C F

permittivitagrave (o permettivitagrave) ε Fm

permittivitagrave del vuoto ε0 Fm

permittivitagrave relativa εr ndash

polarizzazione dielettrica P Cm2

suscettivitagrave elettrica (εr minus 1) χe ndash

elettrizzazione (Dε0 minus E) Ei Ki Vm

polarizzazione (D minus ε0E) P Cm2

momento di dipolo (elettrico) p Cm

campo magnetico H Am

potenziale magnetico Um A

forza magnetomotrice Fm A

induzione magnetica B T

flusso di induzione (magnetica) Φ Wb

permeabilitagrave micro Hm

permeabilitagrave del vuoto micro0 Hm

permeabilitagrave relativa micror ndash

magnetizzazione M Am

suscettivitagrave magnetica (micror minus 1) χm κ ndash

continua

B3 NOMENCLATURA 451

Continua tabella B9

Grandezza Simbolo Unitagrave SI

momento elettromagnetico m micro Am2

polarizzazione magnetica J T

resistenza R W

reattanza X W

impedenza Z W

fattore di qualitagrave QL QC ndash

coefficiente di risonanza Q ndash

conduttanza G S

suscettanza B S

ammettenza Y S

resistivitagrave Wm

conducibilitagrave σ γ Sm

induttanza (propria) L H

induttanza mutua M H

coefficiente di accoppiamento (MradicLpLs) k ndash

coefficiente di dispersione (1minus k2) σ ndash

riluttanza R R Hminus1

permeanza Λ H

potenza reattiva Q VA

potenza apparente P VA

sfasamento ϕ rad

numero delle fasi m ndash

angolo di perdita δ rad

numero di spire N n ndash

densitagrave volumica di energia elettromagnetica w Jm3

vettore di Poynting S Wm2

continua

452 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B9

Grandezza Simbolo Unitagrave SI

potenziale vettore magnetico A A Wbm

temperatura termodinamica T K

temperatura (Celsius) t degC

quantitagrave di calore Q J

entropia S JK

energia interna U J

energia libera (U minus TS) F J

entalpia H J

entalpia libera G J

coefficiente di pressione (part(ln p)partT |V ) β Kminus1

compressibilitagrave (minuspart(lnV )partp|T ) κ m2N

coefficiente di dilatazione lineare α Kminus1

coefficiente di dilatazione volumica γ Kminus1

conducibilitagrave termica λ W(mK)

calore massico cp cv J(kgK)

capacitagrave termica Cp Cv JK

rapporto dei calori massici κ ndash

flusso termico Φ W

flusso di calore areico q Wm2

coefficiente di trasmissione termica τ W(m2K)

coefficiente di diffusione termica a m2s

potenza raggiante Q W W

intensitagrave energetica I Wsr

irradiamento E Wm2

radianza L W(m2 sr)

intensitagrave luminosa I cd

continua

B3 NOMENCLATURA 453

Continua tabella B9

Grandezza Simbolo Unitagrave SI

flusso luminoso Φ lm

quantitagrave di luce Q lm s

luminanza L cdm2

illuminamento E lx

fattore di assorbimento α ndash

fattore di riflessione ndash

fattore di trasmissione τ ndash

indice di rifrazione n ndash

distanza di due piani reticolari adiacenti d m

angolo di Bragg ϑ rad

massa efficace dellrsquoelettrone mlowast meff kg

energia di Fermi EF J

vettore drsquoonda di Fermi kF mminus1 (radm)

coefficiente di Seebeck S VK

coefficiente di Peltier Π V

coefficiente piezoelettrico(polarizzazionesforzo)

dmn CN

temperatura caratteristica di Weiss ΘW K

temperatura di Curie TC K

temperatura di Neel TN K

coefficiente di Hall RH Vm2A2

quantitagrave di sostanza n mol

massa molare M kgmol

volume molare Vm m3mol

energia interna molare Um Jmol

capacitagrave termica molare Cpm Cvm J(molK)

continua

454 APPENDICE B SIMBOLOGIA MATEMATICA E FISICA

Continua tabella B9

Grandezza Simbolo Unitagrave SI

entropia molare Sm J(molK)

concentrazione di un costituente c molm3

molalitagrave di un soluto m molkg

dose assorbita D Gy

energia impartita massica z Gy

indice di dose assorbita Di Gy

rateo di dose assorbita D Gys

equivalente di dose H Sv

esposizione X Ckg

rateo di esposizione X C(kg s)

attivitagrave di un radio nuclide A Bq

Appendice C

Divisione in sillabe

Lrsquoalgoritmo per dividere in sillabe le parole in fin di riga egrave una specialitagrave delsistema TEX ed egrave stata incorporata in diversi altri programmi tra i quali meritasegnalare OpenOffice e NeoOffice come esempi di software Open Source a cuipossono collaborare tutti gli utenti che ne hanno la possibilitagrave e la competenzaun porsquo come succede per il sistema TEX

TEX attiva lrsquoalgoritmo di sillabazione quando terminata la lettura di uncapoverso dal file sorgente e dopo aver trasformato le informazioni contenutenel file sorgente in una lunga linea di caratteri e altre informazioni specifichecon lrsquoaiuto dei pacchetti inputenc e fontenc deve accingersi a spezzare questalunga riga nelle varie righe giustificate che appariranno nel file di uscita

Si noti bene tutte le macro presenti nel file sorgente sono state giagrave elaborateal punto che la lunga riga contiene solo caratteri e alcuni comandi rsquoprimitivirsquo chenon producono testo e che il motore di composizione usa solo nel momento dicreare la pagina di uscita

Per quel che riguarda la sillabazione si noti che il file di ingresso potevacontenere caratteri codificati in diversi modi mentre il file di uscita e quindi lalunga riga contiene solo caratteri codificati secondo le prescrizioni del font usatiper lrsquouscita Se si usa il vecchio encoding OT1 per i font di uscita qualunquelettera con segni diacritici non egrave compresa nella polizza dei caratteri e deve venireottenuta componendo il carattere di base con il segno diacritico che gli competequesta composizione si ottiene per sovrapposizione il comando per eseguirequesta sovrapposizione egrave quindi un comando primitivo ancora presente nellastringa che costituisce la lunga riga da spezzare Se invece si usa la codifica T1 lelettere con diacritici delle lingue occidentali sono giagrave tutte presenti nella polizzadel font usato e quindi la lunga riga contiene solo lettere (sempre trascurando lealtre informazioni codificate che verranno usate solo nel processo di formazionedella pagina di uscita alcune delle quali solo durante la scrittura nel file di uscitadi una pagina completa)

Ciograve premesso bisogna capire come fa TEX a individuare una parola ciograve cheil programma crede che sia una parola per TEX una parola egrave una sequenza dilettere maiuscole o minuscole tratte dallo stesso font che comincia dopo unospazio ma puograve essere preceduta da segni di interpunzione in senso lato (peresempio parentesi virgolette ecc) e finisce con il primo token che non abbia lecaratteristiche di una lettera Questa stringa non puograve essere seguita da tokendiversi da una lettera che appartengano a certe categorie per esempio non puograve

455

456 APPENDICE C DIVISIONE IN SILLABE

essere seguita dal comando footnote Non puograve nemmeno essere preceduta dauna macro percheacute lo spazio che separa la macro dalla stringa di lettere servegiagrave allrsquointerprete TEX per capire che la macro egrave terminata la stringa puograve perogravecostituire lrsquoargomento di una macro Non deve nemmeno essere la prima paroladopo un cambiamento di modo per esempio da verticale a orizzontale questosignifica che la prima parola di un capoverso non viene divisa in sillabe

Il lettore puograve sfruttare il comando showhyphens per vedere come TEX dividain sillabe usando babel con lrsquoopzione per lrsquoitaliano potrebbe vedere che cosasuccede scrivendo

showhyphensmacroistruzione macroistruzione

e troverebbe sullo schermo o nel file log un messaggio del tipo

Underfull hbox (badness 10000) in paragraph at lines 5300--5300[] fontiii ma-croi-stru-zio-ne ma-cro-istru-zio-ne

A seconda del sistema operativo e della particolare distribuzione del sistemaTEX il nome fontiii potrebbe essere sostituito da qualcosa drsquoaltro in ognicaso esso rappresenta la descrizione interna del font in uso nel momento in cuiviene eseguito il comando showhyphens

Lrsquoannotazione lsquoUnderfull hbox (badness 10000) in paragraph at lines rsquopuograve venire ignorata per altro egrave il messaggio che TEX emette ogni volta che deveallargare troppo lo spazio interparola per giustificare una riga

La parte piugrave interessante viene dopo infatti lsquoma-croi-stru-zio-nersquo egrave la divisionein sillabe che TEX eseguirebbe spontaneamente senza sapere che si tratta di unaparola composta mentre lsquoma-cro-istru-zio-nersquo egrave la divisione in sillabe conseguenteallrsquouso del carattere attivo che come si egrave giagrave detto serve appunto (tra lrsquoaltro)per indicare una divisione etimologica piuttosto che fonetica

Si noti che la potenziale parola talvolta non coincide con quello che gli umanisanno essere una parola della loro lingua o di unrsquoaltra lingua straniera

Se si usasse la codifica OT1 invece della codifica T1 gli accenti vengonocollocati sulle vocali (o sopra o sotto altre lettere come per esempio ccedil oppure čin molte altre lingue diverse dallrsquoitaliano) mediante un comando primitivo che sichiama accent quindi anche se uno scrive qualitagrave quando TEX interpreta ilcontenuto del file sorgente sostituisce la lsquoagraversquo con una sequenza di istruzioni inparticolare sostituisce la stringa iniziale con qualitaccent18a in questo modoper TEX quello che lui crede essere una parola egrave la stringa lsquoqualitrsquo allrsquointerno diquesta stringa esso trova un solo punto di divisione lsquoqua-litrsquo e quindi lrsquoeffettocomplessivo sarebbe di dividere la parola in lsquoqua-litagraversquo invece che in lsquoqua-li-tagraversquo

Queste cesure mancate potrebbero essere talvolta causa di composizioniin cui qualche riga sporge fuori dalla giustezza oppure qualche riga egrave stataspaziata troppo per consentire la giustificazione tuttavia il problema egrave facilmenterisolubile basta usare la direttiva

usepackage[T1]fontenc

come si egrave giagrave detto diverse volteQuando si esamina il file log per cercare di capire percheacute qualche cesura in

fin di riga ha provocato righe troppo lunghe o troppo spaziate si scopre sempreche le cause sono quelle descritte sopra una macro precede troppo da vicinoo segue troppo da vicino una stringa di lettere che potrebbe essere una parola

457

del linguaggio oppure si egrave usato un font che non consente la cesura come peresempio un font della famiglia a spaziatura fissa

Un espediente elementare sarebbe quello di dividere a mano basta inserireil comando - allrsquointerno di una parola nel punto in cui si vorrebbe eseguire lacesura in questo testo egrave stato eseguito solo per una voce dellrsquoindice analiticoformata da una parola talmente lunga che invadeva la colonna adiacente

Ma piugrave in generale basta inserire una spaziatura orizzontale di ampiezzanulla fra la parola e lrsquooggetto lsquotroppo vicinorsquo come per esempio una macro ouna nota o allrsquoinizio di un capoverso o prima della prima parola che segue uncomando item in una lista Ciograve si ottiene usando comandi di basso livello comeper esempio

hskip 0pt

dove hskip egrave il comando primitivo che inserisce lo spazio orizzontale specificatoimmediatamente dopo nel nostro caso 0 pt

Egrave bene conoscere questo meccanismo al fine di porre rimedio alle rare circo-stanze in cui il meccanismo di sillabazione non svolge il suo compito come ci siaspetterebbe

Vale la pena di aggiungere una osservazione Nessun meccanismo automaticoegrave infallibile la sillabazione in italiano funziona molto bene ma non si puograveescludere che un neologismo particolare o una parola tecnica possa risultaredivisa in sillabe in modo scorretto specialmente se egrave ricavato da una radicestraniera Per esempio la parola tecnica dellrsquoambito medico lsquodispepsia viene divisain lsquodi-spep-siarsquo ovviamente questo egrave un caso semplice da trattare mediantelrsquouso del carattere attivo percheacute scrivendo dispepsia la parola risultadivisa in modo etimologico Dalla chimica si potrebbe prendere un lunga parolacomposta per esempio desclorfeniraminacloridrato che puograve venire scritta nellaforma desclorfeniraminacloridrato che porta sempre alla divisione insillabe corretta anche nei punti non esplicitamente indicati des-clor-fe-nir-ami-na-clor-idra-to Attenzione percheacute il moncone di parola -ami- non viene divisoin -a-mi- Percheacute il segno spezza la stringa che TEX crede essere una parolain tanti monconi che TEX tratta come parole intere e in nessuna parola TEXstacca una sillaba iniziale o finale formata da una sola lettera questo fatto verragravecommentato meglio piugrave avanti

In inglese il meccanismo di sillabazione sembra funzionare correttamentein poco piugrave del 90 dei casi In francese lrsquoalgoritmo funzionerebbe benissimononostante le numerose lettere con diacritici ma le regole della buona educazioneimpediscono di dividere in sillabe parole che lascino nella riga contenente lacesura o nella riga seguente monconi di parole che hanno significati volgari acausa di ciograve alcune parole non vengono divise affatto o vengono divise in monconitalvolta troppo lunghi In tedesco il problema egrave veramente difficile a causa dellenumerosissime parole composte che vanno divise etimologicamente talvolta conun cambio di ortografia Tuttavia lrsquoalgoritmo viene usato con soddisfazione datutti e nei pochi casi in cui fallisce ci sono almeno tre strade assai semplici daseguire

1 Si marcano a mano con - i punti di divisione di quelle poche paroleche nelle bozze risultano divise in modo scorretto con lrsquoitaliano ciograve egraveestremamente raro per non dire impossibile percheacute le norme UNI cheregolano la materia ammettono come corrette tutte le divisioni fonetiche

458 APPENDICE C DIVISIONE IN SILLABE

certo con parole straniere o derivate da radici straniere questo potrebbenon essere corretto

2 Si usa per lrsquoitaliano il carattere attivo nelle parole composte che sidesidera dividere etimologicamente si noti che le norme UNI che regolanoquesta questione in italiano accettano la divisione fonetica anche per leparole composte ma in uno scritto tecnico egrave preferibile usare la divisioneetimologica Nelle altre lingue straniere tranne in inglese le opzioni dibabel prevedono quasi sempre un comando che utilizza il carattere attivo per esempio - che consente di svolgere la stessa funzione che da solosvolge in italiano bisogna consultare la parte di documentazione di babelrelativa alla lingua specifica

3 Si ricorre alla lista di parole divise in sillabe contenute nellrsquoargomento delcomando hyphenation per lrsquoitaliano per esempio se si dovesse usarespesso la parola lsquomacroistruzionersquo al singolare e al plurale basterebbescrivere nel preambolo

hyphenationma-cro-istru-zio-ne ma-cro-istru-zio-ni

Nel preambolo si possono usare diverse liste introdotte mediante il coman-do hyphenation i loro contenuti vengono raccolti tutti assieme in unaapposita memoria del programma il quale consulta sempre questa listaprima di attivare lrsquoalgoritmo di sillabazione vero e proprioCon lingue che usano la declinazione (come succede in parte per lrsquoitaliano)e la coniugazione queste liste potrebbero diventare immense In italiano unsostantivo richiede due voci singolare e plurale per un aggettivo ne possonoessere richieste quattro singolare e plurale maschile e femminile per unverbo occorrono una sessantina di voci In italiano si ricorre assai raramentea questo meccanismo ma per esempio per lrsquoinglese ogni installazione delsistema TEX prevede la lettura automatica iniziale di una lista di eccezionidi diverse centinaia di parole

Tuttavia superati questi punti vediamo come fa TEX a dividere in sillabeEsso spezza ogni parola che si trovi verso la fine di ogni riga nelle sue compo-

nenti di una sola lettera di due lettere di tre lettere ma con un procedimentosequenziale che non comporti tutte le possibili scomposizioni nel fare questo essoegrave guidato dai lsquopattern di sillabazionersquo Questi sono contenuti in un file che in fasedi costruzione del formato vengono allocati in una struttura dati molto veloce daesplorare egrave per questo che bisogna sempre essere sicuri che detto file sia statoelaborato nella costruzione del formato altrimenti la sillabazione per la linguacui corrispondono quei pattern egrave impossibile Essi sono formati da monconi diparole in cui egrave indicata la possibilitagrave di dividere in sillabe mediante delle cifrepari (non dividere) o dispari (dividi pure) che possono andare da 0 a 9 Se fra lestesse due lettere di pattern diversi compaiono cifre diverse non si tratta di unacontraddizione ma fra le due indicazioni prevale quella con la cifra piugrave alta Peresempio il pattern 1b dice che si puograve dividere prima della lsquobrsquo ma non dopo (lacifra assente implica la cifra zero) ma il pattern 2bb dice che si puograve andare acapo dopo la prima lsquobrsquo ma non prima Infatti tenendo conto dei due pattern ilsecondo si legge come se fosse 2b1b0 il che conferma quanto appena descritto aparole

459

d e l l rsquo i s t r u z i o n e

d 0 e 0 l 0 l 0 rsquo 0 i 0 s 0 t 0 r 0 u 0 z 0 i 0 o 0 n 0 e1 l rsquo 2 1 s 2 1 r 1 z 1 n

1 l 1 t2 l 0 l t 2 r

d 0 e 2 l 1 l 0 rsquo 2 i 1 s 2 t 2 r 0 u 1 z 0 i 0 o 1 n 0 e

Tabella C1 Pattern usati per dividere in sillabe dellrsquoistruzione

d i s c i n e s i a

d 0 i 0 s 0 c 0 i 0 n 0 e 0 s 0 i 0 a1 s 2 1 n 1 s 2

1 cd 0 i 2 s 3 c 0 i 0 n 0 ed 0 i 2 s 3 c 0 i 1 n 0 e 1 s 2 i 0 a

Tabella C2 Pattern usati per dividere in sillabe discinesia

Prendiamo un esempio piugrave complesso per esempio la lsquoparolarsquo con elisionee apostrofo dellrsquoistruzione Conviene rifarsi alla tabella C1 in questa tabellala parola iniziale egrave scomposta nelle sue componenti ed egrave preceduta e seguita dadue segni di punto questi rappresentano per TEX i delimitatori della stringadi lettere che lui ritiene essere una parola Nella seconda riga tutti i codici dicesura pari al valore di default lsquozerorsquo sono intercalati alle lettere Nella terzae nella quarta riga sono indicati i pattern che coinvolgono una sola letteracontornati da rispettivi codici di consenso o interdizione della cesura come sivede questi pattern coinvolgono solo le consonanti e lrsquoapostrofo Nella quinta rigasono riportati i pattern che coinvolgono due lettere insieme ai rispettivi codici diconsenso e interdizione della cesura per lrsquoitaliano non esistono altri pattern ditre o piugrave lettere che si possano trovare nella parola indicata quindi non ci sonoaltre righe da scrivere nella tabellina Perciograve nellrsquoultima riga oltre alle letterecomponenti sono riportate le cifre piugrave alte che compaiono in ogni colonna dicifre Ne consegue che le cesure possono cadere solo fra le due lsquolrsquo tra la lsquoirsquo e lalsquosrsquo tra la lsquoursquo e la lsquozrsquo e tra la lsquoorsquo e la lsquonrsquo dove compaiono i codici dispari

La tabella C2 mostra un esempio ancora piugrave complesso non lo si commentapercheacute il procedimento esposto in relazione alla tabella C1 egrave il medesimo Questavolta la parola da dividere in sillabe egrave discinesia che i medici pronunciano con ilprefisso lsquodisrsquo separato dalla parola lsquocinesiarsquo Il risultato infatti porta alla divisioneetimologicamente corretta dis-ci-ne-sia Il lungo pattern che compare nella quintariga serve appunto per specificare lrsquoeccezione alla regola di non separare la lsquosrsquoimpura (che in questo caso insieme alla lsquocrsquo e alla lsquoirsquo forma un lsquotrigrammarsquoche normalmente si pronuncia diversamente dalle singole lettere componenti)il pattern egrave sufficientemente lungo per isolare la radice di lsquodiscinesiarsquo e deisuoi derivati come per esempio lsquodiscineticorsquo ma non coinvolge altre parole checominciano nello stesso modo per esempio lsquodisciplina lsquodiscintorsquo eccetera

Per lrsquoinglese i pattern sono quasi 5000 le eccezioni introdotte con il comandohyphenation sono alcune centinaia e la probabilitagrave di una divisione errata egravebassa ma non nulla

In italiano i pattern sono circa 330 la lista delle eccezioni egrave nulla e negli ultimi

460 APPENDICE C DIVISIONE IN SILLABE

10 anni non sono stati segnalati errori tutto ciograve la dice lunga sulla facilitagrave delladivisione fonetica dellrsquoitaliano e della difficoltagrave della divisione ritmica dellrsquoinglesein questa lingua due parole ortograficamente identiche ma che si pronuncianocon accenti ritmici diversi richiedono divisioni diverse record (nome) e record(verbo) si dividono rispettivamente in rec-ord e re-cord

I pattern per lrsquoitaliano sono tradizionalmente contenuti nel file ithyphtexma le recenti estensioni allrsquouso dei font codificati secondo la codifica UNICODEha portato alla definizione di un altro sistema di file per la definizione dei patternper le varie lingue Secondo questo nuovo schema il caricamento dei patternegrave suddiviso fra due file il primo egrave semplicemente un loader che esegue alcunedefinizioni e poi carica il file dei pattern vero e proprio questrsquoultimo per lrsquoitalianosi chiama hyph-ittex La lista vera e propria di pattern per lrsquoitaliano noncambia dal vecchio al nuovo formato ma per altre lingue ci possono essere diversicambiamenti legati alla presenza di caratteri specifici di quella lingua che sefossero scritti con la codifica interna di TEX per i numeri esadecimali oppurefossero codificati con numeri decimali risulterebbero del tutto incomprensibili Illoader allora definisce quei caratteri con delle sequenze di controllo per esempioae al posto di ^^^^00e6 in modo da individuare direttamente la legatura lsquoaeligrsquo

Esercizio C1 Il lettore cerchi nellrsquoelenco dei pattern (nel file ithyphtex op-pure hyph-ittex) quelli che corrispondono alle possibili divisioni di unaparola a sua scelta e controlli a mano la divisione prodotta dai patternsuccessivamente inserisca la stessa parola dentro al comando showhyphense verifichi se LATEX divide come egli ha trovato a mano Per semplicitagrave usila classe minimal

Esercizio C2 Percheacute la lista dei pattern contiene lrsquoattribuzione di un codicestrano allrsquoapostrofo e poi la lista dei pattern contiene anche pattern conuno o due apostrofi

Esercizio C3 Il file dei pattern non contiene nulla per dividere in sillabe inmodo etimologico la parola dispepsia anche percheacute il dizionario Garzantiindica solo la divisione di-spep-siaQuale pattern bisognerebbe aggiungere a quelli esistenti per dividere questaparola e i suoi derivati come per esempio dispeptico in modo etimologico

In alcune circostanze pur dividendo in sillabe le parole in fin di riga riman-gono delle righe sporgenti fuori della giustezza oppure troppo lsquobruttersquo percheacute lospazio interparola egrave stato allargato troppo

Non egrave il caso di preoccuparsi troppo se lrsquoindice di bruttezza (badness ininglese) egrave di qualche centinaio o di poche migliaia il messaggio di bruttezzache viene esposto sullo schermo e trascritto nel file log comincia a diventarepreoccupante se si supera il valore 5000 ma certamente la bruttezza egrave lsquoinfinitarsquose il messaggio riporta una bruttezza di 10 000

Per la bruttezza delle righe si puograve specificare nel preambolo un limite sotto ilquale il programma non deve preoccuparsi il parametro hbadness puograve venireimpostato nel preambolo ad un valore diverso a seconda del tipo di documento edel suo contenuto per esempio

hbadness=5000

461

permette di eliminare tutti i messaggi relativi alle righe la cui bruttezza siainferiore al valore 5000

In modo analogo si possono eliminare alcuni messaggi per la bruttezza verti-cale che TEX emette quando deve allargare troppo la gomma dei contrografismiverticali durante la composizione della pagina il parametro specifico si chia-ma vbadness talvolta la bruttezza verticale puograve essere notevole ma a partestabilire un valore per il parametro appena menzionato se si vuole renderela composizione veramente professionale bisogna apportare modifiche al testoda comporre Generalmente questa bruttezza verticale dipende dal fatto cheun oggetto ingombrante (come ad esempio il titolino di una sezione seguito daalmeno due righe di testo) non trova posto al fondo di una pagina Allungando iltesto che precede lrsquooggetto ingombrante si riduce lrsquoammontare dellrsquoallargamentodella gomma verticale

Tornando alle righe brutte si puograve procedere come per le pagine brutte simodifica il testo Tuttavia sarebbe meglio conoscere il meccanismo con cui TEXdivide i capoversi in righe Siccome perograve questo argomento si addentra nelle partipiugrave tecniche si rinvia il lettore al testo di base il TEXbook dove lrsquoargomento egravesviscerato nei dettagli

Qui il lettore si accontenti di sapere che la brutta divisione che TEX hatrovato egrave quella che rende minima la bruttezza dellrsquointero capoverso dunque crsquoegravepoco da fare per ridurre la bruttezza visto che questa egrave la minima possibile Sipuograve tentare per esempio di introdurre degli altri punti di cesura mediante ilcomando -

Ci si ricordi inoltre che i pattern per lrsquoitaliano non dividono i dittonghi (ed egravegiusto) ma non dividono nemmeno gli iati questa decisione egrave stata presa con unamotivazione lsquopsicologicarsquo il lettore si trova a disagio se trova un gruppo di due opiugrave vocali spezzato fra due righe anche quando la grammatica lo consentirebbesi egrave deciso di spezzare i gruppi di tre o piugrave vocali se queste contengono almenoun dittongo o un lsquotrittongorsquo ma lasciando un eventuale trittongo indiviso quindilsquoquietorsquo si divide solo in lsquoquie-torsquo percheacute contiene un trittongo ma lsquomaieuticarsquo sidivide in lsquoma-ieu-ti-carsquo percheacute le quattro vocali contengono un trittongo Perogravelsquoaiuolarsquo viene diviso solamente in lsquoaiuo-larsquo e non in lsquoa-iuo-larsquo come la grammaticaconsentirebbe percheacute TEX non divide dopo sillabe iniziali o prima di sillabefinali lsquotroppo cortersquo

Una sillaba iniziale o finale egrave troppo corta se contiene meno lettere del numerospecificato dai parametri lefthyphenmin e righthyphenmin per lrsquoitalianoentrambi questi parametri valgono 2 mentre per lrsquoinglese il francese ed altrelingue essi valgono rispettivamente 2 e 3

Con i vincoli tipografici e psicologici indicati pertanto parole come lsquoidearsquolsquomaestrorsquo lsquoeroersquo lsquocroatorsquo perdono dei possibili punti di divisione grammaticalema rispettano le regole tipografiche e quelle psicologiche Allrsquooccorrenza egrave semprepossibile dividere mediante lrsquouso del carattere attivo oppure mediante la predi-sposizione di elenchi di parole divise da dare in pasto al comando hyphenationchi scrive perograve non ne ha mai avuto bisogno specialmente da quando pdflatexpuograve usare il pacchetto microtype che consente una composizione migliore e conpochissime parole divise in sillabe in fin di riga Questo testo ha pagine intere incui non compare nemmeno una cesura o dove compare una cesura sola

Perciograve in quelle rare circostanze in cui la giustezza non consente la compo-sizione perfetta nemmeno usando microtype per un dato capoverso diviso inmodo brutto si potrebbe formare un gruppo dove si impostano i due parametri

462 APPENDICE C DIVISIONE IN SILLABE

lefthypenmin eo righthyphenmin a valori piugrave bassi eo si inseriscono ledivisioni esplicite per esempio di paese oppure di ideale La bruttezzasi sposta dalla forma del capoverso alle cesure scelte in modo infelice

Unrsquoaltra possibilitagrave egrave quella di usare lrsquoambiente sloppypar con le impostazionie la sintassi seguente

beginsloppypartolerance=〈tolleranza〉〈capoverso da comporre〉endsloppypar

Il valore 〈tolleranza〉 viene specificato mediante un numero inferiore a 10 000ma altrimenti piuttosto alto chi scrive solitamente usa il valore 9999 Si trattadi una forte tolleranza che perograve secondo TEX non egrave infinita Il capoverso avragraveuna certa bruttezza ma non saragrave infinitamente brutto

La soluzione migliore se il capoverso lo consente egrave perograve quella di modificareil testo spesso basta aggiungere o togliere una parola oppure scambiare di postodue parole oppure riformulare un periodo o una frase Se il capoverso non egravetroppo corto le possibilitagrave sono innumerevoli

Per altro il lettore attento avragrave notato che in questo testo le cesure in fin diriga sono rarissime in parte egrave merito dellrsquouso del pacchetto microtype e in partedel fatto che la giustificazione delle righe mediante il sapiente allargamento erestringimento dello spazio interparola guidato dallrsquoalgoritmo di minimizzazionedella bruttezza di ciascun capoverso rende la divisione in sillabe piuttosto raraQuesto egrave uno dei pregi del programma di composizione tipografica pdftex che lorende insuperabile in molte applicazioni

Appendice D

Codifica in entrata ecodifica in uscita

Nella pagina 112 si egrave definito ciograve che si intende per codifica La definizione siriferisce ai file relativi ai font che vengono usati per lsquoscriverersquo il documento nelfile di uscita Nello stesso tempo si egrave parlato spesso di codifica dei caratteri concui si scrive il file tex da comporre

Qui bisogna fare attenzione a non confondere le idee infatti la codifica inentrata quella che serve per scrivere i file tex riguarda il modo di funzionaredello shell editor con il quale si esegue questa scrittura La codifica in uscitariguarda le polizze dei caratteri che si usano per la composizione In mezzo fraqueste due codifiche si trova il programma di composizione pdflatex che usa unasua codifica interna

Quando si invoca il pacchetto inputenc con una qualunque opzione di codificache il pacchetto accetti si stabilisce una corrispondenza fra la codifica dei caratteriimmessi con la tastiera nello shell editor (che esso trascrive nel file tex e chemostra graficamente sullo schermo) con la codifica interna di pdflatex

Quando invece si invoca il pacchetto fontenc con una qualunque opzioneaccettata da questo pacchetto si stabilisce una corrispondenza fra il codiceinterno di pdflatex e i vari segni delle polizze dei font usati caratterizzati dallacodifica specificata e trascritti da pdflatex sia nella pagina in lavorazione sianelle pagine emesse nel file di uscita le pagine composte che finalmente sarannovisualizzate sullo schermo o stampate su carta

I dettagli sono molto tecnici e si omettono non conosco nessun documentodove questi dettagli siano descritti in modo comprensibile per quel che riguardala codifica di uscita esiste il file encguidepdf nella cartella doclatexbase dove vengono descritte alcune delle codifiche latine in particolare lacodifica T1

Perograve non egrave particolarmente difficile leggere i file per esempio latin1defe t1encdef1 il primo descrive la corrispondenza fra i caratteri della tastieracodificati secondo la norma ISO 8859-1 nota anche come ISO Latin e la codificainterna di pdflatex

1Si trovano entrambi nella cartellatexlatexbase

463

464 APPENDICE D CODIFICA IN ENTRATA E CODIFICA IN USCITA

Se si apre il file latin1def si vede che le prime righe definiscono conProvideTextCommandDefault il significato di default di alcuni comandi internigeneralmente conosciuti da parte di pdflatex per esempio il primo comando

ProvideTextCommandDefaulttextdegreeensuremath^circ

dice che se textdegree non egrave ancora stato definito esso va composto di defaultin modo matematico con un circoletto ad esponente Naturalmente esistono deipacchetti per i font di uscita che possono definire o ridefinire questo comando didefault per produrre un segno piugrave adeguato disegnato apposta ma in mancanzadi questi font la definizione di default produce un risultato accettabile

Ci sono anche dei comandi del tipo

ProvideTextCommandDefaulttextcentTextSymbolUnavailabletextcent

che emettono un messaggio di errore se si usa il comamdo textcent questosuccede percheacute il segno cent non egrave simulabile in nessun modo per produrlo ci vuoledunque lrsquouso di una polizza di caratteri in uscita che contenga questo segno eche perciograve dia una definizione valida per textcent

Dopo altri comandi di questa specie vengono definite le corrispondenze frai caratteri con gli indirizzi da 164 a 255 nella codifica ISO 8859-1 e la codificainterna di pdflatex Per esempio la definizione

DeclareInputText164textcurrency

specifica che introducendo nello shell editor con la tastiera il carattere che ildriver della tastiera trasforma nel codice 164 questo produce sullo schermo ilsegno curren Egrave vero che fra i primi comandi si dichiara che il segno corrispondenteal comando textcurrency non egrave disponibile ma se questo comando egrave giagrave statodefinito o viene ridefinito in altro modo questo segno potrebbe venire stampatonel modo giusto e non verrebbe emesso nessun avviso di simbolo indisponibileinfatti qualche riga piugrave in alto il segno egrave stato stampato correttamente percheacute lacomposizione di questo testo si affida anche al pacchetto textcomp che permettedi usare i segni della famiglia Text Companion Font illustrati nella figura 119

Per i caratteri in entrata non strettamente ASCII come le lettere nazionalisi hanno poi svariate definizioni det tipo seguente valido per la lettera lsquoiumlrsquo chenella codifica ISO Latin 1 occupa la posizione 239

DeclareInputText239i

Questa dichiarazione sostituisce il carattere lsquoiumlrsquo contenuto nel file di entrata conquanto egrave contenuto nel secondo argomento ma del quale lrsquoutente normale nondeve preoccuparsi esso serve per porre la dieresi sulla lettera lsquoırsquo senza puntinoindicato con la macro i Oggi lrsquoutente normale non deve preoccuparsi della lsquoisenza puntinorsquo (a meno che non scriva in irlandese o in turco) percheacute ci pensasempre LATEX a usarla quando occorre almeno in modalitagrave testo Si vede dunqueche anche in questo caso il carattere non appartenente al sottoinsieme ASCIIviene sostituito con codici interni di LATEX

Si noti dunque che con la codifica di entrata (le altre disponibili con il sistemaTEX sono concepite nello stesso modo ma ovviamente con definizioni diverse)ogni tasto che produca nello shell editor un segno diverso dai caratteri ASCIIviene trasformato in un segno visibile sullo schermo e nel file tex che si sta

465

scrivendo o modificando Quando il file tex verragrave letto da pdflatex ogni carattereche vi si trova viene sostituito da comandi interni di LATEX e verragrave trattato cometale fincheacute non verragrave il momento di trasferire il testo composto nel buffer diuscita costituito dalla famosa scatola 255 riservata da TEX per questo scopo

Si ricorda che i primi 128 caratteri di ogni codifica di ingresso corrispondonosempre ai caratteri definiti dallrsquoAmerican Standard Code for Information Inter-change ndash ASCII che comprendono i 32 codici per lrsquoazionamento delle telescriventi(cose del passato) le cifre i segni di interpunzione e lrsquoalfabeto latino di 26 letterenon accentate in forma maiuscola e minuscola per un totale di 128minus 32 = 96segni stampabili (in realtagrave il centoventottesimo non egrave stampabile e quindi nerestano solo 95) Da una codifica ISO allrsquoaltra cambiano i secondi 128 caratteried egrave per questo che esistono diversi nomi per distinguere le varie codifiche diingresso Ognuno dei file def relativo alla codifica di ingresso definisce i comanditestuali di default e la corrispondenza fra i codici da 164 a 255 con i comandiinterni di LATEX

Il secondo file t1encdef contiene le definizioni delle corrispondenze fra icomandi interni di LATEX e le posizioni dei singoli segni nella tabella del font diuscita La sintassi egrave un porsquo diversa da quella usata per la codifica di ingressoma il significato egrave altrettanto comprensibile Per esempio

DeclareTextAccentlsquoT10DeclareTextAccentrsquoT11

definiscono gli accenti grave e acuto mettendo in relazione i comandi LATEX lsquo ersquo con la posizione dei corrispondenti segni (0 e 1 rispettivamente) nella polizzaconforme alla codifica T1 Di fatto questi accenti possono servire solo per esseresovrapposti a lettere che non hanno corrispondenza nella codifica del font diuscita T1 per esempio s

Per la cediglia che non egrave un segno da mettere sopra una lettera la definizioneegrave molto piugrave complessa

DeclareTextCommandcT1[1]leavevmodesetboxzhbox1ifdimhtz=1exaccent11 1elseooalignunhboxzcrcr

hidewidthchar11hidewidthfi

ma si dice sempre che il comando per la cediglia c trova il segno lsquocedigliarsquo nellaposizione 11 per metterlo sotto la lettera che costituisce il suo unico argomentoPerograve per i segni con la cediglia presenti nella polizza codificata con la codificaT1 come ccedil ţ ş2 allora ulteriori comandi dicono che cosa fare per trovare il segnogiusto nella polizza dei font

Successivamente vengono definite le corrispondenze fra i simboli speciali eoaccentati e gli indirizzi in cui trovare questi segni nella polizza codificata T1Per esempio

DeclareTextSymbolssT1255DeclareTextCompositeT1i239DeclareTextCompositeT1i239

2Questi ultimi due se usati in rumeno non dovrebbero avere la cediglia ma una virgolaspesso perograve i rumeni devono accontentarsi di una approssimazione percheacute molti font mancanodel segno con la virgola esiste il pacchetto combelow per risolvere con LATEX questo problema

466 APPENDICE D CODIFICA IN ENTRATA E CODIFICA IN USCITA

La prima dichiarazione serve per indicare che il segno szlig ottenibile con il comandointerno ss si trova nella posizione 255 della polizza Invece il segno ottenutousando il comando per la dieresi con lrsquoargomento i (i con il puntino) oppurei (i senza puntino) producono entrambi la lsquoiumlrsquo giagrave accentata3 che si trova nellaposizione 236 della polizza dei font codificati T1

Se invece non si egrave specificata nessuna opzione per la codifica del font diuscita LATEX usa la codifica di default OT1 con questa codifica aprendo il fileot1encdef si trovano le seguenti dichiarazioni

DeclareTextAccentOT1127DeclareTextSymboliOT116DeclareTextCompositeCommandOT1ii

La prima dichiarazione indica dove trovare nella polizza dei caratteri il segnoper la dieresi la seconda dice dove trovare nella polizza dei caratteri la lsquoirsquo senzapuntino la terza dice che se in entrata si egrave scritto i invece che direttamente igravela sequenza per il comando della dieresi seguita dalla lettera i col puntino deveessere interpretata alla stessa maniera di come si interpreta il codice di ingressoiuml cioegrave come i Come si vede entrambe le dichiarazioni sono valide solo perla codifica dei font di uscita OT1

Quando quindi LATEX incontra una lsquoirsquo accentata o con la macro per lrsquoaccento orappresentata direttamente con il codice drsquoentrata per la lsquoirsquo accentata si ritrova adover eseguire lrsquoespressione i questa si traduce in parole povere nella stringaaccent127char16 il comando primitivo accent serve per sovrapporre ilsegno che ha lrsquoindirizzo specificato come suo argomento sul segno seguente chequi egrave indicato con il comando primitivo char seguito dallrsquoindirizzo specificodella lsquoirsquo senza puntino I comandi primitivi non sono sviluppabili sono eseguibilima quando lrsquoalgoritmo di divisione in righe entra in gioco agisce sul testo checontiene questi comandi primitivi non ancora eseguiti Come tali non fanno partedella stringa di token leciti in una parola per cui lrsquoalgoritmo di sillabazionetermina la lsquoparolarsquo subito prima del comando per lrsquoaccento cosiccheacute non riesce asillabare completamente lrsquointera stringa che gli umani considerano una parola

Ora dovrebbe quindi essere chiaro che

1 Quando pdflatex deve eseguire la sillabazione usando per lrsquouscita la codificaT1 si trova nel suo buffer interno il capoverso da dividere in righe compostosolo da caratteri e non contiene comandi di nessun genere (tranne quelliche non riguardano il testo) e quindi funziona a dovere Invece con lacodifica OT1 quella di default ogni comando per inserire gli accenti restanel buffer del capoverso e abbiamo visto che questo impedisce a pdflatexdi riconoscere come parole le stesse stringhe di caratteri che gli umaniconsiderano parole

2 I segni accentati delle polizze codificate T1 sono disegnati individualmentequindi lo stesso accento egrave collocato sulla lettera di base nella posizione piugraveopportuna in relazione alla sua forma Invece con la codifica OT1 lo stessoaccento viene sempre centrato sulla mezzeria della lettera di base senzatenere conto delle asimmetrie ottiche associate a ciascuna lettera di base

3Questo fatto succede con tutti gli accenti quando lrsquoargomento egrave una lsquoirsquo Per cui diventaobsoleta la prescrizione che per mettere un accento sopra la lsquoirsquo bisogna usare solo la variantesenza puntino

467

Son queste due ottime ragioni per non usare mai i font con codifiche diverseda T1 quando si compongono con pdflatex testi in lingue che contengono diversidiacritici in realtagrave questa raccomandazione vale anche per lrsquoinglese che solita-mente non usa diacritici ma li usa (a) nelle citazioni di nomi o parole stranieree (b) nelle edizioni storiche o critiche di testi scritti in middle English

Discorsi simili si possono fare per la codifica utf8 solo che ogni carattereUNICODE che si introduce con la tastiera attraverso lo shell editor nel filetex non egrave formato da un solo carattere di otto bit ma da un codice di almeno16 bit per cui la gestione dellrsquoimmissione dei caratteri nel file tex egrave un pocopiugrave complicata Anche la trasformazione dei caratteri immessi in eventualicomandi TEX o LATEX diventa un poco piugrave complessa Ma offre il vantaggio chetastiera permettendo qualunque segno immissibile con la tastiera puograve esserefatto corrispondere con il segno giusto compatibilmente con la codifica dei fontdi uscita Se anche i font di uscita sono codificati UTF-8 non crsquoegrave bisogno dinessun passaggio intermedio ed egrave questo quello che fanno i compilatori xetexluatex e context-mk-iv

Qualsiasi sia la codifica dei caratteri di ingresso nasce un problema che ogniutente di LATEX o degli altri programmi della collezione deve affrontare

Egli deve specificare nel preambolo del suo documento quale sia la codificadel font con il quale ha scritto il file sorgente mediante lrsquouso dellrsquoopzione giustaal pacchetto inputenc altrimenti il suo file non potragrave essere correttamentecompilato

Un errore comune egrave quello di scordarsi addirittura di invocare il pacchettoinputenc non parliamo di specificare una opzione valida oppure di invocareil pacchetto ma di specificare una opzione con coerente con le impostazionidello shell editor Succede piugrave spesso di quanto non si creda Tizio scrive unfile sorgente tex usando la codifica di ingresso utf8 poi spedisce il file al suocollega Caio Caio il cui shell editor egrave configurato per usare la codifica latin1apre il file inviatogli da Tizio ma non riesce a leggere quasi niente percheacute trovail testo intercalato con caratteri strani Questa egrave un situazione frequentissima

Egrave successo anche a chi scrive (utente di un portatile MacBook Pro) diricevere da unrsquoaltra persona anchrsquoessa utente di una macchina simile un fileLATEX codificato con la codifica MacRoman lrsquoaltra persona non si rendeva contoche quella egrave una codifica ristretta ai sistemi Mac e non egrave diffusa come le codifichelsquoapolidirsquo non legate ad un particolare sistema operativo o a una particole marcadi hardware Chi scrive abitualmente usa la codifica ISO Latin 1 per scrivere initaliano e la codifica UTF-8 per scrivere in altre lingue quando ha ricevuto ilfile ci ha messo un poco a rendersi conto di questa situazione e quando se ne egraveaccorto era troppo tardi per porvi rimedio in modo corretto Quanto segue oltrea descrivere la situazione relativa ai malintesi generati dalle varie codifiche serveanche per indicare alcuni modi corretti per affrontare questo tipo di problemi

Se Tizio e Caio stanno usando lo shell editor multipiattaforma TeXworks e sehanno configurato bene il file tex non devono fare nulla Per configurare beneil file bisogna che esso prima del testo vero e proprio contenga delle righe dicommento speciali che dicono a TeXworks se esiste e come si chiama il masterfile e quale sia la codifica usata per scrivere il testo (nellrsquoesempio che segue laprima riga egrave facoltativa nel senso che se il file egrave il master file non crsquoegrave nessunbisogno di fornire questa informazione lapalissiana)

TeXroot=MyMasterFiletex

468 APPENDICE D CODIFICA IN ENTRATA E CODIFICA IN USCITA

TeXencoding=IsoLatin

In questo modo se Tizio e Caio usano shell editor diversi ma che siano in gradodi decifrare queste speciali righe di commento sono gli editor che si autoregolanodi conseguenza e i due tastieristi non devono fare assolutamente nulla

Esistono poi alcuni shell editor che riconoscono automaticamente la codificausata per creare i file Apparentemente Aquamacs egrave uno di questi shell editor nonho abbastanza esperienza con questo programma ma credo di poter confermarelrsquoaffermazione TeXmakerX egrave in grado di distinguere la codifica latin1 e la codificautf8 per le altre codifiche deve venire configurato a mano

Se Tizio e Caio non si trovano in queste condizioni che cosa deve fare Caio perpoter elaborare il testo contenuto nel file ricevuto da Tizio Ha due possibilitagrave(a) cambia codifica al file tex oppure (b) cambia lrsquoimpostazione della codificadel suo shell editor Ma prima di tutto deve scoprire quale sia la codifica del filericevuto da Tizio

La soluzione (b) sarebbe preferibile Infatti se Tizio poteva compilare cor-rettamente il suo file era percheacute aveva specificato lrsquoopzione giusta al pacchettoinputenc Caio allora bencheacute non riesca a leggere il testo del documento sor-gente con facilitagrave puograve perograve leggere perfettamente il preambolo basta allora checerchi la stringa inputenc e ligrave trova che Tizio ha usato la codifica utf8 Chiudeil file appena aperto ma senza salvarlo riconfigura lo shell editor percheacute usianchrsquoesso la stessa codifica e poi riapre lo stesso file dove ora potragrave leggereperfettamente il testo

Fin qui va bene Ma se Tizio ha usato la codifica utf8 ma si egrave scordato dispecificare la codifica del suo shell editor nel preambolo del documento Bersquovuol dire due cose primo non poteva compilare il suo file producendo il file diuscita in modo corretto e secondo Caio deve tirare a indovinare per scoprirela codifica usata da Tizio probabilmente in modo inconsapevole egrave chiaro chebasterebbe una telefonata o un messaggio di posta elettronica ma talvolta il fileegrave stato scritto da un anonimo Tizio che lrsquoha messo in rete e Caio lrsquoha trovatointeressante guardandolo sullo schermo ma dopo averlo scaricato non riescepiugrave a leggerlo In questo caso disperato sempre senza modificare e salvare ilfile appena scaricato tira ad indovinare lrsquoindovinello egrave facile se il file era statoscritto usando la codifica utf8 percheacute ogni carattere non ASCII egrave sostituito dadue caratteri strani Invece lrsquoindovinello puograve essere difficile se appaiono caratteristrani isolati specialmente alla fine delle parole Non resta che provare tutte lecodifiche di cui il proprio shell editor sia capace fincheacute si lsquoimbroccarsquo la codificagiusta Magari poi con un porsquo di esperienza si sanno interpretare i caratteri stranie lrsquoindovinello non egrave piugrave tanto difficile da risolvere

Il caso piugrave disperato si ha quando Tizio eo Caio si servono di shell editorvecchiotti che usano una sola codifica ma purtroppo si tratta di codifiche diverseNon crsquoegrave quindi modo di modificare le impostazioni dello shell editor e non rimanealtra scelta che quella di cambiare mediante appositi programmi da linea dicomando la codifica del file tex

Tra questi programmi quello base egrave egrave lrsquoapplicativo iconv per macchine Linuxe Mac OS X la cui sintassi egrave

iconv [-c] [-s] [-f codifica] [-t codifica] inputfile

dove le opzioni -c e -s controllano i messaggi drsquoerrore nel caso che il file diingresso contenga caratteri non convertibili Il file di ingresso inputfile egrave scritto

469

con la codifica specificata con lrsquoopzione -f mentre il file di uscita egrave scritto conla codifica specificata con lrsquoopzione -t Il programma di default scrive il filedi uscita nello stream di scrittura standard (generalmente lo schermo) se sivuole scrivere su un file vero e proprio bisogna reindirizzare lrsquouscita verso un filetramite il codice di reindirizzamento

Per conoscere le codifiche disponibili sulla particolare macchina sulla quale sista lavorando e per scrivere i nomi delle codifiche con lrsquoortografia giusta convienedare il comando

iconv -l

e sul terminale appare tutto lrsquoelenco delle codifiche disponibili per le quali egravepossibile eseguire le conversioni Le codifiche scritte sulla stessa riga sono sinonimilrsquouna dellrsquoaltra stando alla pagina del manuale Nella macchina sulla quale stolavorando le codifiche disponibili (con le righe ripiegate e rientrate per i limitidella giustezza del testo) sono

ANSI_X34-1968 ANSI_X34-1986 ASCII CP367 IBM367 ISO-IR-6ISO646-US ISO_646IRV1991 US US-ASCII CSASCII

UTF-8ISO-10646-UCS-2 UCS-2 CSUNICODEUCS-2BE UNICODE-1-1 UNICODEBIG CSUNICODE11UCS-2LE UNICODELITTLEISO-10646-UCS-4 UCS-4 CSUCS4UCS-4BEUCS-4LEUTF-16UTF-16BEUTF-16LEUTF-32UTF-32BEUTF-32LEUNICODE-1-1-UTF-7 UTF-7 CSUNICODE11UTF7UCS-2-INTERNALUCS-2-SWAPPEDUCS-4-INTERNALUCS-4-SWAPPEDC99JAVACP819 IBM819 ISO-8859-1 ISO-IR-100 ISO8859-1 ISO_8859-1

ISO_8859-11987 L1 LATIN1 CSISOLATIN1ISO-8859-2 ISO-IR-101 ISO8859-2 ISO_8859-2 ISO_8859-21987

L2 LATIN2 CSISOLATIN2ISO-8859-3 ISO-IR-109 ISO8859-3 ISO_8859-3 ISO_8859-31988

L3 LATIN3 CSISOLATIN3ISO-8859-4 ISO-IR-110 ISO8859-4 ISO_8859-4 ISO_8859-41988

L4 LATIN4 CSISOLATIN4CYRILLIC ISO-8859-5 ISO-IR-144 ISO8859-5 ISO_8859-5

ISO_8859-51988 CSISOLATINCYRILLICARABIC ASMO-708 ECMA-114 ISO-8859-6 ISO-IR-127 ISO8859-6

ISO_8859-6 ISO_8859-61987 CSISOLATINARABIC

470 APPENDICE D CODIFICA IN ENTRATA E CODIFICA IN USCITA

ECMA-118 ELOT_928 GREEK GREEK8 ISO-8859-7 ISO-IR-126 ISO8859-7ISO_8859-7 ISO_8859-71987 CSISOLATINGREEK

HEBREW ISO-8859-8 ISO-IR-138 ISO8859-8 ISO_8859-8 ISO_8859-81988CSISOLATINHEBREW

ISO-8859-9 ISO-IR-148 ISO8859-9 ISO_8859-9 ISO_8859-91989L5 LATIN5 CSISOLATIN5

ISO-8859-10 ISO-IR-157 ISO8859-10 ISO_8859-10 ISO_8859-101992L6 LATIN6 CSISOLATIN6

ISO-8859-13 ISO-IR-179 ISO8859-13 ISO_8859-13 L7 LATIN7ISO-8859-14 ISO-CELTIC ISO-IR-199 ISO8859-14 ISO_8859-14

ISO_8859-141998 L8 LATIN8ISO-8859-15 ISO-IR-203 ISO8859-15 ISO_8859-15 ISO_8859-151998ISO-8859-16 ISO-IR-226 ISO8859-16 ISO_8859-16 ISO_8859-162000KOI8-R CSKOI8RKOI8-UKOI8-RUCP1250 MS-EE WINDOWS-1250CP1251 MS-CYRL WINDOWS-1251CP1252 MS-ANSI WINDOWS-1252CP1253 MS-GREEK WINDOWS-1253CP1254 MS-TURK WINDOWS-1254CP1255 MS-HEBR WINDOWS-1255CP1256 MS-ARAB WINDOWS-1256CP1257 WINBALTRIM WINDOWS-1257CP1258 WINDOWS-1258850 CP850 IBM850 CSPC850MULTILINGUAL862 CP862 IBM862 CSPC862LATINHEBREW866 CP866 IBM866 CSIBM866MAC MACINTOSH MACROMAN CSMACINTOSHMACCENTRALEUROPEMACICELANDMACCROATIANMACROMANIAMACCYRILLICMACUKRAINEMACGREEKMACTURKISHMACHEBREWMACARABICMACTHAIHP-ROMAN8 R8 ROMAN8 CSHPROMAN8NEXTSTEPARMSCII-8GEORGIAN-ACADEMYGEORGIAN-PSKOI8-TMULELAO-1CP1133 IBM-CP1133ISO-IR-166 TIS-620 TIS620 TIS620-0 TIS6202529-1 TIS6202533-0

TIS6202533-1

471

CP874 WINDOWS-874VISCII VISCII11-1 CSVISCIITCVN TCVN-5712 TCVN5712-1 TCVN5712-11993ISO-IR-14 ISO646-JP JIS_C6220-1969-RO JP CSISO14JISC6220ROJISX0201-1976 JIS_X0201 X0201 CSHALFWIDTHKATAKANAISO-IR-87 JIS0208 JIS_C6226-1983 JIS_X0208 JIS_X0208-1983

JIS_X0208-1990 X0208 CSISO87JISX0208ISO-IR-159 JIS_X0212 JIS_X0212-1990 JIS_X02121990-0 X0212

CSISO159JISX02121990CN GB_1988-80 ISO-IR-57 ISO646-CN CSISO57GB1988CHINESE GB_2312-80 ISO-IR-58 CSISO58GB231280CN-GB-ISOIR165 ISO-IR-165ISO-IR-149 KOREAN KSC_5601 KS_C_5601-1987 KS_C_5601-1989

CSKSC56011987EUC-JP EUCJP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE

CSEUCPKDFMTJAPANESEMS_KANJI SHIFT-JIS SHIFT_JIS SJIS CSSHIFTJISCP932ISO-2022-JP CSISO2022JPISO-2022-JP-1ISO-2022-JP-2 CSISO2022JP2CN-GB EUC-CN EUCCN GB2312 CSGB2312CP936 GBKGB18030ISO-2022-CN CSISO2022CNISO-2022-CN-EXTHZ HZ-GB-2312EUC-TW EUCTW CSEUCTWBIG-5 BIG-FIVE BIG5 BIGFIVE CN-BIG5 CSBIG5CP950BIG5-HKSCS BIG5HKSCSEUC-KR EUCKR CSEUCKRCP949 UHCCP1361 JOHABISO-2022-KR CSISO2022KR

Perciograve per trasformare il file myfiletex scritto con la codifica latin1 in unaltro file myfile-utf8tex scritto con la codifica utf8 bisogna dare il comando

iconv -f LATIN1 -t UTF-8 myfiletex gt myfile-utf8tex

Per convertire un file myfilewtex scritto su una macchina Windows con lacode page di default 1252 in un file con la codifica latin1 si scriveragrave

iconv -f WINDOWS-1252 -t LATIN1 myfilewtex gt myfile-latin1tex

Per il Mac esiste un interfaccia grafica charco che permette di fare sostanzial-mente le stesse cose lavorando prevalentemente con il mouse

Per le macchine Windows si puograve usare ancora iconv ma bisogna installarlodentro lrsquoambiente di simulazione CygWin operando come se si stesse installandoil programma su una macchina Linux

472 APPENDICE D CODIFICA IN ENTRATA E CODIFICA IN USCITA

32 48 0 64 80 P 96 lsquo 112 p33 49 1 65 A 81 Q 97 a 113 q34 50 2 66 B 82 R 98 b 114 r35 51 3 67 C 83 S 99 c 115 s36 $ 52 4 68 D 84 T 100 d 116 t37 53 5 69 E 85 U 101 e 117 u38 amp 54 6 70 F 86 V 102 f 118 v39 rsquo 55 7 71 G 87 W 103 g 119 w40 ( 56 8 72 H 88 X 104 h 120 x41 ) 57 9 73 I 89 Y 105 i 121 y42 58 74 J 90 Z 106 j 122 z43 + 59 75 K 91 [ 107 k 123 44 60 lt 76 L 92 108 l 124 |45 - 61 = 77 M 93 ] 109 m 125 46 62 gt 78 N 94 ^ 110 n 126 ~47 63 79 O 95 _ 111 o 127

Tabella D1 I 95 caratteri ASCII stampabili Il carattere ASCII 32 egrave lo spazio quireso visibile () mediante il comando textvisiblespace Il carattere ASCII 127(il novantaseiesimo della tabella) non egrave un carattere stampabile

Alternativamente si puograve scaricare la libreria libiconv dal sito httpsourceforgenetprojectsgnuwin32fileslibiconv e lrsquoinstallatore prov-vede anche a rendere disponibile la versione Windows Win-iconv con la quale sipuograve operare senza ricorrere allrsquoambiente di simulazione CygWin

Se tutto ciograve dovesse lsquodisturbarersquo o comunque apparire troppo complicatonon resta che rifarsi al TEX originale scrivere o convertire il file sorgente texusando solo caratteri ASCII bisogna cioegrave sostituire globalmente ogni istanzadel carattere eacute con la sequenza rsquoe operando nello stesso modo per ogni altrocarattere non ASCII In questo modo il file sorgente non dipende da nessunacodifica percheacute qualunque codifica deve avere i primi 128 caratteri in corrispon-denza biunivoca con i caratteri ASCII Vale la pena di avere la tabella D1 inmodo da sapere esattamente di che cosa si stia parlando

Un altro problema sorge invece quando si compone un testo eseguendo uncollage di contributi di varie persone che hanno fornito file in formati come doco pdf e il compositore procede a mano copiando dal file esterno e incollandonel file tex

In questi casi spesso sono i caratteri di interpunzione quelli che differisconosensibilmente dai caratteri della codifica che si vorrebbe usare fosse essa anchela codifica piugrave generale utf8 A occhio nudo spesso questi caratteri (apostrofovirgolette semplici virgolette diritte eccetera) sono difficili da rilevare percheacute ilriconoscimento corretto dipende anche dal disegno dei font che vengono usati dalloshell editor nella finestra del file sorgente io preferisco i font a spaziatura fissain questa finestra del file sorgente ma nonostante questo quei segni sono difficilida rilevare ad occhio nudo Tenendo conto che un file deve essere scritto tuttocon la stessa codifica bisogna per forza o convertire a mano tutti i segni nellacodifica principale oppure marcare il file sorgente con la codifica specifica usatadal collaboratore esterno o che il suo programma di trasformazione nel file pdfha usato TeXworks potrebbe interpretare correttamente questa informazione

473

e Aquamacs potrebbe diagnosticare da solo la codifica usata In ogni caso sipuograve eseguire la compilazione con pdflatex e poi andare a controllare un certonumero di istanze di questi caratteri speciali passando dalla finestra del filesorgente alla finestra del file composto sfruttando la capacitagrave dello shell editor edel visualizzatore del file composto di eseguire correttamente la ricerca direttae inversa Se questi caratteri un porsquo particolari sono tutti presenti in modocorretto nel file di uscita allora la codifica dichiarata o determinata egrave correttaAltrimenti egrave opportuno procedere ad una correzione manuale di tutti questisegni solitamente la ricerca e sostituzione di tutte le istanze di un dato caratterepuograve essere fatta con pochi click di mouse con qualunque shell editor

Riassumendo

bull Egrave necessario eseguire subito una copia del file di cui si deve cambiare lacodifica nel caso ci si sbagli con le operazioni successive il file originalepuograve sempre essere recuperato

bull Se aprendo un file tex con lo shell editor si vede il file che contiene deicaratteri strani allora lrsquoimpostazione della codifica dello shell editor noncorrisponde alla codifica del font con cui egrave stato scritto il file tex

bull Non bisogna assolutamente modificare il file neacute tanto meno salvarlo dopoavere malauguratamente fatto modifiche bisogna invece chiudere subitolo shell editor senza alterare minimamente il file appena aperto poi bisognareimpostare se possibile lrsquoimpostazione della codifica dello shell editorche si sta usando e infine riaprire lo stesso file

bull Se non fosse possibile reimpostare lo shell editor allora si puograve usare ilprogramma iconv da linea di comando producendo un altro file texcodificato con la codifica conforme a quella dellrsquoimpostazione dello shelleditor

bull In mancanza di qualunque altro mezzo di configurazione o di conversionedi codifica bisogna pazientemente cambiare a mano la codifica (usandoi comandi globali dello shell editor) in modo da trasformare il file texiniziale in un file scritto solamente mediante lrsquouso dei caratteri ASCII

bull Bisogna procedere a mano spesso anche quando si compone un testomettendo insieme delle parti composte da altri collaboratori che hannousato altri programmi e forniscono i loro contributi per esempio in formatodoc o in formato pdf

In questo testo si egrave sempre consigliato di usare la codifica latin1 pur nonessendo completamente conforme con qualunque impostazione di sistema opera-tivo eo di shell editor per scrivere in italiano e nella maggior parte delle lingueoccidentali questa codifica va benissimo e mantiene decisamente contenute ledimensioni del file sorgente

Oggi perograve viene suggerito sempre piugrave sovente di usare la codifica di entratautf8 il file sorgente aumenta un poco di dimensioni ma si egrave sicuri che pur diusare uno shell editor recente che accetti la codifica di ingresso utf8 non esistonoproblemi di codifica a livello di pdflatex Va anche notato che le versioni aggiornatedei piugrave moderni shell editor giagrave dalla prima installazione sono preimpostati perlavorare con la codifica utf8

474 APPENDICE D CODIFICA IN ENTRATA E CODIFICA IN USCITA

Tuttavia secondo lrsquoesperienza di chi scrive il successo di aderire sistemati-camente alla codifica utf8 non garantisce di evitare problemi quando si eseguelavoro cooperativo visto che i vari lsquotastieristirsquo non necessariamente dispongonodegli stessi shell editor operanti su macchine dello stesso genere controllatedallo stesso sistema operativo Bisogna sempre essere pronti a riconoscere iproblemi della codifica di entrata e saperli risolvere Questa raccomandazioneegrave particolarmente indicata per coloro che si sono avvicinati al sistema TEX dapoco oppure a coloro che aggiornano il loro strumenti software a versioni piugravemoderne e non sono pronti ad affrontare questo genere di novitagrave

Appendice E

Come fa TEX a comporrele pagine

Sul Forum del guIt compaiono spesso domande che rivelano la difficoltagrave degliutenti a padroneggiare il meccanismo di composizione asincrona del sistema TEXQuesto meccanismo si badi bene egrave sostanzialmente identico con qualuunque deimotori ci composizione del sistema sia esso tex pdftex context luatex xetexo gli altri motori meno conosciuti o meno usati Per semplicitagrave nel seguito ciriferiremo a pdftex che permette di sfruttare la microgiustificazione ma quantoverragrave detto per questo motore di composizione vale sostanzialmente anche pergli altri eccetto per quel che riguarda la microgiustificazione

In tutti i casi pdftex determina per ogni capoverso e per ogni pagina dei fattoridi merito o di demerito tenendo conto di misure di lsquobruttezzarsquo nel gergo di TEXchiamata badness delle penalitagrave (penalty) e dei fattori di demerito (demerit) chevengono intercalati nel testo e nelle pagine da comporre diciamo cosigrave allrsquoinsaputadel compositore

Il compositore inserisce fattori di merito o di demerito o penalitagrave di variogenere nel file sorgente quanto usa comandi quali pagebreak clearpage ofinalhyphendemerits ma spesso questi comandi e i relativi parametri sonogiagrave presenti nei file di classe In piugrave pdftex determina altri fattori di bruttezzao di demerito per conto proprio Il risultato di tutte queste operazioni egrave cheil motore di composizione sceglie le divisioni in righe dei singoli capoversi ele divisioni in pagine dei singoli capitoli in modo da minimizzare la bruttezzacomplessiva dei capoversi oppure delle pagine

Lrsquoalgoritmo che determina questo minimo egrave decisamente complicato da unpunto di vista del programma di pdftex anche percheacute la ricerca dellrsquoottimo deveessere eseguita velocemente e con il massimo di efficienza e di efficacia

E1 Divisione dei capoversiCominicamo e riesaminare il procedimento di divisione dei capoversi in righe Sene egrave giagrave parlato nellrsquoappendice C ma ci torniamo sopra per esaminare meglioquesto meccanismo

Cominciamo a ricordare che il capoverso inizialmente costituisce una solalunga riga e il motore di composizione deve spezzare questa riga in monconi tutti

475

476 APPENDICE E COME FA TEX A COMPORRE LE PAGINE

della stessa lunghezza (ovviamente tranne lrsquoultimo moncone che puograve essere piugravecorto) Se egrave stato invocato il pacchetto microtype esiste una complicazione inpiugrave percheacute la stessa lunghezza puograve essere raggiunta anche con i meccanismi diprotrusione e di leggera deformazione orizzontale dei font che compongono ogniriga di testo cosiccheacute in prima battuta prima cioegrave di applicare questi meccani-smi raffinati le righe di testo potrebbero essere considerate di uguale lunghezzaentro una certa tolleranza dellrsquoordine di grandezza di qualche centesimo dellalunghezza da raggiungere saragrave poi compito delle macro del pacchetto microtypequello di allungare o restringere orizzontalmente il font presente nella riga aggiu-standone la lunghezza per recuperare quei pochi punti percentuali che mancano oche eccedono rispetto alla lunghezza desiderata In mancanza di questo pacchettoo della sua piena funzionalitagrave il compito di regolare la lunghezza della rigaal valore desiderato spetta a pdftex che vi provvede allungando o accorciandosolo la gomma interparola o altra eventuale gomma presente nella riga Capitoquesto concetto lasciamo da parte la microgiustificazione e concentriamoci sulmeccanismo standard

La lunga riga iniziale potrebbe giagrave di per seacute contenere delle penalitagrave positiveo negative per esempio ogni volta che si egrave usato un segno di legatura mediantela tilde ~ che inserisce nel testo uno spazio lsquoinsecabilersquo prima del quale nonsi puograve andare a capo viene inserita una penalitagrave lsquoinfinitarsquo che per TEX egrave unqualunque valore maggiore o uguale a 10 000 Oppure potrebbe essere statoinserito un comando che ordina di spezzare la riga in quel punto e questolsquoordinersquo viene esplicitato inserendo nella lunga riga una penalitagrave negativa infinita(un valore minore o uguale a minus10 000) Inoltre la descrizione della lingua italianarichiede anche lrsquoinserimento di un valore estremamente elevato di demerito se lapenultima riga di qualsivoglia capoverso terminasse con una cesura

pdftex va allora a cercare tutti i possibili punti di divisione in righe dellrsquointerocapoverso che per ora forma una sola lunga riga associando ad ogni punto didivisione un valore di demerito Questo valore di demerito viene determinato inbase alle penalitagrave associate al quel punto di divisione ai demeriti conseguenti allapresenza di una cesura alla fine della riga alla bruttezza della riga determinatain base allrsquoallungamento o accorciamento della gomma interparola e dellrsquoaltragomma eventualmente inserita dal compositore per esempio mediante dei leaders

Per calcolare i demeriti associati ad ogni possibile punto di divisione pdftexdeve determinare la bruttezza di ogni riga questa egrave associata al fatto che lagomma complessiva presente nella riga sia stata allargata o accorciata molto opoco in relazione allrsquoallungabilitagrave o allrsquoaccorciabilitagrave complessiva presente nellariga di cui si sta valutando la possibile fine Sia z lrdquoallungamento o lrsquoaccorciamentosubito dalla gomma per raggiungere la lunghezza desiderata z puograve essere positivo(allungamento) o negativo (accorciamento) Sia x lrsquoallungabilitagrave complessivapresente nella riga e sia y la sua accorciabilitagrave La bruttezza b egrave data da unaespressione numerica di questo tipo

b = 100times

( zx

)3se egrave avvenuto un allungamento(

|z|y

)3

se egrave avvento un accorciamento(E1)

saturata al valore 10 000 se per caso il valore calcolato con lrsquoespressione E1risultasse maggiore

E1 DIVISIONE DEI CAPOVERSI 477

Va notata lrsquoasimmetria delle espressioni per lrsquoallungamento e per lrsquoaccor-ciamento egrave ovvio che lrsquoaccorciamento massimo di una riga non puograve superarelrsquoaccorciamento disponibile quindi la bruttezza associata ad un accorciamentonon supera mai il valore 100 Invece lrsquoallungamento puograve puograve essere maggioredellrsquoallungabilitagrave per cui la bruttezza associata ad un allungamento puograve esseremolto grande Si nota anche che se lrsquoallungabilitagrave o lrsquoaccorciabilitagrave sono infinitela bruttezza egrave nulla La presenza della terza potenza fa sigrave che allungamenti oaccorciamenti piccoli rispetto alle rispettive allungabilitagrave o accorciabilitagrave sonodel tutto trascurabili mentre diventano sempre piugrave importanti quando questirapporti sono vicini allrsquounitagrave o la superano

pdftex cerca di evitare che due righe adiacenti abbiano dei valori molto diversidi allungamento o di accorciamento meno che mai una accorciata e la vicinaallungata considera le righe decenti se la loro bruttezza egrave inferiore al valore 12mentre se lo eccede misura la loro compatibilitagrave visiva e se due righe adiacentirisultassero incompatibili aggiungerebbe dei demeriti al quel particolare puntodi divisione

In ogni caso calcolata la bruttezza di ogni riga e specificati i demeriti pdftexdeve determinare la bruttezza complessiva delle possibili divisioni in righe diun dato capoverso per far questa somma calcola i demeriti associati ad ognipossibile punto di divisione e sceglie quella sequenza di punti di divisione chetotalizza la minima somma di demeriti

Intanto pdftex toglie dalla lista tutti i possibili punti di divisione ai qualisiano associate penalitagrave p maggiori o uguali a 10 000 e tutti i punti in cui labruttezza sia superiore alla pretolerance o tolerance correnti ricordiamoche questi due valori servono per valutare una prima possibile divisione in righesenza cesure e poi una seconda divisione con le cesure in fin di riga se la primanon egrave andata a buon fine cioegrave se tutti i possibili punti di divisione alla fine di ogniparola avevano bruttezza superiore al valore di pretolerance allora procedead eseguire la seconda divisione con le cesure In questo testo tolerance vale200 e pretolerance vale 100

pdftex deve anche tenere conto della penalitagrave linepenalty legata al numerocomplessivo di righe in un capoverso il valore predefinito per questa penalitagrave egravel = 10 ma il file di classe potrebbe definire un valore maggiore per cercare dimantenere i capoversi il piugrave corti possibili Il valore dei demeriti d associati adogni possibile punto di divisione fra quelli rimasti nella lista viene determinatocon lrsquoespressione seguente

d =

(l minus b)2 + p2 se 0 le p lt 10 000(l + b)2 minus p2 se minus 10000 lt p lt 0(l + b)2 se p le 10 000

(E2)

Lrsquoespressione per i demeriti presenta una discontinuitagrave che ha i suoi motivi neidettagli dei quali non scendiamo Queste espressioni servono per dare una misuradi demerito approssimativamente proporzionale alla somma del quadrato dellabruttezza con il quadrato della penalitagrave Minimizzare la somma dei demeritiper un intero capoverso vuol dire pressappoco minimizzare la bruttezza diogni riga Questo egrave appunto uno dei punti di forza di questo algoritmo che puogravevenire ottenuto solo con la composizione differita eseguita dai vari motori dicomposizione del sistema TEX

478 APPENDICE E COME FA TEX A COMPORRE LE PAGINE

Esso egrave tanto preciso nel determinare il minimo demerito associato ad unaparticolare divisione in righe che se un capoverso andasse ritoccato per aggiungereun virgola o una breve congiunzione potrebbe succedere (e a chi scrive egrave successodi osservare questo fenomeno) che il capoverso cosigrave accresciuto nel numero dellelettere che contiene puograve risultare una riga piugrave corto rispetto a prima di eseguirela modifica non egrave frequente ma succede Questo dipende dalla raffinatezza dellaricerca del minimo eseguita dal motore di composizione

Finito di scomporre il capoverso in righe le scatole orizzontali che contengonoogni riga vengono accodate alla scatola 255 riservata allrsquouso di deposito tempo-raneo del testo composto La scatola 255 svolge quello che in inglese si chiamagalley proof una parte di testo da stampare come bozza con il testo egrave compostoma non impaginato Ad ogni capoverso accodato alla scatola 255 viene ancheattivato il meccanismo della formazione della pagina se la scatola 255 contieneabbastanza materiale la prima parte della scatola viene emessa nel file di uscitae quanto avanza serve per accodarvi il testo che via via viene ulteriormentecomposto e che verragrave usato per creare le pagine successive

E2 Divisione della pagine

La divisione delle pagine avviene secondo gli stessi principi seguiti per la divisionedei capoversi con alcune evidenti varianti Mentre un capoverso da dividere inrighe forma una lista orizzontale di caratteri penalitagrave grumi di gomma ecceteraun testo da dividere in pagine egrave costituito dalla lista verticale conservata nellascatola 255 questa lista egrave formata dalle righe giagrave composte per il testo dallescatole che contengono per esempio singole espressioni matematiche da penalitagraveda grumi di gomma verticale ma non solo Essa contiene anche dei segnapostiper inserire oggetti che sono stati conservati altrove gli inserti delle note a piegravedi pagina le note marginali le figure le tabelle e gli altri oggetti flottanti

pdftex nellrsquoestrarre le righe da riversare in una pagina del file di uscitadeve tenere conto dei segnaposti e intercalare alle righe di testo quanto questisegnaposti segnalano Per le note in calce deve tenere presente della riga doveappare il richiamo in modo da mettere la nota nella stessa pagina dove essaegrave richiamata e se non ci riesce deve mettere una forte penalitagrave per questolsquoinsuccessorsquo deve mettere anche una penalitagrave se la nota puograve cominciare nellapagina ma non ci sta tutta per cui deve estrarne solo alcune righe per rimetterele righe che avanzano in una posizione utile per la pagina successiva inserendovianche una penalitagrave per tenere conto di questo lsquoinsuccessorsquo Deve vedere se lenote marginali stanno nella pagina o se devono essere spostate nella paginasuccessiva deve controllare anche se le note marginali sono abbastanza separatele une dalle altre ed eventualmente deve spostare i segnaposti per farcele starema aggiungendo altre penalitagrave Deve esaminare le code degli oggetti flottanticontrollando che stiano sulla pagina e dove se non possono stare sulla paginadeve lasciarli in coda in modo da poterne differire il collocamento ad una paginasuccessiva deve tenere conto dei comandi clearpage e simili che hanno messonella lista verticale speciali penalitagrave negative minori di minus10 000 e che funzionanoda codici per particolari azioni che non richiedono solo un salto di pagina maanche lo svuotamento forzato delle code degli oggetti flottanti Determinata ladivisone migliore che generalmente non supera lrsquoaltezza della gabbia del testo

E3 COSA FARE SE 479

la procedura per la spedizione della pagina completa al file di uscita provvede ainserire la testatina e il piedino

Come si vede la formazione delle pagine egrave sotto molti aspetti piugrave complessadella formazione dei capoversi ma poi dopo aver deciso che cosa mettere nellapagina il punto migliore in cui porre la divisione avviene con lo stesso algoritmousato per i capoversi nel senso che ora non ci sono due possibili scelte quellasenza cesure e quella con cesure in fin di riga ma crsquoegrave una sola possibile sceltaquella che minimizza i demeriti complessivi della pagina

Il calcolo della bruttezza avviene piugrave meno nello stesso modo solo che lagomma interparola egrave sostituita dalla gomma interlinea lineskip che perogravesolitamente non ha nessuna componente di allungabilitagrave o accorciabilitagrave dellagomma prima della prima riga di ogni capoverso parskip che generalmenteha una lunghezza naturale nulla e una modesta allungabilitagrave Della gommainserita dai comandi di sezionamento prima della loro prima riga oltre chedella penalitagrave inserita dopo la loro fine in modo da impedire un salto di pa-gina dopo il titolo (cosa che notoriamente avviene invece con i comuni wordprocessor) della gomma presente prima o dopo gli oggetti fuori testo dalleespressioni matematiche agli oggetti flottanti in genere La formula della brut-tezza egrave simile allrsquoespressione E1 con le ovvie differenze di significato dei simbolipresenti

Invece i demeriti sono determinati diversamente e sono chiamati costo cil costo egrave tanto maggiore quanto peggiore risulta la pagina per ogni possibilepunto di divisione della pagina il costo associato vale

c =

p se b ltinfin e p le minus10 000 e q lt 10 000b+ p+ q se b lt 10 000 e |p| lt 10 000 e q lt 10 000100 000 se b = 10 000 e |p| lt 10 000 e q lt 10 000infin se (b =infin oppure q ge 10 000) e p lt 10 000

(E3)

dove b rappresenta la bruttezza ed egrave un numero compreso fra 0 e 10 000 olsquoinfinitorsquo quando la divisione corrisponde ad una pagina che supera lrsquoaltezzadella gabbia del testo ndash questo non dovrebbe succedere mai ma talvolta succedea causa di inserti troppo grandi ndash p rappresenta la penalitagrave q rappresenta leinsertpenalties la somma delle penalitagrave per le note differite o spezzate frapagine La divisione finale della pagina avviene nel punto nel quale la sommadei costi associati ai singoli punti di divisione viene minimizzata

E3 Cosa fare se Come si vede dunque lrsquoalgoritmo di ottimizzazione della divisione in paginedella scatola 255 con i suoi annessi e connessi egrave diverso da quello della divisionedei capoversi anche se egrave ispirato da una filosofia simile Si tratta sempre discegliere il punto dove i costi sono minimi se quello egrave il punto in cui essi sonominimi significa che ogni altro punto di divisione egrave peggiore quindi non crsquoegrave dastupirsi se qualche volta pdftex spezza le pagine diversamente da come noi ce loimmagineremmo se cioegrave colloca gli oggetti flottanti diversamente da dove ce loaspetteremmo

Certo potremmo cambiare i criteri con i quali le parti della pagina possonovenire utilizzate per gli oggetti flottanti e per il testo certo potremmo cambiare

480 APPENDICE E COME FA TEX A COMPORRE LE PAGINE

le penalitagrave associate alle righe orfane e vedove E in effetti chi scrive ha spessousato questi espedienti ma con grande cautela I valori preimpostati sono degliottimi compromessi e cambiarli richiede giudizio e comprensione del meccanismo

Vale la pena di raccogliere qui alcune informazioni esposte anche altrove

E31 Collocazione degli oggetti flottantipdftex mette gli oggetti flottanti dove lo consentono le condizioni imposte dai variparametri specificati dalla classe e descritti approfonditamente nel paragrafo G10Come ricordato quei parametri e quelle frazioni di pagina possono venire cambiatiun pochino ma non troppo Se si assegna per esempio una percentuale del 90alla frazione di pagina destinata agli oggetti in testa alla pagina si rischia diavere troppo poco spazio dedicato al testo e se questo contiene titoli di paragrafio elementi fuori testo come le espressioni matematiche questa parte di testo nonpotrebbe stare nella restante frazione del 10 e la pagina risulterebbe mozzaoppure lrsquooggetto flottante potrebbe venire spostato ad una pagina successiva

Se il compositore usa troppo spesso il parametro di collocamento rischia difare peggio di quanto LATEX farebbe per conto suo Si ricorda che questo specifi-catore non modifica lrsquoosservanza dei parametri solo per la posizione dichiaratacon il primo degli specificatori ma li riguarda tutti Usare la serie di specificatorihtbp serve a poco percheacute va a finire che se pdftex non puograve usare la posizionespecificata con h allora lrsquooggetto mobile non puograve piugrave essere collocato ldquoligraverdquo erischia di restare in cosa a lungo eventualmente la coda degli oggetti flottatipuograve venire svuotata drsquoautoritagrave o alla fine di un capitolo o per effetto di uncomando clerapage (eventualmente passato come argomento a un comandoafterpage) Egrave meglio evitare di specificare h non egrave un caso che le posizionipredefinite in LATEX sono proprio tbp percheacute se esso non puograve andare in testa alsquoquestarsquo pagina vi puograve andare in calce oppure puograve andare in testa o in calce inuna pagina successiva oppure quando vengano svuotate le code Se lrsquooggetto egravedi grandi dimensioni egrave meglio specificare solo p cosiccheacute alla prima pagina utileesso viene collocato in una pagina a seacute stante (sempre che la coda non sia giagraveintasata) e spedito al file di uscita

Raramente capita che le code intasate restino tali via via che si aggiungonoaltri elementi in coda quando si supera il numero di 18 oggetti in coda isuccessivi vengono persi sigrave egrave vero il programma emette un avviso ma egrave unamagra consolazione Se si ha anche solo il dubbio che la coda possa essereintasata da un oggetto troppo grande per condividere una pagina con del testoegrave meglio verificare la cosa durante la lavorazione del documento emettendo uncomando clearpage cosigrave da vedere che cosa ci sia in coda e poi eventualmentecambiare i descrittori di posizione emettere uno o piugrave clearpage passandolial programma come argomenti di afterpage insomma in modo da superarele barriere messe dal programma contro una brutta composizione tipograficaAgendo con giudizio si puograve aggiustare a mano quanto il programma non riesce agestire da solo ma questo va fatto in parte durante la lavorazione del documentoe in parte alla fine per dare i tocchi finali al lavoro compiuto

E32 Le equazioni ingombrantiLe lsquopiccolersquo equazioni fuori testo fra espressione matematica vera e propria espazi sopra e sotto impegnano lrsquoequivalente di tre righe di testo espressioni

E3 COSA FARE SE 481

matematiche piugrave complesse possono richiedere un numero di righe molto maggioreSe una di queste espressioni lsquopiccolersquo o lsquograndirsquo che siano compare in testaad una pagina egrave molto probabile che la pagina precedente sia stata dichiaratalsquoUnderfull vboxrsquo da pdftex percheacute ha dovuto stiracchiare troppo la gommadisponibile sulla pagina per non farla sembrare mozza in realtagrave non egrave mozzama egrave brutta a causa dellrsquoeccessivo allargamento dei contrografismi che separanole varie parti della pagina

In questi casi non ci sono cure diverse da quelle di

1 modificare il testo della pagina stiracchiata in modo che contenga piugravetesto

2 modificare il testo della pagina stiracchiata in modo che contenga menotesto

3 allungare la pagina stiracchiata usando il comando enlargethispage cono senza asterisco in modo che lo specchio di stampa sia un poco piugrave grandecosigrave da contenere una o due righe in piugrave

4 accorciare lo specchio di stampa della pagina stiracchiata sempre usandoenlargethispagema usando un allungamento negativo cosigrave da richiedereuno stiracchiamento minore

5 usare il comando primitivo looseness con lrsquoargomento positivo o nega-tivo per allungare o accorciare se possibile capoversi scelti della paginastiracchiata cosigrave da riempire meglio la pagina lsquocapoversi sceltirsquo vuol direcapoversi sufficientemente lunghi da avere molto spazio interparola sucui giocare per ottenere lrsquoeffetto desiderato Il numero che si assegna alcomando looseness indica di quante righe allungare o accorciare uncapoverso a meno che non si tratti di un capoverso molto lungo egrave difficileallungare o accorciare un capoverso di piugrave di una riga Tuttavia spessouno o due capoversi allungati di una riga possono aggiustare una paginain modo difficilmente riconoscibile a occhio nudo

Egrave chiaro che questi provvedimenti tranne quelli che prevedono lrsquoaumento ola diminuzione del testo sono provvedimenti da prendere solo nella fase finaledi messa a punto dellrsquoimpaginazione quando il testo egrave praticamente finito dicomporre altrimenti quegli aggiustamenti finirebbero per dover essere rivistiripetutamente ad ogni modifica del testo che li precede

Queste cose vanno viste con molta cura anche quando si eseguono degli insertinon flottanti come una piccola figura contornata dal testo questa egrave legata alparticolare capoverso il cui testo le gira attorno e se la modifica del testo che loprecede lo sposta piugrave in alto o piugrave in basso la figurina fissa rischia di andare afinire dove lrsquoalgoritmo di formazione delle pagine inserisce un salto pagina lafigurina potrebbe rimanere ligrave penzoloni alla fine della pagina a fianco di unpaio di righe del suo capoverso che perograve proseguirebbe nella pagina successivacon la rientranza vuota inizialmente riservata per la figurina Cose queste chesconsigliano fortemente di fare uso di piccole figure contornate dal testo se nonnel primo capoverso di un capitolo percheacute non vi egrave nessun testo prima che possaspostare il primo capoverso piugrave in basso

482 APPENDICE E COME FA TEX A COMPORRE LE PAGINE

E33 I sezionamentiAnche i titoli dei paragrafi e delle sezioni di rango successivo possono dareproblemi Si egrave detto e ripetuto che lo spazio verticale che segue un titolino egraveuno spazio lsquoinsecabilersquo uno spazio verticale prima e dopo del quale non puograveavere luogo un salto di pagina quindi il titolo del paragrafo egrave distanziato dal-la prima riga del suo primo capoverso ma non ne puograve venire staccato Seavvenisse un salto di pagina dopo la prima riga del capoverso essa rimarreb-be orfana per evitare questo la classe definisce un penalitagrave clubpenaltyinsieme alla sua compagna clubpenalty che viene inserita dopo la primariga di ogni capoverso proprio per evitare le righe orfane dunque sebbenenon sia strettamente impossibile (con le penalitagrave predefinite) un salto di pa-gina dopo la prima riga la seconda riga appare subito sotto alla prima rigama se il capoverso ha ancora solo una terza riga se avvenisse un salto dipagine dopo la seconda riga la terza riga resterebbe vedova una forte pe-nalitagrave widowpenalty viene inserita prima dellrsquoultima riga di ogni capoversoproprio per evitare la formazione di righe vedove e ci riesce quasi semprecon i valori predefiniti Ma tutto ciograve implica che la riga del titolino segui-ta dal suo spazio e seguito ancora da almeno due righe di testo costituisceun insieme lsquomonoliticorsquo di grandi dimensioni che o sta tutto in fondo allapagina o viene spostato tutto allrsquoinizio della pagina successiva (naturalmen-te se egrave a metagrave pagina il problema non esiste) I valori di clubpenalty e diwidowpenalty sono generalmente fissati dai file di classe o dai file di descri-zione della lingua ma il compositore puograve cambiarne i valori in modo accortoi valori predefiniti di solito sono piuttosto severi ma generalmente non so-no valori infiniti in questo testo clubpenalty vale 10000 e widowpenaltyvale 3000

Si noti che sono considerate orfane e vedove anche la prima riga dopo unaequazione fuori testo o lrsquoultima riga prima di una equazione fuori testo quindi ilproblema delle righe orfane e vedove si pone anche con le equazioni fuori testo

In questi casi si puograve agire come negli altri casi allungando o accorciano iltesto che precede il blocco lsquomonoliticorsquo volendo trattandosi di un sezionamentosi potrebbe inserire subito prima del comando di sezionamento un comandonewpage oppure talvolta egrave preferibile un comando goodbreak egrave vero che seil comando agisce lascia una pagina mozza ma se si corregge il testo precedentequesto comando potrebbe restare inefficace grazie alla piccola penalitagrave che essoinserisce nella lista verticale Il comando di basso livello (primitivo) filbreakegrave troppo forte e in caso di modifiche agirebbe anche lontano dal fondo dellapagina

E4 ConclusioniLa casistica potrebbe allungarsi moltissimo Perograve ogni qual volta ci si trovi conuna pagina mal formata con troppo spazio bianco la conoscenza del meccanismodi divisione delle pagine e il gioco sottile dellrsquoallungamento della gomma in com-petizione con le penalitagrave e con le dimensioni degli oggetti di grandi dimensionipermette di risalire alle cause e ad apportare le modifiche del caso per risistemarela pagina mal riuscita

Appendice F

Trattamento degli errori

Quando il programma di composizione incontra nel file sorgente delle parti chenon riesce ad interpretare o non riesce ad eseguire non sa cosa fare e si fermacon un messaggio drsquoerrore spesso il messaggio di errore che accompagna ladescrizione dove ha trovato la difficoltagrave egrave sufficientemente chiaro Queste ingenerale sono situazioni semplici altre volte gli errori sono molto subdoli e imessaggi sono troppo vaghi

F1 Errori ortografici nel nomi dei comandiLa situazione elementare quella di aver scritto in modo errato un comando egravegiagrave stata descritta alla fine del capitolo 4 e non ci si torna sopra Quando illettore arriva a leggere questa appendice estremamente tecnica vuol dire che si egravescontrato con un errore davvero grave ma ha giagrave acquisito abbastanza esperienzaper affrontare le situazioni elementari

F2 Errore nella ricerca dei fileNello stesso modo si risolvono errori del tipo ldquoFile not foundrdquo accanto almessaggio appare il nome del file che il programma di composizione non avrebbetrovato Lrsquoobbiezione piugrave frequente che ci viene in mente egrave ldquoMa come Se ilfile egrave nella cartella di lavorordquo Prima di lasciarci andare alla irritazione del casoconviene leggere con calma e attenzione il nome del file che il programma nonha trovato e ragionarci sopra

1 il nome del file potrebbe contenere degli spazi egrave possibile far leggere alprogramma nomi di file che contengano degli spazi ma la la soluzione oltread essere ldquosystem dependentrdquo e a eliminare ogni possibilitagrave di trasportareil file su unrsquoaltra macchina egrave da evitare in modo assoluto la soluzionevera egrave quella di togliere gli spazi dai nomi dei file Se si ritiene che i nomidei file senza spazi siano illeggibili si puograve sempre riempire lo spazio conun tratto ribassato per esempio da My filetex a My_filetex dove laleggibilitagrave egrave certamente conservata ma lo spazio non crsquoegrave piugrave

2 Il file col nome senza spazi egrave effettivamente ligrave ma il sistema operativodistingue le lettere maiuscole da quelle minuscole nei nomi dei file tutti i

483

484 APPENDICE F TRATTAMENTO DEGLI ERRORI

sistemi UNIX hanno questa particolaritagrave solo i sistemi operativi di tipoWindows non fanno differenza fra Myfiletex e myfiletex La soluzioneegrave controllare bene che si sia chiesto al programma di leggere il file il cuinome sia scritto con la stessa ortografia di come egrave registrato sul disco

3 Lrsquoestensione tex non deve mai essere specificata i programmi del sistemaTEX appendono sempre lrsquoestensione tex ai nomi di file che ne siano privima a quel punto egrave bene essere sicuri di non aver inserito spazi spuri cioegrave egraveimportante che scriviamo inputmyfile e non inputmyfile

4 Anche i file grafici egrave bene che siano specificati senza estensione non egraveobbligatorio ma egrave conveniente Perograve per esempio stabilito che pdflatexnon legge i file con estensione gif non egrave possibile cambiare lrsquoestensionegif in png lrsquoestensione non egrave una decorazione inutile di un file madice che formato ha il suo contenuto cambiare lrsquoestensione non cambia ilcontenuto Eppure questo egrave un tipico errore che viene commesso piugrave spessodi quanto non si creda e a cui il programma reagisce con un messaggio dildquoFile not foundrdquo

5 Il file potrebbe essere protetto e accessibile solo al proprietario del fi-le o allrsquoamministratore della macchina prima di poterlo aprire bisognamodificarne gli attributi per consentirne lrsquoapertura

6 Un file di classe o un pacchetto o un qualunque altro file di serviziopotrebbe essere stato installato nella cartella giusta ma egrave possibile averdimenticato di aggiornare il database dei nomi dei file il programma di com-posizione non puograve trovarlo in quanto non egrave elencato i quei database Esisteun database dei nomi dei file per ogni albero in cui egrave suddiviso lrsquoinsiemedei file di lavoro del sistema TEX generalmente i file delle distribuzioni offi-ciali sono messi in alberi accessibili solo allrsquoamministratore della macchinaNelle macchine Windows questo concetto di utente privilegiato ad eseguirequalunque operazione esiste ma egrave meno preciso di come egrave definito sullemacchine UNIX Egrave quindi possibile che lrsquoutente pensi di fare cosa giustaad aggiungere i propri file personali nelle stesse cartelle dove risiedono ifile del sistema Questo invece sarebbe un grave errore percheacute al primoaggiornamento dei file di sistema i file personali sparirebbero I file personalivanno inseriti in una struttura ad albero conforme al TDS (TEX DirectorySystem) ma la radice di questo albero deve essere in una zona personalesulle macchine Linux questa zona egrave la cartella Home indicata con ~ e adogni modifica del contenuto dellrsquoalbero personale bisogna aggiornare il da-tabase dei nomi dei file in esso contenuti usando gli strumenti specifici delledistribuzioni del sistema TEX su quelle macchine Nelle macchine Windowsla cartella corrispondente a Home non egrave ben definita sebbene le versionipiugrave recenti dei sistemi operativi creati da Microsoft abbiano una sorta dicartella personale generalmente radicata in Documenti〈NomeUtente〉Questa struttura di albero personale va elencata fra gli alberi di MiKTEXin modo che quando si apre la cartella MiKTeX Settings il tasto Refreshdatabases possa agire anche sullrsquoalbero personale Sulle macchine Mac laradice dellrsquoalbero personale egrave in ~Library e non ha bisogno di venireaggiornata percheacute ci pensa il sistema operativo e MacTEX lo sa e ne sfruttale funzionalitagrave

F3 CICLO INFINITO 485

Come si vede sono tutte soluzioni semplicissime che non spaventano nessunoche conosca bene la propria macchina e il proprio sistema operativo Egrave veroqualche volta situazioni di questo genere mettono in imbarazzo ma la soluzioneegrave poi immediata

F3 Ciclo infinito

Lrsquounico errore per il quale ogni programma del sistema TEX non emette messaggiegrave forse lrsquoerrore piugrave grave lrsquoentrata in un ciclo infinito ogni programma classeo pacchetto del sistema TEX egrave in grado di eseguire delle chiamate ricorsiveciograve che avviene quando una macro direttamente o indirettamente richiama sestessa percheacute questa ricorsione abbia termine egrave necessario che lungo questaoperazione ciclica qualcosa cambi e un test ne verifichi il cambiamento al fine dinon ripercorrere il ciclo allrsquoinfinito Se ciograve non accade il programma continua ariciclare allrsquoinfinito a parte il tempo perso a riciclare a vuoto puograve succedere cheil programma di composizione scriva qualcosa nel file di uscita o nei file ausiliariSe ciograve malauguratamente succedesse e lrsquooperatore non fosse pronto a ldquoucidererdquoil programma si finirebbe per saturare lrsquointero disco con danni non facilmentequantificabili ma sicuramente danni seri al contenuto del disco e alle operazioninecessarie al suo ripristino

Questo genere di cose possono succedere quando si scrivono delle macroricorsive generalmente queste macro servono per eseguire elaborazioni che noncoinvolgono lrsquoutente finale ma interessano moltissimo a coloro che scrivono classioppure pacchetti o anche soltanto alcune macro per il preambolo del propriodocumento

Lrsquounica via per uscirne egrave essere molto tempestivi prima che possano esseredanneggiate le informazioni sul proprio hard disk spesso lrsquoeditor dispone diun pulsante di emergenza in TEXShop crsquoegrave un bottone Abort in TeXworks ilbottone verde per lanciare la compilazione puograve essere cliccato e oltre a diventarerosso arresta il programma Sugli editor specifici per le macchine Linux o ci sonoanaloghi bottoni oppure basta eseguire le scorciatoie di tastiera come Ctrl +Y o simili Sulle macchine Windows la procedura egrave piugrave elaborata e piugrave lungain quanto bisogna arrestare il programma agendo sul Task Manager che per altrosolitamente non ha un bottone sempre disponile in una delle barre e quindi siconsuma del tempo prezioso per eseguire tutta la procedura di ldquoucisionerdquo delprogramma entrato in un ciclo infinito Con le macchine con un sistema operativoti tipo UNIX (Linux e Mac) si puograve sempre agire dalla finestra comandi dandoprima il comando ps ax per determinare il numero del processo e poi dare ilcomando kill 8902 (se il numero del processo egrave stato rilevato essere 8902)Le macchine Mac hanno anche il menugrave ldquomelardquo in alto a sinistra nella barrasuperiore con la voce ldquoForce quitrdquo cliccando su questa voce si apre una piccolafinestra di dialogo dove sono elencati i processi dellrsquoutente che sono in esecuzionee di ligrave egrave facile individuare quella componente di TEX che sta facendo capricci lasi puograve selezionare e ldquouccidererdquo

486 APPENDICE F TRATTAMENTO DEGLI ERRORI

F4 Gruppi apertiUn altro errore molto infido egrave la mancanza della parentesi chiusa di un gruppotalvolta questa parentesi mancante provoca solo un avviso scritto verso la finedel file log che spiega che il programma egrave terminato mentre si era dentro ungruppo il messaggio spiega anche a quale livello di annidamento si trovava quelgruppo qualche volta riesce a dire anche in quale riga di quale file quel gruppoera stato aperto Talvolta il gruppo era stato aperto dentro un file incluso nelflusso di elaborazione mediante il comando include in questo caso si accorgeche il gruppo non egrave chiuso quando ha finito di leggere il file incluso ma ilmessaggio non riesce a dire altro che crsquoegrave un gruppo non chiuso e indica solo lariga del master file dove crsquoegrave il comando include Egrave una informazione minimama almeno si riesce a sapere quale file il programma stava leggendo quando egravearrivato alla fine con il gruppo ancora aperto

Questo tipo di errore egrave relativamente facile da scovare la maggior partedegli shell editor sono in grado di riconoscere le graffe appaiate alcuni inbase a queste informazioni riescono a disegnare in una barra laterale (dellaschermata dellrsquoeditor) che descrive graficamente la struttura del file e dei gruppiche contiene siano essi ambienti delimitati dai comandi begin e end sianoessi gruppi delimitati dalle graffe Chi scrive trova piugrave comodo il funzionamentodi TEXShop che non ha la barra laterale in questo shell editor e in diversi altriper altri sistemi operativi cliccando su una graffa lrsquoeditor cerca la sua compagnaed evidenzia tutto il gruppo con un colore di sfondo diverso sia che il gruppo siabreve sia che coinvolga diverse schermate del file sorgente il brusco cambiamentodi colore indica subito lrsquoesistenza di un gruppo al massimo potrebbe essere statochiuso nel punto sbagliato ma almeno il gruppo esiste Quando invece il grupponon egrave chiuso non succede nientrsquoaltro e lrsquoerrore egrave trovato basta solo andare acercare il punto giusto per porre la parentesi chiusa mancante

Lrsquoerrore infido della mancata chiusura di un gruppo puograve talvolta essere moltodifficile da scovare in un lungo documento non suddiviso in file da includereanche in un documento suddiviso in diversi file inclusi puograve essere particolarmentedannoso se la mancanza del gruppo provoca messaggi drsquoerrore incomprensibilie che non si riesce a mettere in relazione a quello che si crede di avere scrittodentro il file sorgente In questo caso si puograve procedere col metodo della dicotomiasi sposta la schermata dellrsquoeditor a metagrave del file (unico o incluso) non dentroun ambiente ma prima o dopo lrsquoapertura o rispettivamente la chiusura di unambiente e ligrave si inserisce una riga contenente solo

enddocument

A questo punto si lancia il programma di composizione se lrsquoerrore continuaa presentarsi la mancanza della chiusura del gruppo egrave nella prima metagrave delfile altrimenti egrave nella seconda metagrave A questo punto si toglie la precedentespecificazione di fine documento lasciando al suo posto un contrassegno diposizione potrebbe essere quella riga stessa dopo averla commentata Poi la siinserisce nuovamente a metagrave della parte incriminata e si ripete il processo quantevolte occorre fino a restare con una parte di file di poche decine di righe dovedovrebbe essere piugrave facile trovare che cosa manca

Si tratta di soluzioni estreme Certo quando non crsquoegrave nessuna informazio-ne utile per capire la natura dellrsquoerrore bisogna ricorrere a soluzioni estremeammetto di averle dovute usare molto raramente ma in quasi trentrsquoanni drsquouso

F5 MANCATA APERTURA DI UN GRUPPO 487

di LATEX potranno essere state una mezza dozzina di volte Certo mi capitavapiugrave facilmente quando la distribuzione del sistema stava su un paio di floppy da514

primeprime e la documentazione era virtualmente inesistente ora sono anni che nonmi capita piugrave grazie sia alla migliore diagnostica e allrsquoesperienza accumulata

F5 Mancata apertura di un gruppoManca sempre una graffa questa volta aperta mentre egrave presente la graffa chiusaIl metodo di cliccare su graffe aperte o chiuse e controllare quale parte del filesorgente viene evidenziata funziona sempre ma prima bisogna capire che sitratta di una graffa aperta mancante Spesso il messaggio drsquoerrore fa riferimentoad una graffa chiusa ed informa lrsquoutente che

erroritex55 Too many rsquosl55 graffa chiusa

ed informa lrsquoutente che

Si capisce subito di che cosa si tratta e che lrsquoerrore non egrave grave per cui si puogravetranquillamente lasciar continuare al compilazione fino in fondo bisogna perogravericordarsi che la riga 55 del file erroritex (come dice il messaggio) contieneuna graffa chiusa priva di una precedente compagna graffa aperta e lrsquoerrorettova comunque corretto

F6 Interferenza con le definizioniTalvolta la graffa aperta mancante cade in una posizione insolita dove la cor-rispondente graffa chiusa ha un senso per il programma interprete La graffachiusa non viene rilevata come erronea e lrsquointerpretazione continua fino ad unpunto dove il programma non capisce piugrave niente ed emette un messaggio drsquoerroreche non ha nulla a che fare con il punto doove manca effettivamente la graffaaperta Si consideri il codice seguente

newcommandmycommandifnum

defRCirelaxletRCunoRCidefRCiirelaxletRCdueRCiidefRCiiirelaxletRCtreRCiii

else

fi

Viene usato un test con la sintassi primitiva di TEX la mancanza della graffaaperta nella definizione di RCCii fa sigrave che il test iniziato con ifnum non sichiuda allrsquointerno della definizione Se usando TEXShop avessimo cliccato sullaparentesi che apre la definizione di mycommand avremmo trovato che questo

488 APPENDICE F TRATTAMENTO DEGLI ERRORI

ldquogruppordquo si chiude dopo il comando relax che segue la definizione di RCii e cisaremmo accorti subito dellrsquoerrore Non lrsquoabbiamo fatto e abbiamo mandato incompilazione il documento contenete queste definizioni Poicheacute le macro contenutedentro le definizioni ldquonormalirdquo non vengono sviluppate (eseguite) il programmadi composizione ci avrebbe avvisato della presenza di un ldquoextra elserdquo seavessimo forzato il programma a proseguire avremmo avuto un altro avviso dierrore per la presenza di un ldquoextra firdquo avremmo avuto due segnalazioni dierrore causati dalla mancanza di una graffa aperta ma i due messaggi drsquoerroreavrebbero portato la nostra attenzione sui comandi condizionali non sulle graffese avessimo forzato ancora il programma a proseguire finalmente esso ci avrebbeavvisato della presenza di ldquoToo many rsquosrdquo e finalmente avremmo capito chemancava una graffa aperta o che crsquoera una graffa chiusa di troppo forzandoci arivedere le graffe e a trovare finalmente la mancanza della graffa aperta

F7 File personali che provocano conflittiIn un file di classe avevo scritto il seguente codice

AfterEndPreambleifundefinedvirgolaDeclareMathSymbolvirgolamathpunctletters3BDeclareMathSymbolvirgoladecimalemathordletters3B

Volevo evitare di ridefinire alcune assegnazioni eventualmente eseguite in altrifile letti nel preambolo Il lettore puograve riconoscere parte del codice illustrato nelcapitolo 17 a proposito della virgola intelligente Quel tipo di codice apparegiagrave nella mia versione personale del file di descrizione della lingua italianaitalianldf letto da babel quando specifico la lingua italiana Il mio erroreconsiste proprio nellrsquoaver modificato a titolo personale un file avente lo stessonome del file del sistema TEX che non deve mai essere modificato mai e poi maiper nessun motivo ldquoMal me ne incolserdquo

Infatti la documentazione del pacchetto etoolbox col quale egrave definito ilcomando AfterEndPreamble specifica chiaramente che i comandi contenutinellrdquoargomento di questo comando vengono sviluppati dopo che che egrave cessatoil preambolo (come drsquoaltronde il nome dice con grande chiarezza) e che quindiquesti comandi non possono contenere altri comandi usabili solo nel preamboloIl comando DeclareMathSymbol egrave appunto uno di questi comandi a validitagravelimitata che possono essere usati solo nel preambolo

Anche se avevo recepito questo avvertimento non lrsquoavevo evidentementeinteriorizzato e avevo scritto il codice suddetto che funzionava perfettamentee non ricevevo nessun messaggio drsquoerrore Tranquillo della bontagrave del codiceavevo mandato il file ad un amico al quale la cosa non funzionava e riceveva ilmessaggio drsquoerrore che

DeclareMathSymbolmay be used only in the preamble

See the LaTeX Companion for exlanation

F8 TRACCIARE LrsquoOPERATO DEL PROGRAMMA 489

Lrsquoamico mi scriveva dicendomi ldquoricevo questo messaggio drsquoerrore ti mando ilfile log rdquo e io gli rispondevo ldquoNon riesco a replicare il tuo errore dammi piugravedettagli rdquo Insomma fra noi crsquoera un dialogo fra sordi ma il sordo ero io cheavevo completamente rimosso lrsquoavvertimento del pacchetto etoolbox e non locollegavo con il messaggio piuttosto esplicito dellrsquoamico

Il problema ere causato dal mio file personalizzato italianldf che definivail comando virgola per cui il codice incriminato veniva saltato grazie al testifundefined ho fatto perdere al mio amico una buona settimana di botta erisposta inconcludenti per colpa mia fincheacute finalmente mi si egrave accesa la luce hocapito il problema e ho potuto rimediare con mille scuse Per lrsquoennesima volta hocommesso il ldquopeccatordquo di ridefinire un file di sistema e per lrsquoennesima volta neho pagate le conseguenze Ecco percheacute tra lrsquoaltro insisto sempre sulla necessitagravedi non commettere un simile errore Qui almeno aggiungo la raccomandazionedi non essere ottusi come lo sono stato io a non cogliere il significato vero deimessaggi drsquoerrore

F8 Tracciare lrsquooperato del programmaIl sistema TEX non egrave cosigrave rozzo come potrebbe apparire da quanto descritto neiparagrafi precedenti di questa appendice quei paragrafi descrivono situazioniestreme per le quali un linguaggio interpretato come il linguaggio TEX talvoltanon puograve far fronte

TEX invece egrave dotato di un certo numero di comandi primitivi alcuni dei qualirichiedono degli argomenti e tra i pacchetti LATEX ce ne egrave uno che svolge questocompito molto bene anche se i puristi preferiscono gestire individualmente isingoli parametri di tracciamento

F81 I comandi primitivi di tracciamentoI parametri di tracciamento sono descritti qui di seguito va notato che sonoquantitagrave a cui bisogna assegnare un valore positivo quando si assegna il valorezero diventano inefficaci la sintassi per tutti egrave del tipo seguente

〈comando di tracciamento〉 = 〈numero〉

tracingonline serve per emettere le informazioni di tracciamento sulla consolelo si puograve usare anche quando si lancia il programma di composizioneattraverso uno shell editor ma sarebbe meglio evitarlo specialmente pertracciati lunghi la memoria della console egrave relativamente limitata e sirischia di perdere alcune parti del tracciato

tracingmacros con un valore positivo meglio se pari a 2 mostra lo sviluppodelle macro via via che queste vengono sviluppate

tracingstats con un valore positivo mostra lrsquoutilizzazione delle memorie delsistema TEX

tracingparagraphs serve per mostrare i calcoli eseguiti quando il program-ma compone un capoverso spezzandolo in righe possibilmente di ugualelunghezza

490 APPENDICE F TRATTAMENTO DEGLI ERRORI

tracingpages serve per mostrare i calcoli eseguiti quando il programma spezzala scatola 255 in pagine inserendovi dentro le note e gli oggetti mobili

tracingoutput serve per mostrare le operazioni che il programma eseguequando deve spedire una pagina composta al file di uscita

tracinglostchars serve per mostrare quello che succede quando si invocalrsquouso di un particolare carattere (glifo) ma il font non lo contiene

tracingcommands serve per mostrare quello che il programma di composizionefa quando deve eseguire un comando

tracingassigns mostra quando viene assegnato un valore ad un registro diconteggio di numeri interi di lunghezze di lunghezze elastiche eccetera

tracingrestores serve per mostrare che cosa viene ripristinato quando ilprogramma di composizione esce da un gruppo

showboxbreadth indica il massimo numero di oggetti da mostrare in ciascunlivello di inscatolamento durante il tracciato

showboxdepth mostra il massimo livello di inscatolamento da mostrare neltracciato

Chi scrive spesso si egrave servito della coppia di specificazioni

tracingcommands=2tracingmacros=2relax〈righe del file sorgente da tracciare〉tracingcommands=0tracingmacros=0relax

Il difetto egrave che lrsquoinformazione egrave molto forse troppo abbondante in particolarequando vengono selezionati dei font quando si compone della matematicaquando si traccia la chiusura di un documento quando le righe da tracciarecoinvolgono un fine pagina e la spedizione di una pagina allrsquouscita

Qualunque esempio anche minimo che si potrebbe fare per lrsquouso di questicomandi impiegherebbe diverse pagine e non si ritiene che sia di nessuna utilitagravesenza un commento riga per riga che risulta in realtagrave superfluo visto che ogniriga del tracciamento egrave autoesplicativa Se esiste qualche difficoltagrave questa stanellrsquointerpretazione delle informazioni e nellrsquoabilitagrave del lettore di saltare le partiche non interessano Tuttavia si impara la lettura del tracciamento non egrave spiegatada nessuna parte ma tutti quelli che hanno eseguito e letto dei tracciati li hannocompresi certo con pazienza e con molta determinazione ma ci sono riusciti

F82 Il pacchetto trace

Il pacchetto trace sembra poco flessibile ma sostanzialmente traccia tutto quelloche puograve essere tracciato tranne la selezione dei font la costruzione delle partimatematiche la costruzione dei capoversi e la costruzione delle pagine delle qualiespone solo la riga finale Se si usano male i suoi comandi potrebbe succedereche venga tracciato anche lrsquooperato della routine di uscita quella che emettenel file di uscita una pagina definitivamente composta con il testo le note alpiede e le note marginali le eventuali figure e quantrsquoaltro venga eseguito durantelrsquoaccodamento di una pagina completata al file di uscita

F8 TRACCIARE LrsquoOPERATO DEL PROGRAMMA 491

I comandi per attivare il tracciamento sono molto prevedibilmente traceone traceoff essi vanno messi a cavallo della parte che si vuole tracciare e cheproduce messaggi drsquoerrore per coloro che creano classi pacchetti o macro perso-nali possono servire per scoprire percheacute le macro accuratamente programmate erealizzate non fanno quello che si vorrebbe che facessero Se si dovesse metteretraceoff proprio appena prima della chiusura di un gruppo lo si puograve ometterepercheacute il comando traceon inserito dentro lo stesso gruppo cessa il suo effettoalla chiusura del gruppo stesso

In effetti traceon serve per impostare i parametri di tracciamento in questomodo

tracingtruetracingstats=2tracingpages=1tracinglostchars=1tracingparagraphs=1errorcontextlines=maxdimentracingoutput=1showboxbreadth=maxdimenshowboxdepth=maxdimenerrorstopmodetracingmacros=2tracinggroups=1tracingrestores=1tracingcommands=2tracingassigns=2tracingonlinetracingonlinep

Il comando opposto traceoff rimette a zero tutti quei parametri Si noti chemaxdimen rappresenta sia la massima lunghezza trattabile dai programmi delsistema TEX visto in termini di ldquoscaled pointsrdquo se si assegna questo valoread un contatore intero indica il massimo numero intero (diviso per quattro)gestibile dai programmi del sistema TEX1 di fatto assegnare questo valore ashowboxbreadth e a showboxdepth equivale ad assegnare un valore talmentegrande da poterlo considerare ldquoinfinitordquo tracingtrue impone al valore truealla variabile booleana tracing tracinngonlinep egrave una macro che puogravecontenere il valore 0 o 1 a seconda delle opzioni con cui viene chiamato ilpacchetto trace

Infine errorstopmode imposta il modo di funzionamento del programmain modo che si arresti ad ogni errore spesso i programmi di composizionevengono lanciati con altre opzioni per esempio nonstopmode che possono risultarepiugrave veloci nellrsquoesecuzione chi scrive preferisce sempre lavorare in modalitagraveerrorstopmode cosi puograve rendersi conto subito degli errori commessi avendodisponibile la schermata dello shell editor puograve nella maggior parte dei casispostarsi alla riga segnalata come erronea correggere subito quella riga nel filesorgente contemporaneamente alla richiesta del programma di composizioneegli introduce lrsquoinformazione corretta servendosi della lettera di codice i moltocomoda appunto per correggere subito certi errori di ortografia nei comandi

1Il registro maxdimen vale 1638399998pt assegnando maxdimen a un contatore interoquesto vale 1073741823 piugrave di un miliardo

492 APPENDICE F TRATTAMENTO DEGLI ERRORI

ma tale da poter proseguire subito generalmente fino alla fine della compilazionedellrsquointero file

Questi due comandi oltre ad ldquoaccendererdquo il tracciamento e a ldquospegnerlordquofanno sigrave che le informazioni del tracciamento vengano scritte nel file logTerminata lrsquoesecuzione del programma di composizione si puograve aprire anche conlo stesso shell editor con cui si compone il file sorgente dei documenti quel filelog e leggere tutto quello che ha fatto il programma nella parte tracciata

Di ogni comando che viene eseguito viene mostrata la definizione e qualiargomenti vengono passati al comando poi uno per uno vengono elencati icomandi primitivi oppure vengono ldquoespanserdquo le macro e viene mostrato su qualiargomenti lavorano si procede cosigrave fino alla fine della parte da tracciare senzamostrare se non qualche breve parte relativa ai cambiamenti di font quel tantoche basta per sapere quale comando sia stato eseguito e quale font in effetti siastato selezionato vengono mostrate tutte le aperture di gruppi con i loro livelli ele corrispondenti chiusure come vengono ripristinate le macro o i contatori cheabbiano ricevuto altre definizioni o altri valori allrsquointerno di ogni gruppo qualivalori avessero le macro oggetto di test di vario genere quali siano gli esiti deitest e quale biforcazione si sia presa alla fine del test che cosa indicassero i tokenimpliciti che cosa contenessero le macro oggetto dei comandi expandafterInsomma per filo e per segno ogni possibile azione eseguita dal programma dicomposizione salvo i dettagli meno interessanti come per esempio la selezionedei font e poche altre cose se interessassero queste informazioni si possono usarei comandi di tracciamento descritti nel paragrafo precedente

La descrizione di queste cose egrave molto minuziosa il file log rischia di esseremolto molto grande la sua lettura molto faticosa la sua comprensione moltodifficile fincheacute non si egrave presa la mano Egrave una operazione da cuori molto fortiPer altro anche con i comandi primitivi si hanno situazioni dello stesso generetalvolta ancora piugrave dettagliate

Mettere qui un esempio vorrebbe dire scrivere un altro libro Vi rinuncioTuttavia non esistono altri metodi per imparare a comprendere i tracciatocontenuto nel file log se non quello di provarci e di riprovarci dopo un paio divolte si fa luce nella nostra visione dellrsquooperato del programma di composizionee la lettura del tracciato non egrave piugrave cosigrave difficile come le prime volte lungo sigravenoioso sigrave ma oscuro non piugrave

Vanno usate alcune piccole astuzie bisogna stare attenti a non inserire le duemacro di accensione e spegnimento dentro una macro che viene usata centinaiadi volte ma mettere i due comandi suddetti a cavallo di un breve brano difile sorgente che contenga una sola volta lrsquoesecuzione di quella macro Bisognaevitare tratti di testo sorgente che contengano numerosi cambiamenti di fontanche se per questi viene presentato solo un riassunto se i cambiamenti sononumerosi i riassunti sono numerosi e alla fine si perde di vista quello che interessaBisogna ovviamente trovato lrsquoerrore o la causa di un malfunzionamento di unamacro commentare o cancellare quei due comandi altrimenti il tracciamentocontinua ad essere eseguito rendendo difficoltosa la lettura di un eventuale altrotracciamento in un altro punto del file sorgente Insomma si impara ad usarecorrettamente la funzionalitagrave di tracciamento e a leggerne soltanto le parti cheinteressano Diventa un aiuto prezioso specialmente se si scrivono macro

F9 COSTRUZIONE DEI CAPOVERSI E DELLE PAGINE 493

F9 Costruzione dei capoversi e delle pagineIl tracciamento della costruzione dei capoversi e delle pagine egrave richiesto quandonon si capisce bene percheacute un capoverso venga composto male o diversamenteda come ce lo aspetteremmo lo stesso vale per la costruzione delle pagine daspedire in uscita

A differenza degli altri comandi di tracciamento descritti nel paragrafoprecedente questi comandi sono descritti approfonditamente nel TEXbook Icomandi in questione sono tracingparagraphs=1 e tracingparagraphs=0per accendere e spegnere il tracciamento della costruzione dei capoversi al livellodi dettaglio 1 analogamente per il tracciamento della costruzione delle paginetracingpages=1 e tracingpages=0

In questa appendice si sono dati i comandi per il tracciamento delle paginedurante il corpo di due pagine precedenti (in formato B5) I messaggi ottenutinel file log sono ridotti allrsquoosso

[610] t=4700 plus 90 minus 80 g=4660 b=12 p=0 c=12 t=4820 plus 100 minus 80 g=4660 b= p=3000 c=[611]

goal height=4660 max depth=50 t=100 g=4660 b=10000 p=3000 c=100000 t=220 g=4660 b=10000 p=0 c=100000 t=340 g=4660 b=10000 p=0 c=100000 t=460 g=4660 b=10000 p=0 c=100000 t=580 g=4660 b=10000 p=0 c=100000 t=700 g=4660 b=10000 p=0 c=100000 t=820 g=4660 b=10000 p=0 c=100000 t=940 g=4660 b=10000 p=0 c=100000 t=1060 g=4660 b=10000 p=0 c=100000 t=1180 g=4660 b=10000 p=0 c=100000 t=1300 g=4660 b=10000 p=3000 c=100000 t=1420 g=4660 b=10000 p=0 c=100000 t=1540 plus 10 g=4660 b=10000 p=3000 c=100000 t=1660 plus 10 g=4660 b=10000 p=0 c=100000 t=1780 plus 10 g=4660 b=10000 p=0 c=100000 t=1900 plus 10 g=4660 b=10000 p=3000 c=100000 t=2020 plus 10 g=4660 b=10000 p=0 c=100000 t=2140 plus 20 g=4660 b=10000 p=3000 c=100000 t=2260 plus 20 g=4660 b=10000 p=0 c=100000 t=2380 plus 20 g=4660 b=10000 p=0 c=100000 t=2500 plus 20 g=4660 b=10000 p=0 c=100000 t=2620 plus 20 g=4660 b=10000 p=0 c=100000 t=2740 plus 20 g=4660 b=10000 p=0 c=100000 t=2860 plus 20 g=4660 b=10000 p=0 c=100000 t=2980 plus 20 g=4660 b=10000 p=0 c=100000 t=3100 plus 20 g=4660 b=10000 p=0 c=100000 t=3220 plus 20 g=4660 b=10000 p=0 c=100000 t=3340 plus 20 g=4660 b=10000 p=0 c=100000 t=3460 plus 20 g=4660 b=10000 p=0 c=100000

494 APPENDICE F TRATTAMENTO DEGLI ERRORI

t=3580 plus 20 g=4660 b=10000 p=0 c=100000 t=3700 plus 20 g=4660 b=10000 p=0 c=100000 t=3820 plus 20 g=4660 b=10000 p=3000 c=100000 t=3940 plus 20 g=4660 b=10000 p=0 c=100000 t=4060 plus 30 g=4660 b=10000 p=3000 c=100000 t=4180 plus 30 g=4660 b=10000 p=0 c=100000 t=4300 plus 30 g=4660 b=10000 p=0 c=100000 t=4420 plus 30 g=4660 b=10000 p=3000 c=100000 t=4540 plus 30 g=4660 b=6396 p=0 c=6396 t=4660 plus 40 g=4660 b=0 p=3000 c=3000 t=4780 plus 40 g=4660 b= p=0 c=[612]

Possiamo leggere i risultati cosigrave

bull Per la pagina indicata qui col numero [611] si legge che il totale dialtezza al momento di spedire la pagina allrsquouscita egrave di 4700 pt con lacomponente di allungamento totale nella pagina di 90 pt e una componentedi accorciamento di 80 pt lrsquoaltezza della pagina da raggiungere (il goal) egravedi 4660 pt quindi bisogna accorciare lrsquoaltezza della pagina di soli 40 ptabbondantemente rientrante negli 80 pt di accorciamento disponibile Labruttezza egrave perciograve molto piccola (vale solamente 12) non ci sono penalitagravedi nessun genere il costo per lrsquoemissione di quella pagina egrave quindi pari allabruttezza e vale 12 un costo minimo che indica che la fine della pagina611 egrave avvenuto nel migliore dei modi Se si andasse ad una riga dopo labruttezza diventerebbe ldquoinfinitardquo (b=) e il costo infinito

bull Per la pagina [612] si legge il costo riga per riga alla penultima riga dellapagina si sono raggiunti 4540 pt con pochissimo allungamento accumulatodi soli 30 pt e non si dispone di nessuna componente di accorciamentoLrsquoaltezza della pagina da raggiungere egrave di 4660 pt (come prima eviden-temente) ma i 120 pt mancanti devono essere recuperati dal piccolissimoallungamento disponibile di soli 30 pt dunque la componente di bruttezzaegrave piuttosto pesante 6396 ma non infinita per cui in mancanza di penalitagraveil costo per emettere la pagina egrave piuttosto alto 6396 In effetti quellosarebbe il costo per emettere la pagina una riga prima della riga orfana infondo alla pagina Quella riga in effetti egrave alta esattamente 120 pt quindiil punto scelto dal programma per emettere la pagina non ha nessunabruttezza ma ha una penalitagrave positiva pari alla penalitagrave di default per lerighe orfane pari a 3000 quindi abbastanza minore di quella corrispondentealla bruttezza raggiunta alla penultima riga La pagina quindi egrave stataspezzata nel punto di minimo costo (c=3000) mentre una riga dopo sisarebbe ottenuto un costo grandissimo

Si noti che avendo caricato il pacchetto trace in questo testo il tracciamentodelle pagine cessa con una sola informazione raggiunta verso la fine della paginanel punto in cui si egrave specificato il comando di tracciamento e cessa da solo senzabisogno di specificare un nuovo comando con il valore nullo

Invece per tracciare il processo di composizione della formazione del capoversoprecedente si ha il tracciato seguente decisamente piugrave complicato da decifrare

firstpass

F9 COSTRUZIONE DEI CAPOVERSI E DELLE PAGINE 495

[]T1lmrmit10Si noti che avendo caricato il pacchetto T1lmvttmsl10trace[] T1lmrmit10 in questo testo il tracciamento via 0 b=0 p=0 d=1001 line 12 t=100 -gt 0delle pagine cessa con una sola informazione raggiuntaverso la fine della pagina

via 1 b=0 p=0 d=1002 line 22 t=200 -gt 1nel punto in cui si egrave specificato il comando di tracciamentoe cessa da solo via 2 b=23 p=0 d=10893 line 31 t=1289 -gt 2senza via 2 b=0 p=0 d=1004 line 32 t=300 -gt 2bisogno di specificare un nuovo comando con il valore nullopar via 3 b=0 p=-10000 d=100par via 4 b=0 p=-10000 d=1005 line 42- t=400 -gt 4

Il tracciato comincia con firstpass che indica che le informazioni mostrateindicano la ricerca dei punti migliori di divisione in righe al primo passaggio senzacioegrave usare punti di cesura ma cercando i fine riga solo fra gli spazi interparolaVi sono indicati i cambiamenti di font nelle righe via via prese in considerazione

Il primo fine riga con un demerito totale paria a 100 viene trovato dopo laparola ldquotracciamentordquo analogamente il secondo fine riga viene trovato dopola parola ldquopaginardquo di nuovo con un demerito pari a 100 nella terza riga vieneprovata lrsquointerruzione dopo la parola ldquosolordquo ma i demeriti ammontano a 1089invece andando avanti e prendendo in considerazione anche la parola ldquosenzardquo idemeriti ammontano solo al valore 100 questo egrave quindi accettato come terzofine riga possibile Il quarto fine riga avviene alla fine del capoverso dove lapenalitagrave vale -10 000 e quindi non ci sono problemi nel terminare la riga allafine del capoverso (ovviamente) Nelle ultime due righe vengono riassunti i varidemeriti totali raggiunti attraverso i vari possibili punti di fine riga e vienescelto il percorso (segnato dai vari segnaposto 1 2 ecc) che porta alminimo della somma totale dei demeriti pari a 400 Ovviamente in capoversi piugravecomplessi dove sia necessaria anche la seconda passata per cercare i possibilipunti di cesura usando la sillabazione il tracciato potrebbe essere molto piugravecomplesso ma con un porsquo di pazienza sarebbe decifrabile come si egrave fatto perquesto capoverso

In realtagrave la frase che forma il capoverso che abbiamo tracciato egrave solo unamezza veritagrave per il tracciamento delle pagine egrave vera per il tracciamento deicapoversi egrave falsa Per avere il tracciamento completo come abbiamo mostratosopra egrave necessario evitare di caricare il pacchetto trace percheacute appunto configurai comandi di tracciamento in modo troppo ridotto per disporre di un buontracciamento di pagine e di capoversi

Chi scrive peraltro riconosce che in generale questi due tracciamenti ricchis-simi di informazioni sono meno indispensabili di quelli che si ottengono con icomandi traceon e traceoff chi scrive di solito riesce a capire i difetti di

496 APPENDICE F TRATTAMENTO DEGLI ERRORI

formazione dei capoversi e delle pagine senza ricorrere al loro tracciamento maleggendo solo la scarne informazioni associate agli avvisi di ldquoOverfulrdquo box verticalio orizzontali Naturalmente questa egrave una questione di preferenze personali oltreche di cose che vengono scritte nei vari tipi di file sorgente quando provocanomessaggi di errore o avvisi di cattiva composizione

F10 ConclusioniBencheacute siano fortemente illuminanti i comandi di tracciamento per le paginee per i capoversi vengono usati raramente i comandi traceon e traceoffvengono usati non tanto spesso ma sono la vera ultima risorsa a cui accederequando non si riesce a capire dai messaggi errore come eliminare gli erroriche il programma di composizione si ldquoostinardquo a commettere Inoltre egrave quantomai opportuno leggere attentamente i messaggi di errore spesso la spiegazionedellrsquoerrore egrave descritta dal messaggio ma con parole che non ci sono familiari oche non sappiamo comprendere Solo la pratica insegna a capire questi messaggima se non si comincia mai a usare gi strumenti descritti qui non si riusciragrave maia capire il messaggi drsquoerrore fino in fondo

Nel TEXbook al capitolo 27 dedicato alla soluzione delle condizioni di erroreKnuth termina con queste due citazioni2

Who can understand his errors

mdash Psalm 1912 (c 1000 BC)

It is one thing to shew a Man that he is in an Errorand another to put him in possession of Truth

mdash JOHN LOCKE An Essay Concerning Humane Understanding (1690)

Senza scendere troppo in considerazioni filosofiche il problema dellrsquoerrorenon solo era stato messo nero su bianco fin dai tempi in cui si ritiene che siastata scritta la Bibbia ma era anche un argomento dibattuto nel periodo pre-illuministico quando si evidenziava la differenza fra riconoscere lrsquoerrore rispettoa correggerlo

2Prima citazione ldquoChi riesce a capire i propri errorirdquo Seconda citazione ldquoUna cosa egravemostrare allrsquouomo che egrave in errore e una differente metterlo in condizione di conoscere la veritagraverdquo

Appendice G

Riepilogo della sintassidi LATEX

In questa appendice si riepilogheragrave in modo molto succinto la sintassi di tutti (oquasi) i comandi LATEX anche quelli non descritti nei capitoli del testo Lrsquoordinedel materiale segue lrsquoappendice C del manuale di Lamport il creatore di LATEXNon si tratta perograve di una semplice traduzione anche se la materia sembra espostanello stesso ordine egrave una esposizione ragionata e commentata anche alla luce diinformazioni rese disponibili dopo la pubblicazione di quel manuale

Parentesi graffe e quadre Le parentesi graffe generalmente racchiudono ogli argomenti obbligatori dei comandi oppure un insieme di testo e di comandi eistruzioni che formano un gruppo i comandi e le istruzioni mantengono la loroefficacia solo allrsquointerno del gruppo tranne alcuni comandi il cui effetto egrave globalequesti comandi sono

newcounter pagenumbering newlength hyphenationsetcounter thispagestyle newsaveboxaddtocounter pagecolor newtheorem

Le parentesi quadre delimitano gli argomenti facoltativi di molti comandi bisognastare attenti alle possibili contraddizioni fra queste parentesi e le parentesi quadreche compaiono nel testo queste potrebbero essere scambiate per quelle Al finedi evitare queste incomprensioni egrave opportuno racchiudere le parentesi quadretestuali (o le frasi racchiuse fra parentesi quadre) fra parentesi graffe I comandicon cui potrebbero succedere queste incomprensioni sono i seguenti

linebreak nolinebreak newcounter twocolumnitem pagebreak nopagebreak newtheorem suppressfloats

Si scriveragrave per esempiobeginitemizeitem [omissis] il conte disse allora ltAh ahgtitem[[omissis]] serve per indicare

lrsquoomissione di una parte di testo

497

498 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

Gli argomenti degli ambienti Quando si apre un ambiente solo il comandodi apertura puograve ricevere degli argomenti mentre il comando di chiusura nonne puograve accettare alcuno Se lrsquoambiente ha un nome che contiene un asteriscofinale questo va ripetuto anche nel comando di chiusura lrsquoasterisco non egrave unargomento ma fa parte integrante del nome

Comandi fragili e robusti Quasi tutti i comandi di LATEX sono robusti nelsenso che eseguono quel che devono eseguire senza che questa operazione possaessere modificata dalla posizione che essi hanno per esempio negli argomenti dialtri comandi Sono fragili gli altri e per evitare che possano combinare pasticcibisogna proteggerli con protect premesso al loro nome Il LATEX3 Team stafacendo lrsquoimpossibile per eliminare eo modificare i pochi comandi fragili cherimangono tuttavia ce ne sono ancora alcuni

I comandi fragili si possono comportare male quando sono contenuti fra gliargomenti mobili di altri comandi sono argomenti mobili quelli che devono venireelaborati in fasi successive per esempio quando devono essere scritti nei fileausiliari e poi riletti ed elaborati in una fase successiva quando si rilancia LATEX

I comandi con argomenti mobili sono tipicamente quelli che scrivono qual-cosa che deve poi comparire negli indici generale eo analitico nei glossarinelle liste delle figure eo delle tabelle eccetera gli argomenti di footnote edi footnotetext gli argomenti di typein e di typeout che consentono dicreare dei file tex interattivi il contenuto dellrsquoambiente letter definito allrsquoin-terno della classe letter lrsquoargomento di thanks usato tipicamente nei titolispecialmente per indicare le afferenze degli autori lrsquoargomento facoltativo dibibitem lrsquoargomento delle -espressioni nella definizione degli incolonnamentidegli ambienti tabular e array

Egrave opportuno usare protect con parsimonia per non correre il rischiodi inserirlo dove proprio non ci vuole conviene inserirlo a posteriori quandolrsquoesecuzione della compilazione mostra errori irrecuperabili spesso di difficilediagnosi ma altrettanto spesso dovuti alla fragilitagrave di qualche comando

Il comando Il comando serve sia per andare a capo durante la composi-zione del testo normale eventualmente contenuto dentro ambienti che specificanoil tipo di composizione (testi in display) sia nella composizione di tabelle omatrici quando si vuole terminare una riga di quella struttura I due usi pos-sono entrare in collisione specialmente nelle colonne definite con i descrittoridi colonna p m o b Per evitare che un comando usato con il testo che devevenire composto in una colonna p m o b di una tabella possa venire male inter-pretato come comando relativo alla tabella basta racchiudere lrsquointero contenutodella cella dentro un gruppo formato dalla coppia di parentesi graffe alternativamente si puograve usare il comando newline

Quando LATEX compone un capoverso si eviti di usare due comandi diseguito si usi invece lrsquoargomento facoltativo per aggiungere altro spazio lasintassi del comando lo si ricorda egrave

[〈spazio〉][〈spazio〉]

dove la versione asteriscata impedisce un salto pagina prima della nuova riga acausa di queste diverse modalitagrave di andare a capo il comando egrave fragile

G1 LA STRUTTURA DEL DOCUMENTO 499

Gli ambienti (anche nelle versioni asteriscate) e i comandi che accettano ilcomando a parte il testo normale sono i seguenti

shortstack author title dateeqnarray tabbing array tabular

Gli ambienti array e tabular sono stati messi in evidenza percheacute insieme congli altri ambienti per comporre materiale tabulare bisogna evitare che il segnodi lsquoa caporsquo del testo possa essere frainteso per un comando di fine riga della tabella questa possibile confusione egrave particolarmente insidiosa se la partetestuale viene composta con una delle dichiarazioni centering raggedrighto raggedleft Per evitare di confondere il significato di si suggerisce diusare per lrsquolsquoa caporsquo testuale il comando newline

Inoltre se si specifica uno 〈spazio〉 come argomento di allrsquointerno di unatabella o di una matrice e se questo egrave troppo piccolo potrebbe non manifestarsinessun effetto visibile percheacute il piccolo spazio viene assorbito dalla profonditagravedello strut che compare in ogni riga delle tabelle e delle matrici

G1 La struttura del documentobeginfilecontents〈nome file〉〈contenuto del file〉endfilecontents documentclass[〈lista di opzioni〉]〈classe〉〈preambolo〉begindocument〈testo del documento〉enddocument

La dichiarazione documentclass puograve essere preceduta da uno o piugrave ambientifilecontents che servono in particolar modo quando si inviano i file sorgente adaltri collaboratori per specificare i pacchetti non standard da cui dipende lacomposizione del documento Questi file vengono estratti dal file sorgente la primavolta che il documento viene elaborato nella nuova situazione e memorizzaticon il loro 〈nome file〉 nella cartella corrente cosiccheacute quando la compilazionecomincia per davvero LATEX dispone di tutti i file di cui ha bisogno compresiappunto i file non standard allegati al file sorgente

G2 Periodi e capoversi

G21 PeriodiApostrofi e virgolette

apostrofo rsquovirgolette semplici rialzate lsquo〈testo〉rsquovirgolette doppie rialzate lsquolsquo〈testo〉rsquorsquovirgolette caporali lt〈testo〉gt oppure con encoding T1 ltlt〈testo〉gtgt

500 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

Lineati

lineetta -lineato medio per intervalli numerici --lineato lungo per gli incisi e per i dialoghi ---

Spazi

spazio fine spazio interparola spazio interparola che impedisce di andare a capo ~spazio di fine periodo

Il comando inserito dopo una lettera maiuscola e prima di un punto fermoserve per evitare che questo sia scambiato per un punto di abbreviazioneLrsquointerprete infatti ritiene che un punto dopo una lettera minuscola sia unpunto di fine periodo mentre un punto dopo una lettera maiuscola indichiuna abbreviazione Si osservi la spaziatura quando si scrive M Rossi equando invece si scrive m rossi In questo secondo caso lo spazio chesegue m dovrebbe essere due volte piugrave grande dello spazio che segue M ecomunque circa il doppio dello spazio interparola Si confrontino ancora ledue frasi

Vado allrsquoufficio postale a pagare lrsquoICI Poi torno a casaVado allrsquoufficio postale a pagare lrsquoICI Poi torno a casa

Nel secondo caso non egrave stato inserito il comando dopo la parola ICILa differenza egrave minima ma un occhio esercitato la rileva Egrave per questo chenella composizione della bibliografia dove le abbreviazioni sono numerosesi usa il prossimo comando frenchspacing che rende uguali tutti gli spazidopo i segni di interpunzione in modo che non ci sia da preoccuparsi seun punto indichi una abbreviazione o un punto fermofrenchspacing serve per rendere uguali gli spazi dopo qualsiasi segno diinterpunzionenonfrenchspacing serve per aumentare gli spazi dopo i punti di inter-punzione che marcano la fine della frase o del periodo in particolare dopo ipunti fermi Questa egrave la situazione di default secondo alcuni stimati bookdesigner la spaziatura alla francese sarebbe da evitare sempre secondoaltri dovrebbe essere lrsquounica ad essere usata Si noti che questo interodocumento egrave stato composto con la dichiarazione frenchspacing

Segni speciali

$ $ _ _amp amp

Loghi

LaTeX Logo di LATEXLaTeXe Logo di LATEX2εTeX Logo di TEX

G2 PERIODI E CAPOVERSI 501

today produce la data del giorno

emph〈testo〉 Evidenzia 〈testo〉 scrivendolo in corsivo allrsquointerno di un contestoin tondo e in tondo allrsquointerno di un contesto corsivo

mbox〈testo〉 scrive 〈testo〉 allrsquointerno di una scatola orizzontale in modo chenon possa per esempio essere divisa in sillabe in fin di riga questo comandopuograve essere usato anche in un contesto matematico ma di fatto se nonci sono motivi speciali in matematica si possono usare sia i comandi discelta dei font da usare in un contesto testuale per esempio textrmrinunciando perograve alla prerogativa delle matematica di scegliere il font dellagiusta dimensione oppure i comandi text oppure intertext messi adisposizione dal pacchetto amsmath

G22 CapoversiUn capoverso si puograve iniziare o terminare con uno dei seguenti comandi in ognicaso una o piugrave righe assolutamente bianche senza neanche i segni di commentoservono per terminare un capoverso

noindent comincia un capoverso senza inserirne il tipico rientro

indent comincia un capoverso con il tipico rientro anche quando normalmenteesso non sarebbe inserito

par termina un capoverso e non egrave piugrave necessario lasciare altre righe bianche

I capoversi vengono composti secondo le seguenti giustezze

textwidth egrave la giustezza normale fissata dal file di classe se la si vuole cambiarebisognerebbe farlo solo nel preambolo

linewidth egrave la giustezza corrente puograve essere inferiore o maggiore del valoregenerale textwidth a seconda dellrsquoambiente allrsquointerno del quale si stacomponendo

columnwidth egrave la giustezza di una colonna quando si sta componendo su piugravecolonne

columnsep egrave lo spazio di separazione fra due colonne adiacenti

columnseprule egrave lo spessore del filetto verticale che separa le colonne quandosi compone su due o piugrave colonne

parindent egrave lrsquoammontare del rientro del capoverso

baselineskip egrave lrsquoavanzamento di riga stabilito con la scelta del corpo del fontche si sta usando eventualmente modificato dal comando seguente

linespread〈fattore〉 modifica lrsquoavanzamento di riga mediante il coefficientemoltiplicativo 〈fattore〉 per attivare questa specifica deve essere impartitoil comando selectfont in modo esplicito o implicito (egrave implicito se sispecifica un altro comando di cambiamento di font)

lineskip interlinea aggiuntiva da aggiungere fra due righe adiacenti per evitareche si sovrappongano

502 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

lineskiplimit valore minimo della distanza fra due righe successive scenden-do sotto il quale TEX introduce interlinea supplementare pari a lineskip

parskip rappresenta uno spazio di interlinea (contrografismo) supplementareda inserire prima di ogni nuovo capoverso generalmente questo spazio egravenullo talvolta egrave rappresentato da una lunghezza elastica (vedi piugrave avantinel paragrafo G82) dotata di un valore naturale nullo ma di un piccoloallungamento talvolta anche di un piccolo accorciamento che consente digiustificare le pagine affacciate anche se contengono un numero di righeleggermente diverso Questo normalmente succede quando per esempiouna formula di una certa dimensione verticale o un nuovo paragrafo devecominciare verso la fine di una pagina ma se non crsquoegrave abbastanza postolrsquooggetto viene spostato alla pagina successiva La pagina rimarrebbelsquomozzarsquo e per evitare questo inestetismo il programma di composizionesfrutta lrsquoelasticitagrave di questi contrografismi per distribuire le righe dellapagina in modo che le due pagine affacciate terminino allo stesso livello

enlargethispage〈lunghezza〉 allunga la pagina della 〈lunghezza〉 specifica-ta per ovvi motivi conviene che questa lunghezza si specificata con unnumero intero e piccolo (1 o 2) di righe di testo che in fondo alla paginarichiedono un numero intero di avanzamenti di riga Il comando asteriscatoenlargethispage〈lunghezza〉 prima di allungare la pagina cerca dicomprimere i contrografismi verticali presenti nella pagina stessa al fine difar stare piugrave materiale nella pagina in generale egrave piugrave conveniente usare ilcomando asteriscato

G23 Note in calcefootnote[〈numero〉]〈testo〉

Se viene specificato il 〈numero〉 non vi si puograve fare riferimento in modo simbolicoattraverso i comandi ref label eccetera Il contatore footnote viene rap-presentato con un numero a esponente tranne che nelle note interne allrsquoambienteminipage dove le note sono numerate con lettere minuscole sempre a esponenteIn certe circostanze egrave possibile separare il comando che inserisce il richiamo dellanota dal comando che effettivamente la scrive

footnotemark[〈numero〉] footnotetext[〈numero〉]〈testo〉

Per i parametri stilistici di composizione si veda il prossimo paragrafo

G24 Note marginali

marginpar[〈nota a sinistra〉]〈nota a destra〉

La 〈nota a sinistra〉 serve facoltativamente per specificare un testo con unamodalitagrave di composizione diverso da quello della 〈nota a destra〉

I parametri stilistici con cui vengono composte le note in calce e quellemarginali sono le seguenti

G2 PERIODI E CAPOVERSI 503

footnotesep egrave una lunghezza che rappresenta lrsquoaltezza dello strut messoallrsquoinizio di ogni nota aumentando questa altezza ogni nota viene staccatadi piugrave dalla precedente

footnoterule egrave il comando con il quale vengono collocati nella lista vertica-le di oggetti che compongono la pagina il filetto orizzontale e gli spaziadiacenti i modo da marcare la separazione fra il testo e le note in calceComplessivamente il filetto e gli spazi adiacenti devono avere una altezzatotale nulla quindi bisogna usare anche dello spazio lsquonegativorsquo infatti ladefinizione di default di questo comando egrave la seguente

deffootnoterulekern-3p hrule width 2in kern 26p

Bencheacute sia scritto con comandi protetti di basso livello si capisce cheprima si arretra di 3 pt poi si inserisce un filetto lungo due pollici e spesso04 pt (questo egrave il valore di defualt) e infine si avanza di 26 pt si constatache minus3 pt + 04 pt + 26 pt = 0 pt Si puograve ridefinire questo comando conrenewcommand ma la definizione deve sempre corrispondere ad una seriedi oggetti la cui altezza complessiva sia nulla

marginparsep egrave la larghezza dello spazio che separa le note marginali dal testoa cui sono affiancate

marginparpush egrave la distanza minima fra due note marginali consecutive

marginparwidth egrave la giustezza con cui sono composte le note marginali va daseacute che il margine che le deve contenere deve essere sufficientemente largo edeve tenere conto anche di marginparsep e di un buono spazio verso iltaglio della pagina affincheacute dopo il taglio non si debba scoprire che ancheparte della nota egrave stata tagliata

reversemarginpar egrave una istruzione booleana che imposta lo scambio del mar-gine nel quale vengono composte le note marginali agisce solo quando sicompone ad una sola colonna percheacute a due colonne le note marginali dellacolonna di sinistra vengono composte comunque a sinistra e quelle relativealla colonna di destra a destra di questa

normalmarginpar ristabilisce la composizione delle note marginali nel margineesterno

G25 Accenti e simboli specialiPremesso che con lrsquouso del pacchetto inputenc e della tastiera nazionale lanecessitagrave di ricorrere ai comandi per gli accenti egrave fortemente diminuita tuttaviaegrave utile saper gestire anche i comandi piugrave insoliti al fine di comporre correttamenteanche parole in lingue straniere che fanno uso di segni che non compaiono sullatastiera nazionale

I comandi per gli accenti testuali sono raccolti nella tabella G1 mentre quelliper il contesto matematico sono raccolti nella tabella 97

504 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

lsquoa agrave rsquoa aacute =a ava a ^a acirc a auml~a atilde ua ă a aHa a too oo ct ţda a ba a

macrru ů

i ı j oe œOE Œ ae aelig AE AEligaa aring AA Aring o oslashO Oslash l ł L Łss szlig lsquo iquest lsquo iexcldag dagger ddag Dagger S sectP para copyright copy pounds pound

Tabella G1 I comandi per gli accenti testuali e i simboli speciali di molte linguestraniere

G3 Suddivisione del testo e indiciG31 Comandi di sezionamentoTutti i comandi di sezionamento propriamente detti e gli altri comandi similihanno una sintassi comune

comando[〈titolo breve〉]〈titolo lungo〉

Essi sonopart chapter section subsectionsubsubsection paragraph subparagraph caption

Il comando chapter non egrave definito per la classe article nessun comando disezionamento egrave definito per la classe letter Il livello di sezionamento part nonegrave obbligatorio tutti gli altri comandi devono essere contenuti sotto un comandodel livello precedente

Le parole che eventualmente vengono scritte nelle intestazioni coma lsquoPartrsquoo lsquoPartersquo lsquoChapterrsquo o lsquoChapicirctrersquo vengono impostate tramite lrsquoopportuna chia-mata al pacchetto babel con le opzioni per la lingua del documento In ognicaso esse sono contenute nei comandi partname chaptername figurenametablename per cui possono venire ridefinite a piacere

Ogni comando di sezionamento oltre a comporre lrsquointestazione della divisionespecifica mediante il 〈titolo lungo〉 scrive negli opportuni file accessori il 〈titolobreve〉 da inserire nei corrispondenti indici e con certe classi nelle testatine

Ogni divisione del documento puograve venire numerata e puograve comparire nellrsquoindicequesti due fatti sono controllati dai valori numerici contenuti nei due contatorisecnumdepth e tocdepth Le sezioni sono numerate se il loro livello egrave associatoad un numero minore o uguale a quello contenuto in secnumdepth i loro titolivanno a finire nellrsquoindice se il loro livello corrisponde ad un numero minore ouguale a quello contenuto in tocdepth si veda la tabella G2

Per produrre gli indici si usano i comandi

tableofcontents listoffigures listoftables

G3 SUDDIVISIONE DEL TESTO E INDICI 505

Sezionamento Livello Macro checontiene il nome

part minus1 partnamechapter 0 chapternamesection 1subsection 2subsubsection 3paragraph 4subparagraph 5

caption mdash figurenametablename

Tabella G2 Numeri associati al livello di sezionamento

Le informazioni per produrre questi indici sono contenute in tre file ausiliarile cui estensioni sono rispettivamente toc lof e lot

Le versioni asteriscate dei comandi di sezionamento producono solo lrsquointesta-zione non numerata e non producono niente nellrsquoindice Il comando captionnon possiede la variante asteriscata

Sebbene le versioni asteriscate non producano nessuna voce nei file indicetuttavia le si puograve far comparire se si procede a mano inserendo dopo i comandiespliciti asteriscati il comando addcontentsline con la seguente sintassi

addcontentsline〈estensione〉〈livello〉〈voce〉

dove 〈estensione〉 egrave lrsquoestensione del file ausiliario per lrsquoindice specifico 〈livello〉 egraveil nome (non il numero) del livello di sezionamento espresso dallo stesso nomedel comando senza perograve il backslash la 〈voce〉 egrave quanto viene scritto nel fileindice Generalmente quanto viene scritto nellrsquoindice egrave costituito dallrsquoespressione

protectnumberline〈numero〉〈titolo〉

dove 〈numero〉 egrave il numero della sezione per esempio 38 per lrsquoottavo paragrafodel capitolo tre va da seacute che una sezione non numerata ha questo campo vuotoIl 〈titolo〉 non egrave altro che il titolo (breve) della sezione

Per le sezioni non numerate lasciare vuoto il campo riservato al 〈numero〉implica che il 〈titolo〉 viene incolonnato con gli altri titoli delle sezioni numerateSe invece si omette tutta la parte protectnumberline〈numero〉 allora il〈titolo〉 viene allineato al margine sinistro Si veda per esempio nellrsquoindicegenerale di questo testo dalla voce lsquoBibliografiarsquo allrsquoultimo indice analitico

Per lrsquoindice analitico e il glossario i vari elementi vengono raccolti mediantei rispettivi comandi index e glossary ma il contenuto del loro argomentovaria molto a seconda di come si intende usare lrsquoinformazione raccolta In ognicaso nessuna informazione viene raccolta se nel preambolo mancano i comandimakeindex e rispettivamente makeglossary lrsquoindice analitico eo il glossarionon vengono composti se non si dagrave esplicitamente il comando di comporli disolito attraverso comandi messi a disposizione da pacchetti esterni Altrimentibisogna usare gli ambienti index e glossary specificando a mano il nome dei fileche contengono lrsquoindice o il glossario elaborati adeguatamente

506 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

G4 Classi pacchetti e stili delle pagineG41 Classe del documentoLa scelta della classe va eseguita con il comando

documentclass[〈opzioni〉]〈classe〉

Le classi standard sono book report article letter slides minimal proc ltxdoc queste sono affiancate dalle numerosissime altre classi nonstandard che popolano gli archivi internazionali

Le opzioni standard sono le seguenti

10pt definisce il corpo di default per il documento perograve puograve venire trasmessaanche ad altri pacchetti fra i quali type1ec il quale con questa opzionericava i disegni di tutti i caratteri dai font in corpo 10 pt ingrandendoli orimpicciolendoli a seconda delle richieste del compositore Questo modo diprocedere egrave accettabile solo quando si sta lavorando con font vettoriali Ilfile di uscita risulta meno ingombrante la qualitagrave peggiora un poco maquesta riduzione egrave visibile ad occhio nudo Tra lrsquoaltro si noti la differenzadi resa dei font ingranditi o rimpiccioliti qui si mostra lo stesso testoriportato al corpo 10 partendo da un font di corpo 5 e da un font dicorpo 17 partendo da un font di corpo 5 e partendo da un fontdi corpo 17 Lrsquoeffetto opposto si otterrebbe partendo da un font di corpo 10riducendolo al corpo 5 o ingrandendolo al corpo 17

11pt 12pt servono per scegliere il corpo da 11 pt o da 12 pt come corpo normale

letterpaper legalpaper executivepaper a4paper a5paper b5paper servonoper scegliere il supporto della carta secondo i formati specificati con le siglesuddette precisamente

letter 85 intimes 11 in A4 210 mmtimes 297 mmlegal 85 intimes 14 in A5 148 mmtimes 210 mmexecutive 725 intimes 105 in B5 176 mmtimes 250 mm

Siccome lrsquoopzione di default egrave letterpaper per scrivere in Europa egrave semprenecessario specificare un formato ISO quasi sempre a4paperLe dimensioni cosigrave specificate vengono passate anche al file pdf nel casoche si usi pdfLATEX in quanto quel formato ha bisogno di conoscere ledimensioni del supporto di uscita Il file dvi a stretto rigore non ne habisogno ma poi diventa necessario se questo tipo di file viene convertitonei file ps oppure pdf

landscape serve per scambiare fra di loro la larghezza e lrsquoaltezza del supporto

final draft servono per specificare se si sta componendo la versione finaleoppure una bozza quando si compone una bozza vengono evidenziatele righe fuori giustezza con un vistoso rettangolo nero e non vengonoimportate le figure ma al loro posto viene segnato solo un rettangolo dellegiuste proporzioni con il nome del file grafico scritto dentro

oneside twoside servono per specificare se si vuole comporre solo sul recto oanche sul verso della carta

G4 CLASSI PACCHETTI E STILI DELLE PAGINE 507

openright openany servono per specificare se i capitoli possono iniziare solosulle pagine di destra oppure su qualunque pagina

onecolumn twocolumn servono per specificare si si vuol comporre su unrsquounicacolonna o su due colonne

notitlepage titlepage servono per specificare se il titolo del documento va intesta alla prima pagina nella quale comincia subito anche il testo oppurese si deve riservare una pagina solo per il titolo

openbib serve per comporre la bibliografia (nelle classi che la riconoscono) conuno stile piugrave aperto generalmente le varie parti del riferimento bibliograficosono trattate come dei brevi capoversi senza rientro perograve le loro righe dopola prima risultano composte con un rientro rispetto al margine sinistrospecificato mediante il parametro bibindent

leqno serve per specificare che si desidera numerare le equazioni con il numerocollocato a filo del margine sinistro della gabbia del testo

fleqn serve per specificare che non si desiderano le equazioni centrate ma sidesidera che siano rientrate di una quantitagrave fissa dal margine sinistroquesta quantitagrave viene specificata mediante mathindent che di defaultvale 50 pt

G42 PacchettiLa scelta del pacchetto si esegue con il comando usepackage con la sintassi

usepackage[〈opzioni〉]〈pacchetto〉[〈data〉]

dove 〈data〉 egrave una data in forma ISO (aaaammgg) che rappresenta il limiteinferiore della data corrispondente alla versione che si vuole usare nei circa 15anni da quando esiste LATEX2ε i vari pacchetti sono stati aggiornati cosigrave cheversioni successive non solo hanno (presumibilmente) meno errori o lsquofeaturesrsquo deglistessi pacchetti nelle loro versioni precedenti ma anche funzionalitagrave maggioriEcco che specificando la data si puograve essere sicuri di usare una versione abbastanzarecente che presenta le funzionalitagrave desiderate I pacchetti standard sono

alltt serve per definire lrsquoambiente alltt dove quasi tutti i caratteri speciali perdonoil loro significato specifico e vengono usati come caratteri lsquonormalirsquo

amsmath costituisce la principale estensione per gli ambienti matematici

babel consente di comporre in diverse lingue attenzione babel sceglie le speci-fiche della lingua compresa la sillabazione ma non egrave babel che carica lasillabazione vedi lrsquoappendice C

color serve per gestire i colori dei font e degli sfondi

graphics serve per gestire le manipolazioni grafiche Bencheacute sia il pacchetto chesvolge il lavoro richiesto per lrsquoutente egrave piugrave comodo riferirsi al pacchettoseguente

508 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

graphicx gestisce le operazioni grafiche e gli effetti speciali con una interfac-cia utente piugrave efficace in realtagrave egrave graphicx che si preoccupa di caricaregraphics e di passargli i comandi tradotti nella sua sintassi specifica

ifthen permette di eseguire un fine controllo logico con una interfaccia utentepiugrave semplice di quella che offrono i comandi primitivi di TEX

latexsym consente di usare i simboli speciali di LATEX209 questo pacchettoegrave piugrave per compatibilitagrave con il passato che altro tutti quei simboli sonoaccessibili anche con il pacchetto amsfonts

makeidx serve per gestire comodamente la creazione dellrsquoindice analitico Si puograveusare in alternativa il pacchetto imakeidx che gestisce anche la produzionedi indici analitici multipli e consente di sfruttare la proprietagrave dei sistemimoderni di lanciare comandi di sistema cosiccheacute gli indici analitici possonoessere prodotti direttamente con una sola esecuzione di pdflatex

pict2e estende le capacitagrave grafiche dellrsquoambiente picture di LATEX Queste esten-sioni sono disponibili solo dal 2003 e il pacchetto ha raggiunto una situa-zione abbastanza stabile solo dal 2004 nel 2009 gli sono state ulteriormenteestese le funzionalitagrave si vede dunque come lrsquoopzione della 〈data〉 non siauna cosa tanto insolita da usare

showidx consente di scrivere le voci raccolte con index direttamente sullapagina dove sono state trovate durante la lavorazione di un documentoquesta opzione si rivela molto utile per selezionare e confrontare le varievoci sia per ridurre i duplicati sia per scegliere i riferimenti piugrave adatti

G43 Stili delle pagineOgni classe inizializza lo stile delle pagine normali secondo le prescrizionistilistiche generali della classe stessa Il comando per scegliere lo stile egrave

pagestyle〈stile〉

Il comando

thispagestyle〈stile〉

imposta lo stile della pagina solo per la pagina correnteGli stili predefiniti nelle classi standard sono i seguenti

plain contiene solo il piedino con il numero della pagina

empty sia il piedino sia la testatina sono vuoti

headings il piedino egrave vuoto ma la testatina egrave elaborata e automaticamentecontiene sul verso delle pagine scritte con lrsquoopzione twoside il titolo (breve)del capitolo e nella testatina del recto il titolo (breve) del paragrafo attivoallrsquoinizio della paginaQuesti titoli sono forniti dai comandi di sezionamento in modo automaticose si desiderano testatine specifiche che contengano elementi diversi o titoli-ni correnti diversi bisogna usare i comandi markright e markboth oppu-re bisogna servirsi di pacchetti di estensione come per esempio fancyhdrOppure bisogna servirsi di classi diverse da quelle standard

G4 CLASSI PACCHETTI E STILI DELLE PAGINE 509

myheadings in senso generale egrave simile allo stile headings salvo che le infor-mazioni da inserire nelle testatine debbono essere fornite esplicitamentemediante i comandi markright e markboth

La sintassi di questi comandi egrave la seguente

markright〈titolino di destra〉markboth〈titolino di sinistra〉〈titolino di destra〉

La numerazione delle pagine viene specificata con il comando

pagenumbering〈stile di numerazione〉

dove gli stili di numerazione disponibili sono i seguenti

arabic serve per la normale numerazione con cifre arabe

roman serve per la numerazione romana in lettere minuscole

Roman serve per la numerazione romana in lettere maiuscole

alph serve per la numerazione alfabetica in lettere minuscole

Alph serve per la numerazione alfabetica in lettere maiuscole

fnsymbol serve per rappresentare i numeri con la stessa sequenza di simboliusata per le note per esempio lrsquoasterisco la spada la doppia spada e viadi seguito I simboli in totale sono nove quindi non egrave possibile numerarepiugrave di 9 cose Generalmente questo tipo di numerazione non viene usatoper le pagine ma lo si usa abbastanza spesso per le note in particolareper quelle del frontespizio

Difficilmente si useranno numerazioni alfabetiche percheacute il numero totale dellepagine da numerare potrebbe superare 26 ma per le pagine le numerazioni arabee romane vengono usate spesso

Lo stile della pagina egrave vistosamente differente se si compone su una solacolonna o su due o piugrave colonne le classi standard consentono al massimo duecolonne ma mediante il pacchetto multicol non egrave difficile aumentare il numerodelle colonne

Quando perograve si usano le classi standard e si specifica di comporre ad unasola colonna egrave possibile comporre alcune pagine su due colonne consentendo dicomporre anche una intestazione ad una colonna Al contrario se si egrave specificatalrsquoopzione per comporre su due colonne allora egrave possibile comporre parte dellepagine su una sola colonna I comandi da usare sono

twocolumn[〈intestazione ad una colonna〉]onecolumn

Entrambi i comandi iniziano sempre una nuova pagina poi cominciano a comporrecome dice il loro nome

Ovviamente lo stile della pagina dipende anche dalla giustezza e dalla suarelazione con il formato della carta quindi dei margini Le giustezze orizzontali everticali sono specificate mediante le lunghezze textwidth e textheight e imargini sono specificati mediante le lunghezze oddsidemargin per le pagine di

510 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

destra evensidemargin per le pagine di sinistra topmargin per il marginesuperiore i margini laterali sono comunque i margini sinistri e le parole lsquooddrsquo elsquoevenrsquo (dispari o pari) si riferiscono alla posizione della pagina in relazione allasua numerazione sapendo che il verso di tutte le pagine egrave sempre pari e il rectosempre dispari Questi margini sono riferiti allo spigolo superiore sinistro delfoglio di carta e tutti sono lsquoun pollicersquo di meno di quello che ci si aspetterebbequesto dipende dal fatto che inizialmente era previsto che tutti i driver di uscitaavrebbero inserito di default un pollice di margine

Non egrave il caso di mettersi a giocare con questi margini se proprio si devemodificare lrsquoaspetto geometrico di una pagina egrave meglio usare una classe checonsenta di farlo oppure il pacchetto geometry

G44 Il frontespizioEgrave vero che se uno deve comporre un frontespizio in modo decoroso egrave opportunoche studi il layout e la scelta del corpo e dello stile dei font in modo professionaleTuttavia nei rapporti e negli articoli anche la modesta composizione di defaultoperata dalla classi standard di LATEX puograve essere accettabile

Bisogna ovviamente specificare lrsquoopzione titlepage ma bisogna anche specifi-care nel preambolo un certo numero di informazioni

title〈titolo〉 serve per specificare il titolo del documento se questo titolo egravesufficientemente lungo lo si puograve comporre su piugrave righe inserendo il comando Bisogna perograve ricordarsi di non andare a capo fra un articolo e il nomefra una preposizione e il suo complemento fra avverbi brevi come lsquononrsquoe quanto segue fa parte dellrsquoeleganza della composizione Riassumendonei titoli non si deve mai andare a capo dopo le congiunzioni gli articolile preposizioni e i brevi avverbi per evitarlo si deve usare il comando dilegatura costituito dalla tilde ~

author〈nomi〉 serve per specificare i nomi degli autori ma se gli autori sonopiugrave di uno bisogna separarli con and si puograve andare a capo usando Attenzione per ciascun autore sempre il o i nomi propri prima del o deicognomi

date〈testo〉 il testo di questo comando potrebbe essere una data comesuggerisce il nome del comando ma potrebbe anche essere il nome di unaconferenza un luogo qualunque informazione che permetta di identificareil documento oltre al suo titolo e ai suoi autori (i quali potrebbero averprodotto un articolo con lo stesso titolo ad un altro convegno )

thanks〈testo〉 questo comando puograve essere appeso sia ai nomi degli autori peresempio per specificarne lrsquoafferenza sia al titolo per esempio per associargliil nome dellrsquoente finanziatore delle ricerca sia al testo specificato con dateEsso funziona come il comando per inserire delle note a piegrave di pagina soloche il riferimento di queste note non egrave neacute un numero neacute una lettera ma ungenerico simbolo tratto da una lista che contiene lrsquoasterisco la spada laspada doppia eccetera

Il tutto viene eseguito dando il comando maketitle Alternativamente econ risultati esteticamente variabili a seconda del gusto del compositore si puogravecomporre il frontespizio aprendo lrsquoambiente titlepage e scrivendoci dentro quello

G5 TESTI IN DISPLAY 511

che si desidera dove lo si desidera con i font che si desiderano talvolta la cosaproduce buoni risultati talaltra egrave meglio affidarsi alla composizione di default

Nei rapporti e negli articoli spesso il frontespizio puograve contenere anche unbreve riassunto in LATEX questo viene composto mediante lrsquoambiente abstractIl riassunto puograve comparire come prima cosa dellrsquoarticolo e se questo egrave compostosu due colonne il sunto si trova nella prima colonna subito sotto il titolo e leinformazioni composte con maketitle

Ovviamente classi diverse da quelle standard possono mettere a disposizionedel compositore degli ambienti preconfezionati di titlepage che dispongono leinformazioni desiderate in modo diverso piugrave elegante includendo alche il retrodel frontespizio con le informazioni legali il copyright gli avvisi di copia riservatao proibite altre informazioni sulle persone che hanno collaborato a impaginareil testo a fare i disegni le fotografie e simili Alcune classi consentono anche diinserire nel retro del frontespizio anche il barcode classico a 10 cifre sia quellomoderno a 13 cifre Bisogna perograve documentarsi accuratamente in merito alleclassi alternative per scegliere quella che fa al caso proprio

G5 Testi in displayG51 Citazioni e poemiGli ambienti per i testi in display sono

beginquote 〈testo〉 endquotebeginquotation 〈testo〉 endquotationbeginverse 〈testo〉 endverse

G52 ListeGli ambienti predefiniti per le liste sono

beginitemizeitem[〈contrassegno〉] 〈testo〉 enditemize

beginenumerateitem[〈contrassegno〉] 〈testo〉 endenumerate

begindescriptionitem[〈voce da descrivere〉] 〈testo di descrizione〉 enddescription

Per i primi due ambienti il 〈contrassegno〉 egrave davvero facoltativo per lrsquoam-biente description bencheacute appaia come argomento facoltativo in realtagrave esso egraveobbligatorio percheacute non avrebbe senso dare una descrizione di nulla Tuttaviase non si specifica nulla nemmeno le parentesi quadre si comincia una nuova

512 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

descrizione senza etichetta che puograve essere vista come un nuovo capoverso Nonsembra una buona idea sfruttare cosigrave male le potenzialitagrave di LATEX

Lrsquoambiente principale con il quale sono costruite tutte le altre liste perograve egravelrsquoambiente list che egrave completamente configurabile in ogni dettaglio La sintassi egrave

beginlist〈contrassegno di default〉〈dichiarazioni〉item[〈contrassegno personalizzato〉] 〈testo〉 endlist

Il 〈contrassegno di default〉 egrave il modo di comporre il contrassegno che listproduce quando non viene esplicitato un 〈contrassegno personalizzato〉 con ilcomando item Le 〈dichiarazioni〉 invece sono una serie di istruzioni chespecificano il modo di comporre eseguito da list Ci sono numerose possibilitagraveche egrave meglio descrivere una alla volta

topsep egrave la distanza che separa il testo precedente alla lista dalla prima vocedella lista La stessa distanza viene posta dopo la chiusura della lista

partopsep egrave lo spazio aggiuntivo aggiunto prima e dopo la lista se questa co-mincia un nuovo capoverso cioegrave se nel file sorgente una riga completamentebianca precede il comando di apertura dellrsquoambiente

itemsep egrave lo spazio aggiuntivo che viene messo prima di una voce della listase questa egrave preceduta da una riga bianca

parsep Siccome dentro le liste i capoversi solitamente non vengono rientratiallora si puograve usare un piccolo spazio aggiuntivo fra due capoversi appar-tenenti alla stessa voce questo spazio di separazione fra i paragraphs sichiama appunto parsep

leftmargin egrave la rientranza di ogni voce della lista rispetto al testo circo-stante liste annidate hanno rientranze sempre maggiori il file di classespecifica le varie successive rientranze mediante i comandi leftmarginileftmarginii leftmarginiii e leftmarginiv

rightmargin egrave la distanza orizzontale fra il margine destro della lista correntee il margine destro del testo che contiene la lista

listparindent egrave il rientro extra aggiunto (o anche tolto se ha un valorenegativo) alla rientranza di ogni linea di ciascuna voce tranne la primariga tutte le classi standard hanno questo parametro impostato a zero manon egrave impossibile che in altre classi o in liste personalizzate non si possausare questo parametro

itemindent egrave la rientranza della prima riga di ogni voce della lista Puograve ancheavere un valore negativo

labelsep egrave la distanza minima che separa il 〈contrassegno〉 dal resto del testonella prima riga di ogni voce

labelwidth egrave la larghezza prevista per il 〈contrassegno〉 a seconda della perso-nalizzazione se questo contrassegno fosse piugrave largo o piugrave stretto di questalarghezza il contrassegno viene fatto sporgere a sinistra oppure viene fatto

G5 TESTI IN DISPLAY 513

sporgere a destra ma cominciando il testo della voce piugrave a destra in mododa mantenere costante lo spazio fra la fine del 〈contrassegno〉 e lrsquoinzio dellavoce

makelabel〈contrassegno〉 egrave la macro che effettivamente compone il contras-segno

usecounter〈contatore〉 specifica che il 〈contatore〉 egrave quello usato per nume-rare gli elementi della lista e lo rende usabile con i comandi label eref

Vale la pena di provare a leggere la definizione dellrsquoambiente enumerate percapire meglio come si usi lrsquoambiente list Lrsquoesempio che si porta egrave ripreso dalledefinizioni sparse in diversi file per lrsquoambiente enumerate della classe bookquando si compone con il corpo di default di 10 pt Le definizioni vere e propriedellrsquoambiente sono eseguite con comandi di basso livello eo con comandi diservizio di LATEX ma si ritiene che siano abbastanza chiare da non richiedereuna spiegazione mentre se ne daranno per altri aspetti delle definizioni

Definizioni in latexltxnewcountenumdepth enumdepth = 0definecounterenumidefinecounterenumiidefinecounterenumiiidefinecounterenumiv Definizioni in bookclsrenewcommandtheenumiarabiccenumirenewcommandtheenumiialphcenumiirenewcommandtheenumiiiromancenumiiirenewcommandtheenumivAlphcenumivnewcommandlabelenumitheenuminewcommandlabelenumii(theenumii)newcommandlabelenumiiitheenumiiinewcommandlabelenumivtheenumivrenewcommandpenumiitheenumirenewcommandpenumiiitheenumi(theenumii)renewcommandpenumivpenumiiitheenumiii Definizioni in bk10clodeflistileftmarginleftmargini

parsep 4p plus2p minusptopsep 8p plus2p minus4pitemsep4p plus2p minusp

letlistIlistilistideflistii leftmarginleftmarginii

labelwidthleftmarginiiadvancelabelwidth-labelseptopsep 4p plus2p minuspparsep 2p plusp minuspitemsep parsep

deflistiiileftmarginleftmarginiii

514 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

labelwidthleftmarginiiiadvancelabelwidth-labelseptopsep 2p pluspminuspparsep zpartopsep p plusz minuspitemsep topsep

deflistiv leftmarginleftmarginivlabelwidthleftmarginivadvancelabelwidth-labelsep

deflistv leftmarginleftmarginvlabelwidthleftmarginvadvancelabelwidth-labelsep

deflistvi leftmarginleftmarginvilabelwidthleftmarginviadvancelabelwidth-labelsep

Definizioni in latexltxdefenumerate

ifnum enumdepth gtthrtoodeepelseadvanceenumdepthneedefenumctrenumromannumeraltheenumdepthexpandafterlistcsname labelenumctrendcsnameusecounterenumctrdefmakelabel1hssllap1

filetendenumerate =endlist

Inizialmente si definiscono il contatore di livello e i quattro contatori perciascuno dei quattro livelli si ricorderagrave infatti che le liste anche le enumerazionipossono essere annidate lrsquouna nellrsquoaltra ma solo fino al quarto livello

Successivamente nella classe book si definiscono i modi di rappresentare ivari contatori di enumerazione il primo contatore viene stampato mediantearabiccenumi cioegrave in cifre arabe nella lista perograve esso viene marcato comeil numero seguito da un punto theenumi Per il primo livello basta cosigrave maper i livelli successivi ci vuole un prefisso quando si cita il terzo elemento dellaseconda lista annidata per esempio non basta la scrittura del valore del secondocontatore che viene stampato con una lettera mediante alphcenumii manella lista questa lettera egrave racchiusa fra parentesi tonde (theenumii) Nellacitazione del terzo elemento non basta che appaia lsquocrsquo oppure lsquo(c)rsquo ma ci vuoleanche un prefisso che faccia riferimento alla prima lista ecco quindi il prefissotheenumi che fa si che quellrsquoelemento sia citato come lsquo2(c)rsquo Lo stesso avvieneper gli elementi delle liste interne

Nel file bk10clo che contiene le dimensioni e i corpi specificati per quando sicompone con lrsquoopzione di default 10pt sono definiti alcuni dei parametri descrittiper lrsquoambiente list Per lrsquoenumerazione di primo livello il tutto egrave contenuto nelladefinizione del comando listi questi spazi si riferiscono a tutte le liste diprimo livello non solo alle enumerazioni precisamente sono definiti parseptopsep e itemsep sono tutte lunghezze elastiche percheacute contengono la compo-nente di allungamento introdotta da plus e la componente di accorciamentointrodotta da minus il comando p indica una lunghezza predefinita del

G5 TESTI IN DISPLAY 515

valore di un punto tipografico Fra le definizioni contenute in listi compareanche leftmargin a cui viene assegnato il valore di leftmargini questo asua volta egrave definito nella classe book come una quantitagrave espressa in unitagrave dimisura em legate cioegrave al corpo del font in uso in quel contesto (potrebbe ancheessere una nota o una citazione scritta in corpo minore) Definizioni analogheappaiono anche per i livelli interni di annidamento

Infine viene la definizione vera e propria che ricorre allrsquoambiente list cosigrave comeegrave contenuta in latexltx In questa definizione per prima cosa si verifica che illivello di annidamento giagrave raggiunto non sia superiore a tre se cosigrave fosse si emetteun messaggio di errore mediante il comando toodeep altrimenti si incrementail contatore del livello di annidamento e si procede alle varie definizioni si notiche per fare riferimento ai parametri corrispondenti al livello di annidamentocorrente si fa riferimento al suo nome ottenuto agglutinando il prefisso enumcon il valore del contatore di annidamento espresso in numeri romani minuscoliquesto risultato si ottiene con i comandi primitivi csname e endcsname ingenerale lrsquoutente che deve usare lrsquoambiente list per confezionare una lista specialenon ha bisogno di ricorrere a questi comandi primitivi ma a loro modo moltoavanzati allrsquooccorrenza puograve tuttavia consultare il TEXbook

Il primo argomento dellrsquoambiente list (attivato senza ricorrere a begin madando direttamente il comando lsquointernorsquo list non egrave racchiuso fra parentesigraffe ma egrave il frutto di expandafter e nuovamente di csname e endcsname cheassieme agglutinano il prefisso label con il valore del contatore di annidamentoespresso in numeri romani minuscoli

Il secondo argomento dice di usare il contatore enumctr e dice di comporrelrsquoetichetta di ogni voce mediante un numero composto in bandiera giustificata adestra autorizzando anche di fuoriuscire dal margine di sinistra mediante lrsquoaccor-gimento di far precedere il comando llap (left overlap sovrapponi a sinistra)con un blocco di gomma elastica di lunghezza naturale nulla e allungamento eaccorciamento infiniti hss

Il comando di chiusura dellrsquoambiente enumerate egrave reso equivalente attraversolet al comando di chiusura della generica lista endlist

Lrsquoesempio appena fatto forse egrave complicato ma in realtagrave delucida tante coseche non sono state descritte nei dettagli negli appositi capitoli e mostra anchealcune tecniche di programmazione a livello di comandi primitivi di TEX

Un esempio piugrave semplice Si vuole comporre una ambiente simile a descriptionche abbia la possibilitagrave di definire il margine sinistro sulla base della lunghezzadi una parola potrebbe essere utile per un glossario per esempio Vogliamoanche che ogni chiave che introduce ogni voce sia scritta in carattere lineare manon sia nero Vediamo prima come egrave definito lrsquoambiente description

newenvironmentdescriptionlistlabelwidthz itemindent-leftmargin

letmakelabeldescriptionlabelendlist

newcommanddescriptionlabel[1]hspacelabelsepnormalfontbfseries 1

Dobbiamo quindi definire comandi simili per esempio lrsquoambiente descrizione cheaccetti un argomento sul quale prendere le misure del margine sinistro e la suaetichetta etichettadescrizione Ecco come fare

516 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

newenvironmentdescrizione[1]listsettowidthlabelwidthnormalfontsffamily1

letmakelabeletichettadescrizioneendlist

newcommandetichettadescrizione[1]hspacelabelsepnormalfonntsffamily 1

Come si vede il compito era inizialmente piugrave facile e la soluzione egrave decisamentepiugrave semplice

G53 Testo composto verbatimSi possono usare due comandi e due ambienti per comporre del testo in modoverbatim questo modo di comporre egrave quello che serve quando bisogna esporreper esempio dei brani scritti in un linguaggio di programmazione nel quale sifa uso dei caratteri speciali di TEX (ovviamente con altri significati) I comandisono

verbsimbolo〈testo da riprodurre〉simbolooppureverbsimbolo〈testo da riprodurre〉simbolo

Il simbolo egrave un solo carattere e funziona da delimitatore del 〈testo da riprodur-re〉 la versione senza asterisco riproduce gli spazi come spazi la versione conlrsquoasterisco riproduce gli spazi con il segno speciale Il 〈testo da riprodurre〉 devecomparire in una sola riga nel file sorgente

Gli ambienti sono invece

beginverbatim〈testo da riprodurre verbatim〉endverbatimbeginverbatim〈testo da riprodurre verbatim〉endverbatim

Il 〈testo da riprodurre verbatim〉 si puograve svolgere su diverse righe anzi di so-lito egrave composto di diverse righe Lrsquounica riga che non si puograve riprodurre egraveendverbatim con o senza asterisco Lrsquoambiente asteriscato come il comandoasteriscato riproduce lo spazio in modo visibile con il carattere

Il comando verb egrave fragilissimo e non puograve apparire come argomento di nessunaltro comando (nemmeno nella versione asteriscata)

Il pacchetto standard alltt definisce un ambiente alltt da usare come lrsquoam-biente verbatim dove tutti i caratteri sono diventati caratteri lsquonormalirsquo salvo e

G6 Formule matematicheG61 FormuleLa matematica in linea puograve essere delimitata dai seguenti delimitatori

$ 〈formula in linea〉 $( 〈formula in linea〉 )beginmath 〈formula in linea〉 endmath

G6 FORMULE MATEMATICHE 517

Si consiglia di non usare il primo metodo anche se egrave piugrave comodo da scriverepercheacute si perde la diagnostica di LATEX nel caso che ci si dimentichi di uno deidue delimitatori Lrsquoambiente math come si puograve ben capire non viene usatomolto spesso I delimitatori ( e ) sono i migliori ma sono fragili Invece idelimitatori $ $ sono robusti

Il comando

ensuremath〈formula〉

permette di comporre una 〈formula〉 in linea garantendo che essa venga compostacorrettamente anche se il comando viene emesso in modo testuale Egrave comodoper definire macro che debbono potersi usare sia nel modo testo sia nel modomatematico

Usando il pacchetto babel egrave disponibile il comando

textormath〈per il modo testo〉〈per il modo matematico〉

che produce un effetto analogo a quello di ensuremath con una notevoledifferenza usato per definire un comando da usare sia in modo testo sia in modomatematico puograve eseguire composizioni diverse nellrsquouno o nellrsquoaltro modo senzache il compositore debba preoccuparsi di verificare il modo di composizioneensuremath invece compone il suo argomento sempre in modo matematicoallrsquooccorrenza entrando ed uscendo da questo modo al fine di lasciare TEX nellostesso stato nel quale si trovava prima dellrsquoesecuzione del comando

Per la matematica in display si hanno gli ambienti

[ 〈formula in display〉 ]begindisplaymath 〈formula in display〉 enddisplaymathbeginequation 〈formula in display〉 endequation

I primi due ambienti non assegnano un numero alla 〈formula in display〉 mentreil terzo ambiente assegna un numero a detta formula Lrsquoambiente displaymathviene usato raramente visto che quello definito con [ ] egrave molto piugrave comododa usare Lrsquoambiente equation non ha sostituti

LATEX offrirebbe anche gli ambienti eqnarray e eqnarray ma per i motivi giagraveesposti nel capitolo 10 egrave preferibile non servirsene al contrario per comporreformule e sistemi di formule in display egrave molto meglio servirsi del pacchettoamsmath

Dentro agli ambienti equation e eqnarray (allrsquointerno di ciascuna riga) egravepossibile inserire il comando label cosigrave da definire una etichetta mnemonicaper richiamare il numero della formula con ref eo con pageref Dentroeqnarray si puograve usare nonumber per evitare che LATEX assegni un numero aduna espressione che non si vuole numerare Questo ambiente consentirebbe anchedi spezzare una singola lunga espressione matematica su piugrave righe ricorrendoanche al comando suddetto e a lefteqn ma per questo scopo egrave meglio servirsidegli opportuni ambienti predisposti apposta dal pacchetto amsmath

Le espressioni in display usano un certo numero di parametri per comporresecondo diversi stili

jot serve per aggiungere altro spazio fra una equazione e lrsquoaltra in un sistemadi equazioni

518 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

mathindent serve per fissare la rientranza sinistra delle equazioni quandoqueste sono composte allineate a sinistra se si usa lrsquoopzione fleqn per laclasse del documento

abovedisplayskip serve per definire il contrografismo che precede una equa-zione in display viene usato un contrografismo piugrave piccolo quando la rigaprima del display egrave molto corta e lrsquoespressione matematica potrebbe darelrsquoimpressione ottica di essere preceduta da uno spazio troppo grande

abovedisplayshortskip egrave appunto questo contrografismo superiore piugrave pic-colo

belowdisplayskip egrave il contrografismo da inserire dopo una formula per di-stanziarla dal testo seguente

belowdisplayshortskip serve per inserire un contrografismo piugrave piccolo selrsquoespressione matematica egrave seguita da una riga di testo molto cortaVa da seacute che i shortskip non vengono usati quando si compone conlrsquoopzione fleqn percheacute le espressioni sono tutte allineate a sinistra a menodel loro rientro non molto importante (una cinquantina di punti circa15mm)

Per comporre le espressioni matematiche si usano spesso piccoli comandi opiccole strutture di cui egrave facile dimenticarsi

Esponenti gli esponenti si inseriscono mediante il comando ^

^〈esponente〉

Con lrsquoopzione italian di babel egrave disponibile il comando ap〈apice〉 perinserire un apice in tondo quando si egrave in modo matematico un apice conil font corrente quando si egrave in modo testo Il nucleo di LATEX per il modotesto prevede anche il comando textsuperscript valido sempre anchesenza lrsquouso di babel

Apici Lrsquoapice prime o il doppio apice primeprime si inseriscono con uno o due apostrofi che inmodo matematico vengono composti come apici

Pedici e deponenti I pedici vengono inseriti con il comando _

_〈pedice〉

Con lrsquoopzione italian di babel egrave possibile usare il comando ped〈pedice〉per inserire un pedice in tondo in modo matematico e per inserire undeponente con il font corrente in modo testo

Frazioni Le frazioni vengono composte con il comando

frac〈numeratore〉〈denominatore〉

G6 FORMULE MATEMATICHE 519

Bisogna ricordare che questo comando compone le frazioni in display comeci si aspetterebbe ma le compone in modo testo sia nelle espressionimatematiche in linea sia nelle sottoespressioni come per esempio un altronumeratore o denominatore in questi casi egrave preferibile servirsi delle frazionia barra obliqua piuttosto che di quelle a barra orizzontale

Radici Le radici quadrate o con altro 〈indice〉 si compongono con

sqrt[〈indice〉]〈radicando〉

Se lrsquo〈indice〉 vale 2 non lo si indica

Ellissi Le parti omesse (ellissi) vengono sostituite con i soliti tre puntini inmatematica ce ne hanno di diversi tipi dots ( ) si puograve usare sia in modomatematico sia in modo testo e produce i soliti puntini a livello della lineadi base in modo testo o a livello della linea di base o dellrsquoasse matematicoin modo matematico a seconda del contesto cioegrave se egrave preceduto o seguitoda segni di interpunzione appoggiati alla linea di base oppure di operatoribinari centrati sullrsquoasse matematico ldots produce lo stesso effetto dicollocare i tre puntini sulla linea di base ma egrave da usare in modo matematicocdots (middot middot middot ) produce i tre puntini allineati con il segno minus cioegrave sullrsquoassematematico della formula vdots (

) produce tre puntini verticali cheservono per sostituire in verticale gli elementi omessi da colonne di matriciinfine ddots ( ) produce tre puntini in diagonale utili per riempire unaparte omessa dal cuore di una matriceSe si usa dots in modo testo i tre puntini sono sempre sulla linea dibase ma se si usa il pacchetto amsmath questo comando egrave ridefinito inmodo che in modo matematico esso si comporti in modo intelligente valea dire esso colloca i puntini sulla linea di base se almeno da un lato egravecontornato da un segno di interpunzione mentre esso produce i puntinisullrsquoasse matematico della formula se egrave contornato da almeno un operatorebinario Si confrontino i seguenti due casi composti entrambi con dots

i = 1 2 3 n i = 1 + 2 + 3 + middot middot middot+ n

G62 Simboli accenti delimitatori e grandi operatoriTutti i simboli di qualunque genere usabili in matematica sono raccolti nelletabelle 92ndash98 nelle tabelle 101ndash102 invece sono raccolti gli ulteriori simbolidisponibili con il pacchetto amsmath

G63 Impilare gli oggetti matematiciUna (breve) espressione puograve venire sopralineata con

overline〈espressione〉

Analogamente si puograve sottolineare una espressione con

underline〈espressione〉

520 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

Anche gli accenti matematici possono venire impilati ma si tratta semplice-mente di racchiudere fra le graffe che delimitano lrsquoargomento del primo accentouna espressione giagrave accentata

Invece stackrel permette di costruire degli operatori di relazione impilandouno sopra lrsquoaltro due segni distinti scelti fra i vari simboli disponibili

stackrel〈elemento superiore〉〈elemento inferiore〉

G64 Spaziatura matematicaNon si puograve raccomandare mai abbastanza lrsquoopportunitagrave di non spaziare leespressioni matematiche I comandi di spaziatura hanno senso se e solo se laspaziatura di default non egrave adeguata ai simboli che compaiono uno accantoallrsquoaltro in una espressione matematica Se quindi si inseriragrave una qualchespaziatura lo si faragrave solo dopo aver corretto le bozze controllando accuratamenteche questa spaziatura sia praticamente impercettibile

spazio sottile spazio medio spazio sottile negativo spazio grande

Il comando puograve essere usato anche in modo testo Naturalmente si potrebberoanche usare quad e qquad oltre ai comandi di spaziatura del modo testoTuttavia merita di segnalare i comandi primitivi mskip e mkern che accettanocome argomenti (non racchiusi fra nessun tipo di parentesi) degli spazi espressimediante le unitagrave di misura chiamate mu valide solo in matematica 18muequivalgono a 1 em ma in matematica lrsquounitagrave lsquoemrsquo cambia grandezza a secondadel font in uso in particolare per il corpo principale della formula per gli apicied i pedici di primo ordine e per gli apici ed i pedici di secondo ordine

G65 Font matematiciPer avere una intera formula composta con caratteri medi o con caratteri neribisogna specificarlo prima di entrare in modo matematico

boldmath〈ambiente matematico〉unboldmath

Altrimenti i vari simboli letterali eo gli operatori possono essere resi con fontdiversi se si usano i comandi seguenti

mathrm tondo mathsf senza graziemathit corsivo mathtt spaziatura fissamathbf nero mathcal CALLIGRAFICO

Si noti che il corsivo matematico il corsivo testuale usato in matematicamediante il comando mathit e il corsivo per il testo sono font con proprietagravecompletamente diverse per esempio il primo non contiene legature per cuila parola affine verrebbe composta affine Piugrave dettagliatamente gli esempiseguenti mostrano il diverso comportamento dei tre corsivi

G7 DEFINIZIONI NUMERI E PROGRAMMAZIONE 521

textitaffine affine affine affine affine affine( mathitaffine affine affine ) affine affineaffine( affine affine affine ) affine affineaffine

Si noti che i comandi testuali come textit possono essere usati anche inmatematica producendo semplice testo mentre i comandi che scelgono i font inmatematica lo fanno solo per le lettere e gli altri segni equivalenti alle lettereIl corsivo matematico trae i suoi segni da una polizza diversa da quella sia deltesto corsivo sia del testo corsivo matematico Si noti ancora che lo spazio dopola virgola quando si scrive usando il comando mathit appare esplicitamentepercheacute nel contesto di questo libro si egrave usata la lsquovirgola intelligentersquo vale adire si egrave usato il significato speciale di carattere attivo che la virgola assume inmatematica al fine di inserire uno spazio se seguita da uno spazio ma di noninserire nulla se egrave seguita da un altro segno si nota infatti che la virgola sia nellaseconda sia nella terza riga egrave seguita da uno spazio sottile (matematico) mentrenella prima riga essa egrave seguita da un normale spazio interparola

G66 Stili di composizioneI quattro stili di composizione della matematica sono

displaystyletextstylescriptstylescriptscriptstyle

Lo stile textstyle differisce dal displaystyle nel senso che egrave piugrave raccolto inverticale gli apici e i pedici sono piugrave vicini allrsquoasse matematico i limiti superiorie inferiori sono composti accanto allrsquooperatore come se fossero apici o pedicile frazioni sono composte in scriptstyle per mantenere limitato lrsquoingombroverticale in modo che non sia necessario spaziare le righe del testo Egrave per questoche bisogna stare attenti specialmente con le frazioni a non renderle troppopiccole piuttosto che una frazione troppo piccola egrave preferibile una barra obliquasenza rimpicciolire numeratori e denominatori nemmeno quando sono puramentenumerici come in 23 questa pratica egrave lsquodeprecatarsquo dalla norma UNI 2950

G7 Definizioni numeri e programmazioneG71 Comandi di definizioneNuove macro possono essere definite ridefinite o rese disponibili se non lo sonogiagrave mediante i comandi

newcommand〈comando〉[〈numero argomenti〉][〈default〉]〈definizione〉renewcommand〈comando〉[〈numero argomenti〉][〈default〉]〈definizione〉providecommand〈comando〉[〈numero argomenti〉][〈default〉]〈definizione〉

Sono tutti comandi fragili ma del resto non sembra opportuno usarli negliargomenti di altri comandi Sono giagrave stati descritti in dettaglio nel capitolo 17Tutti dispongono della versione asteriscata la differenza sembra minima ma egraveimportante per evitare perdite di tempo quando si commettono errori nellrsquouso

522 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

dei comandi definiti mediante queste istruzioni In termini di gergo TEX icomandi senza asterisco sono long mentre quelli con asterisco non lo sono Unlsquolong commandrsquo che accetta uno o piugrave argomenti egrave in grado di elaborare ancheargomenti composti di piugrave capoversi per esempio parbox egrave un lsquolong commandrsquoI comandi che non hanno questo attributo non consentono che i loro argomenticontengano una linea bianca eo un comando esplicito di fine capoverso par sequesto succedesse essi arresterebbero subito la compilazione con un messaggio dierrore Questo fatto succede abbastanza frequentemente quando ci si dimenticala parentesi graffa di chiusura di un argomento Ma con i comandi lsquocortirsquo lrsquoerroreviene trovato subito con la normale diagnostica di LATEX mentre con i comandilunghi lrsquoerrore potrebbe venire segnalato o alla fine del file oppure percheacute lamemoria di TEX egrave satura

G72 Comandi per la definizione di ambientiGli ambienti sono definiti o ridefiniti mediante i comandinewenvironment〈nome〉[〈numero argomenti〉][〈default〉]

〈comandi di apertura〉〈comandi di chiusura〉renewenvironment〈nome〉[〈numero argomenti〉][〈default〉]

〈comandi di apertura〉〈comandi di chiusura〉

Si veda il capitolo 17 per maggiori dettagli ed esempi

G73 TeoremiLATEX mette a disposizione dei comandi per definire degli pseudo ambienti al finedi comporre gli enunciati di teoremi o enunciati simili Il comando newtheoremconsente due forme di definizionenewtheorem〈nome〉〈titolino〉[〈contatore dominante〉]newtheorem〈nome〉[〈numerato come〉]〈titolino〉

dove〈nome〉 rappresenta il nome dello pseudoambiente potragrave essere per esempio

teorema lemma definizione eccetera Per cui se 〈nome〉 si riferisce a unteorema il suo enunciato verragrave racchiuso allrsquointerno di beginteorema〈enunciato〉 endteorema

〈titolino〉 la parola che identifica lrsquoenunciato potragrave essere Teorema LemmaDefinizione eccetera Non si confonda il nome dellrsquoambiente con il titolinodellrsquoenunciato

〈contatore dominante〉 egrave il contatore del capitolo se si vuole che la numerazionedel nuovo enunciato sia iniziata da 1 ad ogni nuovo capitolo saragrave il contatoredei paragrafi se si desidera che la numerazione ricominci da 1 ad ogninuovo paragrafo eccetera

〈numerato come〉 egrave invece il nome dello pseudo ambiente del quale si vuole con-dividere la numerazione Questo deve essere giagrave stato definito Si potrebbeper esempio numerare con una sola sequenza numerica sia i teoremi siai lemmi sia i corollari mentre probabilmente si preferirebbe numerareseparatamente le definizioni le congetture eccetera

G8 NUMERI LUNGHEZZE E SPAZI 523

Se non si specificano i contatori facoltativi questi comandi definiscono un nuovocontatore con lo stesso nome dello pseudo ambiente che puograve venire stampatousando il comando thenome Nella stessa maniera i comandi label e refusano il nuovo nome del contatore per rendere accessibile ai riferimenti incrociatianche questi enunciati Se invece si specifica il contatore 〈numerato come〉 nonviene introdotto nessun nuovo contatore ma si usa quello giagrave esistente Infine sesi specifica il nome del 〈contatore dominante〉 il comando thenome produrragravein stampa il numero del contatore relativo allo pseudo ambiente precedutodal numero stampato del 〈contatore dominante〉 se per esempio il 〈contatoredominante〉 fosse il paragrafo allora il tredicesimo enunciato del quarto paragrafodel decimo capitolo verragrave stampato nella forma 10413

G8 Numeri lunghezze e spaziIl sistema TEX per comporre svolge una quantitagrave di calcoli sia usando numeriveri e propri sia usando lunghezze e spazi

TEX fa calcoli solo con numeri interi gli unici numeri non interi che essogestisce sono i fattori moltiplicativi delle lunghezze o degli spazi Qui di seguitovedremo come esistano registri per conservare i numeri come agire sui numeri esui loro registri chiamati contatori

TEX usa le lunghezze e dispone di registri per la conservazione di informazionimetriche questi registri non hanno nomi particolari come i contatori per i numerima possono essere chiamati per nome come lo si puograve fare per i contatori

Gli spazi sono speciali lunghezze e i loro registri sono anchrsquoessi un porsquo specialiessi sono chiamati anche ldquolunghezze elasticherdquo percheacute hanno la proprietagrave dipotersi allungare o accorciare rispetto alla loro lunghezza naturale essi sonoformati dalla collezione di tre lunghezze la prima rappresenta la lunghezzanaturale la seconda lrsquoammontare assoluto di cui essa puograve allungarsi e la terzalrsquoammontare assoluto con cui puograve restringersi

Per operare con i numeri e le lunghezze rigide o elastiche TEX dispone di uncerto numero di comandi primitivi Lrsquoestensione etex incorporata nelle versionipiugrave recenti di pdftex consentono di eseguire certe operazioni in modo molto piugravecomodo Altrimenti non disponendo di una versione recente di pdftex bisognaricorrere al pacchetto calc alla cui documentazione si rimanda il lettore

G81 NumeriA parte il modo di scrivere i numeri giagrave visto nella pagina 509 LATEX consentedi fare semplici conti con numeri interi eo con le misure delle lunghezze

newcounter con la sintassi

newcounter〈nome〉[〈contatore dominante〉]

permette di definire un nuovo contatore per numeri interi chiamato 〈nome〉asservito e quindi azzerato quando il 〈contatore dominante〉 viene incre-mentato Il 〈nome〉 e il 〈contatore dominante〉 hanno lo stesso significatodescritto per i teoremi

setcounter con la sintassi

524 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

setcounter〈nome〉〈valore〉

inserisce la quantitagrave numerica 〈valore〉 nel contatore che ha quel 〈nome〉

addtocounter con la sintassi

addtocounter〈nome〉〈valore〉

aggiunge il 〈valore〉 specificato al contenuto del contatore 〈nome〉 Il〈valore〉 puograve anche essere negativo quindi di fatto LATEX esegue unasomma algebrica

value con la sintassi

value〈nome〉

recupera il contenuto del contatore 〈nome〉 per passarlo ad altri comandi oper rendere stampabile il numero contenuto dentro a quel contatore

stepcounter con la sintassi

stepcounter〈nome〉

incrementa il contatore 〈nome〉 di una unitagrave

refstepcounter con la sintassi

refstepcounter〈nome〉

oltre ad incrementare il contatore di una unitagrave lo rende accessibile alcomando label cosigrave che si possa fare riferimento ai valori del contatoremediante le chiavi usate da label e ref

Quando si definisce un nuovo contatore 〈nome〉 LATEX definisce anche il modo distamparlo attraverso il comando the〈nome〉 In altre parole se si definisce ilnuovo contatore pippo mediante il comando

newcounterpippo

viene contemporaneamente definito il comando thepippo in generale in modomolto semplice1

newcommandthepippoarabicpippo

Il compositore egrave libero di ridefinire il modo di scrivere il contatore specialmentese egrave asservito ad un altro contatore a titolo di esempio scriveragrave

newcounterpippo[pluto]renewcommandthepippoarabicplutoarabicpippo

1In realtagrave la definizione normalmente viene eseguita ricorrendo ai comandi primitivi chesono piugrave veloci da eseguire in quanto non hanno bisogno di essere interpretati

G8 NUMERI LUNGHEZZE E SPAZI 525

se vuole che il contatore pippo supponendo che valga 3 quando il contatorepluto vale 5 venga stampato nella forma 53

Vale la pena di segnalare che il comando primitivo the puograve precedere ilnome di qualunque registro interno dellrsquointerprete per trasformarne il contenutoin una stringa di caratteri che ne indica il contenuto Questo comando primitivonon egrave applicabile ai nomi dei contatori LATEX percheacute i loro nomi non individuanodirettamente il registro come invece succede con le lunghezze Quando si definisceun contatore LATEX viene associato un particolare registro numerico il primodisponibile ad una sequenza formata con il 〈nome〉 preceduto alla stringac Quindi il nome del contatore LATEX pippo serve per definire la sequenzacpippo che viene associata allrsquoindirizzo numerico del registro interno (di cui ilcompositore non deve preoccuparsi) Il comando the dovrebbe quindi precederela sequenza cpippo cosigrave

thecpippo

per produrne la stringa di cifre che ne indica il contenuto Data la presenza delsegno che normalmente non egrave una lettera anche se puograve essere usato comelettera allrsquointerno dei file di classe o di quelli delle estensioni questo modo diprocedere egrave fortemente sconsigliato tra lrsquoaltro egrave molto piugrave comodo e menoincline agli errori ricorrere ai comandi specifici come per esempio arabic perscrivere il contenuto dei contatori LATEX

G82 LunghezzeLe lunghezze esplicite quelle cioegrave che si esprimono con una misura e una unitagrave dimisura sono costituite da una sequenza di cifre decimali separate dal separatoredecimale che in teoria potrebbe anche essere la virgola siccome nella sintassiLATEX la virgola svolge anche altri ruoli egrave preferibile usare sempre e soltantoil punto decimale quando si esprimono le misure delle lunghezze Un numeroche contenga una parte intera nulla potrebbe cominciare con il punto decimaleomettendo lo zero che dovrebbe precederlo si sconsiglia questa abbreviazionedel tutto irrilevante ma che facilita gli errori Il numero puograve essere precedutodal segno positivo o negativo quello positivo egrave evidentemente facoltativo quellonegativo invece non lo egrave Se in seguito alla sostituzione di espressioni ed argomentinelle macro la misura risultasse preceduta da diversi segni il numero di segninegativi si comporta come ci si aspetterebbe nel senso che ognuno cambia segnoa quanto segue quindi un numero dispari di segni negativi porta ad un risultatocomplessivamente negativo mentre un numero pari porta ad un risultato positivo

Le lunghezze definite con i comandi LATEX sono sempre lunghezze elasticheanche se i loro allungamenti e accorciamenti sono nulli di fatto si comportanocome lunghezze rigide a meno che nella definizione non vengano specificati anchelrsquoallungamento eo lrsquoaccorciamento

Unitagrave di misura Le unitagrave di misura accettabili da LATEX sono le seguenti

cm centimetrimm millimetriin pollicipt punti tipografici (1 pt = (17227) in = 03515 mm)

526 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

pc pica (1 pc = 12 pt)bp punto PostScript o big point (1 bp = (172) in = 03528 mm)sp scaled point (la frazione 2minus16 di un punto tipografico)dd punto didot (1 dd=03760mm=1070 pt)cc cicero (1 cc=12 dd)ex x-height occhio del carattere corrente altezza della lettera lsquoxrsquoem em-width larghezza della lsquoMrsquo convenzionalmente circa uguale al corpo

del font corrente

fill egrave una lunghezza elastica (gomma) di lunghezza naturale nulla ma infini-tamente allungabile

stretch〈moltiplicatore〉 egrave una lunghezza elastica (gomma) di lunghezza na-turale nulla ma allungabile infinitamente quanto fill moltiplicata per〈moltiplicatore〉 questo egrave un numero decimale con segno facoltativo se ilsegno egrave negativo questa lunghezza diventa lsquoinfinitamentersquo accorciabile

newlength〈comando〉 definisce una nuova lunghezza identificata con〈comando〉 questo egrave il nome di un tipico comando LATEX formato dauna stringa letterale preceduta dal backslash oppure da un solo segno nonletterale preceduto dal backslash Si possono definire fino a 256 lunghez-ze in realtagrave il motore di composizione pdftex (sufficientemente recente)accetta la definizione di un numero molto maggiore di lunghezze ma percompatibilitagrave con il passato fino ad oggi (2010) non si egrave ancora visto nessunpacchetto di estensione di una certa importanza farne uso

setlength〈comando〉〈lunghezza〉 serve per assegnare la 〈lunghezza〉 espli-cita al registro-lunghezza identificato con 〈comando〉

addtolength〈comando〉〈lunghezza〉 serve per incrementare il valore di lunghez-za contenuto nel registro 〈comando〉 della quantitagrave 〈lunghezza〉 che puograveessere sia positiva sia negativa in questo caso si ha una sottrazione

settowidth settoheight e settodepth seguono la sintassi seguente

settowidth〈comando〉〈testo〉settoheight〈comando〉〈testo〉settodepth〈comando〉〈testo〉

Ognuna di queste istruzioni assegna al registro-lunghezza 〈comando〉 rispet-tivamente la larghezza lrsquoaltezza o la profonditagrave della stringa che costituisceil 〈testo〉

G83 Operazioni fra numeri e grandezzeLe recenti estensioni del programma pdftex includono tutte le estensioni del prece-dente etex una descrizione esaustiva egrave contenuta nel documento textmf-distrdocetexbaseetex_manpdf quello che ora ci interessa di piugrave egrave la sezione 35di quel documento intitolata ldquoExpressionsrdquo

G8 NUMERI LUNGHEZZE E SPAZI 527

Vediamo dunque che ora pdftex egrave in grado di calcolare alcune espressionimatematiche direttamente in memoria (nei registri della CPU del calcolatore chesi sta usando) Il risultato di queste espressioni egrave usabile in qualunque momentosia lecito usare un risultato numerico o dimensionale per esempio assegnandoload un registro o inserendolo in una espressione logica

Le espressioni dimensionali dimexpr e quelle numeriche numexpr possonovenire mescolate non egrave sempre obbligatorio terminare ogni espressione di ciascuntipo con relax ma egrave consigliabile Esistono espressioni anche per le lunghezzeelastiche e per le lunghezze matematiche glueexpr e muexpr si possono usarele parentesi tonde Lrsquoesempio che il testo propone egrave il seguente

ifdimdimexpr (2pt-5pt)numexpr 3-3135relax + 34pt2ltwd20

Vi compare una espressione mista dimensionale che contiene al suo internouna espressione numerica il comando relax serve per terminare lrsquoespressionenumerica quella dimensionale termina con il primo carattere non valido in unaespressione vale a dire che termina subito prima del segno di minore lt

Le operazioni valide allrsquointerno delle espressione sono i segni delle quattrooperazioni aritmetiche + - e

Le operazioni numeriche sono eseguite fra numeri interi (o con lrsquoindicazionedi contatori TEX oppure contatori LATEX passati come argomento di value)le divisioni quindi sono divisioni intere cioegrave forniscono solo la parte interadel quoziente che potremmo calcolare con una calcolatrice ordinaria (o anche amano)

Le operazioni dimensionali sono le stesse e sono del tutto equivalenti a quelleche potrebbero venire eseguite usando i comandi primitivi di pdftex vale a direadvance per la somma algebrica multiply per la moltiplicazione e divideper la divisione intera

Crsquoegrave perograve una novitagrave le operazioni di scalamento di una lunghezza sono intesecome il prodotto della lunghezza da scalare per il numeratore del fattore di scalacon il risultato diviso per il denominatore del fattore di scala numeratore edenominatore possono essere numeri interi (eventualmente contenuti in contatori)oppure altre due lunghezze non possono essere uno un numero e lrsquoaltro unalunghezza ma devono essere entrambi dello stesso tipo

Bene questa operazione di scalamento viene fatta mettendo il risultato dellaprima moltiplicazione in un registro della CPU a 64 bit il doppio di una normaleparola di 4 byte e il risultato della successiva divisione viene riportato ad unaparola di 32 bit cioegrave di 4 byte Nel fare questo si perdono dei bit nella partemeno significativa della misura della lunghezza e pdftex non esegue un semplicetroncamento ma esegue lrsquoarrotondamento al valore piugrave vicino

Vediamo un esempio se la giustezza textwidth dovesse venire divisa persei al fine di comporre a sei colonne bisogna togliere cinque volte lo spaziointercolonna e dividere il risultato per sei il tutto va poi assegnato alla lunghezzacolumnwidth scriveremo allora2

newlengthNumer newlengthDenomsetlengthNumer1pt setlengthDenom6ptcolumnwidth=dimexpr(textwidth -5columnsep)NumerDenomrelax

2Usando la sintassi di basso livello di pdftex

528 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

Si noti che moltiplicare per 1 pt e dividere per 6 pt non egrave la stessa cosa dimoltiplicare per 1 e dividere per 6 Nella codifica interna la lunghezza di 1 pt egravedata dal numero intero di scaled points corrispondenti appunto a 1 pt quindi daun numero binario formato da un 1 seguito da sedici zeri binari analogamenteil numero sei egrave rappresento da tre cifre binarie 110 seguite da sedici zeribinari la prima moltiplicazione pertanto sposta a sinistra di sedici posizioni ilnumero del risultato della prima sottoespressione poi viene diviso per sei e ilrisultato viene scalato a destra di sedici posizioni portando ad un suo eventualearrotondamento Moltiplicare semplicemente per uno e dividere semplicementeper sei non porta con seacute nessuno scalamento e nessun arrotondamento Infattieseguendo lrsquooperazione indicata sopra lrsquoespressione calcolata con dimexpr vale4916667 pt mentre quella calcolata con gli operatori primitivi vale 4916666 ptIn questo caso la differenza egrave trascurabile ma in altri casi potrebbe non esserlo

Si noti infine che le operazioni di scalamento vengono eseguite correttamentese si usano i registri lunghezza (o i registri numerici) piuttosto che le grandezzeesplicite

Vale la pena di indicare alcune particolaritagrave dei calcoli che pdftex esegue e deiregistri in cui salva certe quantitagrave egrave importante anche al fine di rendersi contodella delicatezza dei calcoli e dellrsquoeventualitagrave di eseguirne alcuni che portano oalla perdita di ogni informazione o allrsquooverflow

I registri interi cioegrave i contatori sono parole di 4 byte che contengono 32 bit ocifre binarie Un bit egrave riservato per il segno quindi restano 31 bit per rappresentarei numeri Ne segue che il massimo numero intero vale 231 minus 1 = 2 147 483 647chiaramente un numero sufficientemente grande da dubitare di poterlo superare

I registri per le lunghezze sono ugualmente dei registri interi dove vienememorizzato il numero di scaled points corrispondenti Si tratta di parole di4 byte che contengono 32 bit due di questi bit servono per il segno e peraltre informazioni specifiche relative alle lunghezze restano quindi 30 bit permemorizzare la grandezza espressa mediante un numero intero di scaled points ilcui valore assoluto massimo puograve quindi arrivare a 1 073 741 823 Siccome 216 spcorrispondono a 1 pt la massima lunghezza espressa in punti che puograve venirememorizzata vale 16 38399999 pt Questo valore tra lrsquoaltro viene memorizzatonel registro di lunghezza maxdimen nel caso il compositoreprogrammatorevolesse eseguire dei confronti o utilizzare questo numero speciale

Questa massima lunghezza corrisponde a poco piugrave di 5758mm quasi seimetri e sembra che anche questo valore in tipografia sia difficilmente raggiungi-bile Purtroppo non egrave vero Si pensi infatti ai calcoli che bisognerebbe fare perdeterminare una lunghezza che sia in proporzione con unrsquoaltra lunghezza con lostesso rapporto di altre due lunghezze

l1l2

= L1

L2cioegrave l1 = l2

L1

L2

Per fare un esempio pratico si supponga di avere a disposizione una cartadi formato non standard con base L2 e altezza L1 da specificare nel preamboloassegnandone i valori ai registri di lunghezza paperwidth e paperheight inbase al font usato si determina che la leggibilitagrave egrave ottimale se la base della grigliainterna textwidth vale l2 quanto deve valere textheight affincheacute il testo siainscritto in un rettangolo simile al rettangolo della carta

Con le espressioni di dimensione che abbiamo appena visto possiamo deter-minare

G8 NUMERI LUNGHEZZE E SPAZI 529

textheight=dimexpr textwidth paperheight paperwidth relax

e pdftex ci esegue i calcoli senza problemi grazie ai risultati interni conservati unun registro di due parole cioegrave di 64 bit

Cosa sarebbe successo se avessimo usato i comandi primitivi multiply edivide Per rendercene conto egrave meglio fare un esempio numerico Supponiamoche la carta abbia le dimensioni di 220mm per 280mm (il vecchio formatoitaliano quadrotto simile al formato letter americano ma che in Italia non egrave piugravefacilmente reperibile per non dire che egrave irreperibile) Il calcolo della giustezzasulla base dei font che andiamo ad usare ci dice che questa dovrebbe valere170mm Eseguendo i calcoli con una calcolatrice tascabile (a virgola mobile)avremmo3

x = l2 middot L1 = 170times 280 = 47600 5758l1 = xL2 = 47600220 = 216364

Come si vede il risultato finale egrave perfettamente accettabile ma la moltiplica-zione intermedia eccede le possibilitagrave dei registri interni di pdftex e quindi si haun overflow

Ah se egrave cosigrave allora eseguiamo prima la divisione e poi la moltiplicazione

y = l2L2 = 170220 = 0l1 = y middot L1 = 0times 280 = 0

ma in questo modo la divisione intera di un numero per un numero piugrave grandeci dagrave la parte intera del quoziente che vale evidentemente zero e perdiamo ogniinformazione

Ecco quindi dove nasce lrsquoenorme comoditagrave dellrsquooperazione di scalamentoeseguita da pdftex in un registro interno a 64 bit Questo genere di cose possonoperograve succedere anche con pdftex quando si esegue la divisione finale se il divisoreegrave troppo piccolo In questo caso pdftex non puograve fare a meno di emettere unmessaggio di errore ma si puograve proseguire con le dita incrociate i calcoli sarannosbagliati quindi andragrave corretto lrsquoerrore prima di ottenere risultati ragionevolima lo si potragrave fare senza perdere tutte le informazioni accessorie che pdftex egrave ingrado di raccogliere o di generare durante la sua esecuzione

Inconvenienti di questo genere possono succedere piugrave sovente di quanto siimmagini quindi egrave opportuno fare sempre una analisi preventiva dei calcoli daeseguire almeno come ordini di grandezza per non ritrovarsi senza la possibilitagravedi lasciare fare i conti a pdftex al fine di creare macro capaci di funzionare conqualunque insieme di valori degli argomenti

G84 Il pacchetto ifthenIl pacchetto ifthen permette di accedere ai comandi primitivi di controllo delflusso delle informazioni di cui TEX egrave capace I comandi messi a disposizione daquesto pacchetto sono i seguenti

3Non si badi al fatto che le indicazioni contengano solo le misure e non le unitagrave di misura Egravevoluto per due motivi (a) lrsquoelaboratore usa solamente numeri e (b) qui non si vuole annoiareil lettore con lunghe scritture di sequenze di bit o di cifre esadecimali od ottali il concettoegrave quello di mostrare come si svolgono i conti anche se qui usiamo le misure dei millimetrinon dimentichiamoci che i contatori numerici non possono contenere un numero equivalente dimillimetri superiore a poco piugrave di 5758

530 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

ifthenelse con la sintassi

ifthenelse〈test〉〈esegui quando egrave vero〉〈esegui quando egrave falso〉

esegue il 〈test〉 e se questo 〈test〉 restituisce il valore lsquoverorsquo allora vengonopassati al flusso di informazioni da elaborare i token che formano il conte-nuto del primo argomento dopo il test 〈esegui quando egrave vero〉 Altrimentivengono eseguiti i token che formano il testo di 〈esegui quando egrave falso〉I 〈test〉 che si possono eseguire sono i seguenti

confronto numerico con la sintassi

〈numero1〉 operatore 〈numero2〉

dove operatore egrave uguale a gt oppure = oppure lt i numeri 〈numeroi〉possono essere i contenuti di due contatori o di un contatore e di unaquantitagrave esplicita Per i contatori LATEX bisogna specificarne il valoreattraverso la macro value

equal con la sintassi

equal〈stringa1〉〈stringa2〉

confronta due stringhe e se sono assolutamente identiche il test egrave veroaltrimenti egrave falso

lengthtest con la sintassi

lengthtest〈lungh1 operatore lungh2〉

confronta due lunghezze (generalmente almeno una delle due egrave conte-nuta in un registro-lunghezza) e restituisce il valore lsquoverorsquo se le duelunghezza stanno nella relazione implicata dallrsquooperatore Questopuograve essere un solo segno matematico fra = gt oppure lt

isodd con la sintassi

isodd〈numero〉

controlla se un numero (generalmente contenuto in un contatore) siadispari

isundefined con la sintassi

isundefined〈comando 〉

restituisce il valore vero se 〈comando 〉 non egrave mai stato definitoboolean controlla lo stato di una variabile booleana la sintassi per gestire

queste variabili egrave la seguente

newboolean〈variabile booleana〉provideboolean〈variabile booleana〉setboolean〈variabile booleana〉〈stato〉boolean〈variabile booleana〉

G8 NUMERI LUNGHEZZE E SPAZI 531

dove 〈stato〉 egrave una delle due parole true (vero) oppure false (falso)In realtagrave boolean egrave in grado di verificare lo stato anche delle variabilibooleane interne a LATEX e anche di quelle definite con i comandielementari di TEX o di Plain TEX Con questrsquoultimo si definisce unnuovo comando logico con newif il quale accetta come argomentoil comando per disteso e contemporaneamente definisce due altricomandi per impostare le corrispondenti variabili booleane In praticase si volesse definire una nuova variabile booleana lsquotestrsquo con ilpacchetto ifthen si dovrebbero usare i comandinewbooleantestsetbooleantesttrueifthenelsebooleantesttextbfPippotextitPluto

Se invece si usassero i comandi di Plain TEX (accessibili anche quandosi usa LATEX) si dovrebbe scriverenewififtesttesttrueiftesttextbfPippoelsetextitPlutofi

Si egrave fatto questo esempio non tanto per invitare ad usare i coman-di elementari di Plain TEX quanto per permettere di capire comefunzionano i test elementari che si trovano scritti a piene mani neicomandi definiti nei file di formato di classe e di estensioneIl comando provideboolean esegue la stessa definizione che eseguenewboolean ma omettendo ogni definizione se la 〈variabile booleana〉esiste giagrave

and or e not permettono di mettere insieme diverse frasi logiche da col-legare fra di loro mediante questi operatori lrsquointera frase comprendentegli operatori deve essere racchiusa fra ( e )

whiledo consente di descrivere e realizzare un ciclo lsquowhilersquo la sintassi egrave

whiledo〈test〉〈ciclo〉

Questo comando ripete il 〈ciclo〉 fino a quando il 〈test〉 inizialmente verodiventa falso Va da seacute che prima di iniziare la ripetizione di 〈ciclo〉 glielementi da cui dipende 〈test〉 devono essere inizializzati in modo taleche 〈test〉 sia vero Il 〈ciclo〉 deve contenere delle istruzioni o dei comandiche prima o poi rendano il 〈test〉 falso altrimenti LATEX entra in un cicloinfinito e non ne esce piugrave

A titolo di esempio dellrsquouso di ifthenelse il comando cleardoublepageegrave definito nel nucleo di LATEX mediante la sintassi di basso livello TEX

defcleardoublepageclearpageiftwoside ifoddcpageelsehboxnewpageiftwocolumnhboxnewpagefififi

Usando il pacchetto ifthen questa definizione potrebbe essere tradotta in

532 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

newcommandcleardoublepageclearpage

ifthenelse(booleantwosideandnotisoddvaluepage)mboxnewpageifthenelsebooleantwocolumnmboxnewpage

La scrittura egrave un poco piugrave complessa ma si vedono meglio gli effetti e la naturadei test il primo controlla se stiamo componendo fronte e retro e se siamo su unapagina pari egrave chiaro che se non stiamo componendo fronte e retro saltare unapagina per ricominciare da una pagina dispari una pagina di destra non ha moltosenso inoltre egrave chiaro che se la pagina egrave dispari non bisogna fare nulla Infinecontrolla se si sta componendo su due colonne in questo caso esegue comunqueun newpage che a due colonne vuol dire di saltare una colonna e ricominciarea comporre nella colonna successiva4 Lrsquoincolonnamento dei contenuti delle varieclausole e delle relative parentesi graffe permette di seguire meglio i successivipassi

G9 SpaziatureGli spazi orizzontali e verticali possono venire inseriti a mano con i seguenticomandi

hspace〈lunghezza〉hspace〈lunghezza〉vspace〈lunghezza〉vspace〈lunghezza〉

I comandi con asterisco impediscono che gli spazi siano eliminati alla fine oallrsquoinizio di una riga o allrsquoinizio o alla fine di una pagina come invece avvienecon gli spazi lsquosemplicirsquo Questa possibilitagrave di essere eliminati egrave essenziale per labuona composizione di una pagina e delle sue righe ma puograve non essere quello chesi desidera quando si compone dentro ad una scatola oppure quando si eseguonocomposizioni speciali si pensi per esempio ad un frontespizio dove non si vuoleinserire il primo elemento scritto allrsquoinizio della gabbia ma lo si desidera spostarein basso per lrsquoequilibrio della pagina

Molto comodi risultano i comandi abbreviati

bigskipmedskipsmallskip

che equivalgono rispettivamente a

vspacebigskipamount vspacemedskipamountvspacesmallskipamount

4Il secondo ifthenelse puograve essere omesso se il comando precedente invece di newpagefosse nuovamente clearpage

G10 FIGURE TABELLE ED ALTRI OGGETTI FLOTTANTI 533

Le lunghezze indicate con i tre comandi skipamount sono definiti nei file diclasse ma generalmente essi hanno i valori di 12 pt 6 pt e 3 pt

Il comando

addvspace〈lunghezza〉

aggiunge spazio verticale tenendo conto di eventuale spazio verticale giagrave inseritoimplicitamente da comandi precedenti cosigrave che alla fine lo spazio complessivoaggiunto ammonti esattamente alla 〈lunghezza〉 specificata

I comandi hfill e vfill equivalgono rispettivamente a hspacefille vspacefill

G10 Figure tabelle ed altri oggetti flottantiI comandi per rendere flottanti le figure e le tabelle sono descritti nei prossimiparagrafi

G101 Figure e tabelle

beginfigure[〈posizione〉] 〈figura〉 endfigurebeginfigure[〈posizione〉] 〈figura〉 endfigurebegintable[〈posizione〉] 〈tabella〉 endtablebegintable[〈posizione〉] 〈tabella〉 endtable

I comandi senza asterisco vanno bene sia componendo ad una colonna siacomponendo a due colonne I comandi con lrsquoasterisco inseriscono lrsquooggetto alarghezza piena in testa ad una pagina composta a due colonne per altrocomponendo ad una colonna si puograve usare indifferentemente la versione con oquella senza asterisco

Le posizioni possibili sono

t in testa alla paginab al piede della paginah lsquoquirsquo se possibile p in una pagina di soli oggetti flottanti

Con tutte le classi standard se lrsquoargomento facoltativo 〈posizione〉 non egrave specifi-cato le posizioni di default sono tbp

La lista delle posizioni in realtagrave accetta anche che invita LATEX a lsquomettercelatuttarsquo per collocare lrsquooggetto nel posto piugrave vicino a dove egrave stato definito

LATEX puograve mettere un filetto sotto a una figura in testa alla pagina oppuresopra una figura in calce alla pagina puograve mettere anche un filetto sotto ad unafigura a piena pagina in testa ad una pagina composta a due colonne I comandiper mettere questi filetti sono topfigrule botfigrule e dblfigrule didefault questi tre comandi sono equivalenti a relax quindi non fanno nienteOgni classe oppure ogni compositore li puograve ridefinire in modo che mettanoqualcosa generalmente un filetto ma potrebbe essere una qualunque decorazionenella posizione a cui si riferiscono ma questo qualcosa deve avere altezza nullaallo stesso modo del filetto che separa le note in calce dal testo sovrastante Ladefinizione di questo filetto footnoterule egrave la seguente

534 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

deffootnoterulekern-3p hrule width 2in kern 26p

e basta definire i comandi di questi filetti cambiando il nome footnoterulecon topfigrule o botfigrule o dblfigrule per esempio

deftopfigrulekern26p hrule width 2in kern 3pdefbotfigrulekern-3p hrule width 2in kern 26pdefdblfigrulekern-26p hrule width 2in kern 3p

Si noti lrsquoespediente per fare sembrare il filetto di altezza nulla si arretra di 3ptsi mette un filetto spesso 04pt e si avanza di 26pt complessivamente non si egraveavanzato in verticale di nessuno spazio gli spostamenti in avanti o allrsquoindietro di26pt e di 3pt sono messi strategicamente in modo che lo spostamento positivosepari il filetto da ciograve che esso segue o precede

LATEX durante la costruzione della pagina di uscita segue dei criteri diottimalitagrave per collocare gli oggetti flottanti che eventualmente sono accodati peressere emessi appena possibile Questi criteri implicano il rispetto di certe frazioniminime o massime di spazio dedicato a questa o quella parte del documentononcheacute al numero massimo di oggetti che possono essere collocati in una paginaLe regole che LATEX segue sono descritte qui di seguito ma egrave chiaro che se sivuole che LATEX faccia diversamente da come egrave stato programmato bisognacomprendere appieno queste regole e bisogna capire come funzionano i parametrimassimi o minimi che vi presiedono

1 LATEX colloca un oggetto flottante nel primo posto che non viola le regoleseguenti salvo che se egrave specificato il codice h questo ha la precedenza sulcodice t

2 LATEX non collocheragrave mai un oggetto flottante in una pagina che viene primadi quella dove compare il testo del file sorgente che attornia lrsquoambiente diflottaggio

3 LATEX colloca le figure in ordine e lo stesso fa con le tabelle per cui nonpuograve succedere che la figura 22 appaia prima della figura 21Va notato perograve che quando si compone a due colonne (senza usare ilpacchetto multicol5 ma usando la specifica LATEX twocolumns) possonoformarsi pagine che hanno figure o tabelle a giustezza piena contempo-raneamente a una o piugrave figure o tabelle con la giustezza di una colonnaIn questi casi visto che gli oggetti a piena giustezza vengono collocatesolo in testa mentre gli oggetti con la giustezza di una colonna possonoessere collocati sia in testa alla colonna sia in calce sia in una posizionequalsiasi consentita dai parametri di posizione puograve succedere che lrsquooggettoin testa abbia un numero successivo a quello di un oggetto in colonnaPer ovviare a questo inconveniente egrave necessario usare un piccolo pacchettodi correzioni del nucleo di LATEX fixltx2e che esegue alcune modifichealla routine di emissione della pagina composta onde evitare questa epoche altre apparenti incongruenze presenti nel nucleo standard La do-cumentazione di questo pacchetto si trova in doclatexbase malrsquoutente generalmente deve usare questo pacchetto solo se compone a duecolonne e se ha numerose figure o tabelle di varie dimensioni orizzontali

5Questo pacchetto non consente di mettere figure allrsquointerno delle colonne

G10 FIGURE TABELLE ED ALTRI OGGETTI FLOTTANTI 535

altrimenti questi difettucci non si manifestano quando si compone ad unasola colonna

4 LATEX colloca gli oggetti flottanti solamente nelle posizioni specificatenellrsquoargomento facoltativo 〈posizione〉 o in mancanza di questo in unadelle tre posizioni di default tbp

5 LATEX non collocheragrave mai un oggetto flottante in una pagina che noncontiene abbastanza spazio quindi non produrragrave mai una lsquoOverfull vboxrsquoa causa degli oggetti flottanti Bersquo a meno che un oggetto flottante diper seacute non sia cosigrave grande da eccedere lo spazio disponibile a questoil compositore deve provvedere preventivamente mediante le opportuneoperazioni di scalamento e gli altri artifici descritti negli appositi capitolirelativi a figure e tabelle

6 I vincoli imposti dai parametri stilistici tipici di ogni classe non vengonomai violati quando viene specificato vengono rilassati i vincoli impo-sti dai parametri che contengono sia testo sia oggetti flottanti mentreLATEX continua a rispettare i vincoli imposti alle pagine che contengonosolamente oggetti flottanti Per queste pagine di soli oggetti flottanti leregole vengono ignorate quando si emettono i comandi clearpage oppurecleardoublepage e ovviamente quando si incontra enddocumentpercheacute questi comandi e la specifica che il documento egrave terminato ordinanoa LATEX di svuotare le code di tutto ciograve che si trova ancora in memoria

Quando si specifica la 〈posizione〉 bisogna dare abbastanza possibilitagrave a LATEXdi fare il suo mestiere altrimenti lrsquooggetto che non ha altre possibilitagrave che una solablocca le code fino alla fine del documento o alla prima esecuzione di clearpageo cleardoublepage questi comandi vengono emessi automaticamente quandosi inizia un nuovo capitolo ma a parte che egrave brutto vedere tutte o quasi lefigure di un capitolo accumulate alla sua fine bisogna ricordare che la memoriadi LATEX egrave programmata per memorizzare solamente 18 oggetti flottanti sedovessero accodarsene di piugrave quelli in eccesso verrebbero persi e verrebbe emessoun messaggio che avvisa del fatto ma egrave una magra consolazione Si esamini peraltro la possibilitagrave di usare il pacchetto morefloats

I comandi che si possono usare dentro agli ambienti di flottaggio tipicamentesonocaption con la sintassi

caption[〈didascalia breve〉]〈didascalia〉

dove se non si specifica la 〈didascalia breve〉 questa viene automaticamenteresa identica alla didascalia lsquolungarsquo potrebbe non essere una buona ideaquella di inviare alla lista delle figure o delle tabelle lrsquointera didascaliaspecialmente se questa contiene uno o piugrave periodi dopo il primo che svolgeil compito di titolo mentre i periodi successivi svolgono il compito difornire maggiori delucidazioni sullrsquooggetto specifico

label puograve essere usato anzi egrave conveniente che sia usato per ogni figura e perogni tabella il comando deve essere collocato dopo il comando captionpercheacute fincheacute questo non viene eseguito allrsquooggetto flottante non egrave ancorastato assegnato un numero

536 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

suppressfloats con la sintassi

suppressfloats[〈posizione〉]

puograve essere collocato fuori degli ambienti di flottaggio al fine di evitareche LATEX metta altri oggetti nella stessa 〈posizione〉 specificata comeargomento facoltativo se non si specifica nulla tutti gli oggetti flottantisono esclusi dalla pagina corrente Se perograve nella 〈posizione〉 del comando diapertura degli ambienti figure o table compare allora suppressfloatsviene ignorato

I parametri dimensionali e numerici che regolano il deflusso degli oggettiflottanti dalle rispettive code sono i seguenti

topnumber egrave il nome del contatore che contiene il numero massimo di oggettiflottanti che possono essere collocati in testa alla pagina

topfraction egrave la massima frazione di pagina destinata agli oggetti flottantiin testa ad una pagina se questa contiene anche del testo

bottomnumber egrave il contatore che contiene il numero massimo di oggetti flottantiin calce alla pagina

bottomfraction egrave la massima frazione di pagina destinata agli oggetti flottantiin calce ad una pagina se questa contiene anche del testo

totalnumber egrave il contatore che contiene il massimo numero di oggetti flottantiche possono comparire in una pagina di testo indipendentemente dal fattoche che siano in testa o in calce o in mezzo al testo

textfraction per una pagina che contenga anche del testo egrave la frazioneminima della pagina destinata al testo

floatpagefraction in una pagina di soli oggetti flottanti rappresenta la mi-nima frazione di pagina che deve essere occupata da questi oggetti se cioegravesi specifica il parametro di posizione p per un oggetto flottante e questoegrave troppo piccolo esso viene trattenuto in memoria fincheacute non si trovaun altro oggetto flottante dello stesso genere e con lo stesso attributo diposizione che assieme possano superare questo valore minimo specificato

dbltopnumber il nome del contatore che contiene il numero massimo di oggettiflottanti a piena pagina da mettere in testa ad una pagina con il testocomposto su due colonne

dbltopfraction la massima frazione di pagina a giustezza piena da destinareagli oggetti flottanti in testa alla pagina quando si compone a due colonne

dblfloatpagefraction egrave la minima frazione di pagina da occupare con oggettiflottanti a giustezza piena quando si compone una pagina di soli oggettiflottanti in un testo composto a due colonne Egrave insomma lrsquoanalogo difloatpagefraction che invece vale quando si compone il testo ad unasola colonna

G10 FIGURE TABELLE ED ALTRI OGGETTI FLOTTANTI 537

Numeri Frazionitopnumber 2 topfraction 07bottomnumber 1 bottomfraction 03totalnumber 3 textfraction 02dbltopnumber 2 floatpagefraction 05

dbltopfraction 07dblfloatpagefraction 05

Separatorifloatsep 12pt plus 2pt minus 2pttextfloatsep 20pt plus 2pt minus 4ptintextsep 12pt plus 2pt minus 2ptdblfloatsep 12pt plus 2pt minus 2ptdbltextfloatsep 20pt plus 2pt minus 4pt

Tabella G3 Parametri nella classe book composta in corpo 10 per gestire glioggetti flottanti

floatsep egrave la distanza minima da riempire con un contrografismo incolore fradue oggetti flottanti consecutivi

textfloatsep egrave la distanza minima da interporre fra gli oggetti flottanti intesta o in calce e il testo adiacente

intextsep egrave la distanza minima fra un oggetto flottante a centro pagina e iltesto che lo precede e il testo che lo segue

dblfloatsep egrave la distanza minima fra due oggetti flottanti consecutivi in testaad una pagina composta a due colonne

dbltextfloatsep egrave la distanza minima posta fra gli oggetti flottanti in testaad una pagina composta a due colonne e il testo sottostante

I contatori si impostano con i comandi specifici in particolare setcounter lefrazioni fraction sono valori decimali in generale fratti e minori dellrsquounitagraveche vengono conservati dentro le macro con i rispettivi nomi e quindi tuttisi reimpostano per modificare i valori di default mediante renewcommand Iseparatori sep sono lunghezze e si impostano con il comando setlengthOgni classe definisce i suoi particolari valori per questi parametri per la classebook composta in corpo 10 (come questo testo) i parametri sono riportati nellatabella G3

Va detto che i lsquoNumerirsquo e le lsquoFrazionirsquo indicati nelle tabelle G3 non devo-no necessariamente essere coerenti sembra strano ma egrave comprensibile Per ilsquoNumerirsquo per esempio totalnumber sembra essere la somma di topnumber ebottomnumber se perograve totalnumber fosse posto al valore 2 questo vorrebbedire che al massimo ci possono essere 2 oggetti flottanti in testa e uno in calcema in ogni caso non possono essere tutti e tre presenti percheacute nella pagina ce nepossono essere al massimo due Lo stesso vale per le frazioni esse rappresentanodei limiti per delle disuguaglianze questi limiti non debbono necessariamenteavere per somma lrsquounitagrave lrsquoimportante egrave che queste disuguaglianze siano tutte

538 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

rispettate nellrsquoordine di preferenza che LATEX assegna alla collocazione deglioggetti flottanti

Il compositore si ricordi specialmente per quel che riguarda le frazioni chenel computo dellrsquoingombro dellrsquooggetto flottante bisogna tenere conto anchedello spazio destinato alla didascalia e del suo spazio di separazione Spesso ilcompositore egrave deluso dalla rigidezza con cui LATEX gestisce gli oggetti flottantiin realtagrave LATEX come tutti i programmi si comporta come gli egrave stato prescrittoin particolare in questo caso come richiesto dai lsquoNumerirsquo dalle lsquoFrazionirsquo e dailsquoSeparatorirsquo che compaiono nella tabella G3 Se non piacciono quei valori li sipuograve cambiare ma il compositore stia attento che la cura non sia peggio del malePiuttosto egli dedichi la sua attenzione al dimensionamento degli oggetti flottantiallrsquoeliminazione di spazi inutili al loro contorno allrsquoeliminazione delle parti inutilidelle fotografie che si trovano spessissimo ai margini laterali o verticali insommausi appropriatamente le possibilitagrave offerte dalle opzioni di includegraphicspercheacute egrave con quelle che si curano davvero sia il deflusso degli oggetti flottantidalle rispettive code sia la qualitagrave del documento prodotto

G102 Note marginaliI comandi che portano alla composizione e alla collocazione delle note marginalisono i seguenti

marginpar[〈nota di sinistra del testo〉]〈nota di destra del testo〉reversemarginparnormalmarginpar

La posizione normale delle note quando si compone ad una colonna egrave il margineesterno quando si compone a due colonne egrave il margine adiacente alla colonna allaquale la nota si riferisce quindi il margine di sinistra per la colonna di sinistra eil margine di destra per la colonna di destra e questo avviene indipendentementedal fatto che ci si trovi in una pagina di sinistra o di destra reversemarginparscambia i margini per le note composte ai margini di testi composti ad una solacolonna e normalmarginpar ripristina la collocazione di default Questi duecomandi sono inattivi quando si compone a due colonne

Per il testo delle note che dovrebbero apparire a sinistra del testo a cui siriferiscono potrebbe essere applicata la dichiarazione raggedleft per avere unacomposizione in bandiera giustificata a destra Tuttavia questo egrave consigliabilesolo quando le annotazioni marginali sono sempre molto brevi in modo da nonsuperare una riga Cambiare giustificazione da nota a nota sarebbe una cadutadi uniformitagrave e di stile Drsquoaltra parte le note di piugrave righe giustificate solo a destrasono leggermente piugrave laboriose da leggere rispetto alle note giustificate solo asinistra il compositore ci pensi bene prima di decidere come comporre le noteeventualmente si crei una macro che componga sempre entrambi i testi di sinistrae di destra uniformemente con lo stesso stile in modo da non dover operare amano cosigrave da evitare i possibili errori di disomogeneitagrave

I parametri che governano la collocazione delle note a parte il marginelsquonormalersquo o lsquoscambiatorsquo sono

marginparwidth egrave la giustezza delle note marginali e deve essere evidentementeminore della larghezza del margine fisico a lato del testo

G11 INCOLONNAMENTI 539

marginparsep egrave lo spazio di separazione fra il testo e il blocchetto della notamarginale

marginparpush egrave lo spazio con cui una nota marginale viene spostata in bassorispetto alla fine della nota marginale precedente talvolta questo obbliga aportare la nota nella pagina successiva ma viene emesso un avvertimentosullo schermo e nel file log Per riparare queste situazioni non tantodesiderabili bisogna necessariamente riformulare il testo principale a cuila nota in questione si riferisce oppure bisogna accorciare il testo dellanota precedente

Un avvertimentoLATEX tratta le note marginali alla stessa stregua degli oggettiflottanti questo vuol dire che usa le stesse scatole per conservare in memoria glioggetti flottanti siccome le scatole a disposizione sono solo 18 lrsquouso di frequentinote marginali e di molte figure eo tabelle aumenta il rischio di esaurire lamemoria a disposizione e di perdere degli oggetti flottanti

Si puograve fare uso del pacchetto morefloats che raddoppia il numero di oggettiflottanti in coda permette di arrivare fino a 36 Il motivo per il quale esso arrivasolo fino a una coda di 36 oggetti flottanti egrave per evitare di esaurire la mainmemory del programma di composizione Tuttavia va osservato che il pacchettofu scritto nel 1990 quindi quando la memoria a disposizione dei vari main framee dei PC personali era veramente piccola Il sistema TEX che sto usando disponedi una memoria di 3 000 000 parole di 4 byte per svolgere il suo lavoro ma neusa solamente la settima parte come si puograve leggere alla fine del file log

G11 IncolonnamentiG111 Lrsquoambiente tabbingNel testo non se ne egrave nemmeno parlato percheacute si ritiene che questo ambiente siauna reminiscenza degli incolonnamenti eseguiti in dattilografia quando TEX78nacque le macchine da scrivere meccaniche ed elettriche erano ancora diffusissimee le tabulazioni eseguite con il tasto di tabulazione noncheacute con gli arresti ditabulazione erano familiari a tutti Tuttavia lrsquoambiente tabbing nato forseproprio per affidarsi a qualcosa di noto a qualunque dattilografo presenta deinotevoli inconvenienti primo fra i quali quello di essere un ambiente fragile eche non puograve essere annidato dentro altri ambienti

La sintassi egrave quella comune a qualunque ambiente

begintabbing 〈testo da tabulare〉 endtabbing

I comandi per gestire gli arresti di tabulazione sono i seguenti

= serve per impostare un arresto di tabulazione spesso conviene scrivere unariga modello da non comporre se si ricorre al comando seguente

kill non compone la riga che precede questa parola chiave ma conservale informazioni di impostazione degli arresti di tabulazione che la rigaconteneva

gt serve per spostare la composizione al successivo arresto di tabulazione

540 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

comincia una nuova riga riportando il contatore degli arresti di tabulazioneal valore iniziale generalmente zero

+ incrementa di una unitagrave il valore iniziale del contatore di tabulazione cosigrave cheda questo momento in poi e fino ad ordine contrario tutte le righe risultanorientrate e incolonnate sotto un arresto presente nella riga precedente

- decrementa di una unitagrave il valore iniziale del contatore di tabulazionecontrasta lrsquoeffetto di +

lt torna indietro di un arresto di tabulazione e puograve essere usato solamenteallrsquoinizio di una riga

rsquo serve per spostare tutto il contenuto di una lsquocolonnarsquo a filo del margine destrodel suo campo di tabulazione

lsquo serve per comporre il contenuto della sua colonna a filo del margine sinistrodel suo arresto di tabulazione

pushtabs manda in memoria le posizioni degli attuali arresti di tabulazioneconsentendo di impostarne di diversi

poptabs serve per richiamare dalla memoria un insieme di arresti di tabulazioneprecedentemente memorizzati

a= arsquo e alsquo agiscono come = rsquo e lsquo per comporre gli accenti macron (lungo)acuto e grave rispettivamente percheacute questi comandi come si vede soprasono stati ridefiniti allrsquointerno dellrsquoambiente per svolgere funzioni diverseIl compositore che usa il pacchetto inputenc non se ne preoccupi e continuiad usare tranquillamente le lettere accentate della sua tastiera percheacutequel pacchetto provvede alla compatibilitagrave senza che il compositore debbapreoccuparsene piugrave di tanto Il compositore deve purtroppo occuparsene see solo se la sua tastiera egrave priva di segni accentati e se il suo shell editor nonconsente di usare combinazioni di tasti per inserire direttamente nel filetex i segni accentati oppure infine se ha impostato il suo shell editor inmodo che salvi i file in modo tale che contengano solo caratteri ASCII a7 bit cosigrave da assicurare la massima portabilitagrave lsquocross-platformrsquo

G112 Gli ambienti array e tabularLe sintassi sono

beginarray[〈posizione〉]〈colonne〉 〈righe〉 endarraybegintabular[〈posizione〉]〈colonne〉 〈righe〉 endtabularbegintabular〈larghezza〉[〈posizione〉]〈colonne〉 〈righe〉 endtabular

La 〈posizione〉 serve per stabilire lrsquoallineamento della tabella o della matrice conil lsquotestorsquo circostante la 〈larghezza〉 serve per imporre una larghezza specificataalla tabella I descrittori delle 〈colonne〉 sono certi codici che ora si rivedranno le〈righe〉 sono i contenuti delle celle orizzontali contenenti il testo o la matematicada comporre array si usa solo in ambiente matematico gli ambienti tabular etabular solo in modo testo sia gli uni sia gli altri ambienti possono conteneresingole celle contenenti lsquotestorsquo dellrsquoaltra specie ma bisogna specificarlo per

G11 INCOLONNAMENTI 541

ciascuna di queste celle in ambiente tabular basta usare gli appositi comandi perpassare alla matematica in ambiente array si possono usare i segni di dollaroche agiscono da interruttorideviatori se si egrave giagrave in modo matematico (comeavviene per ogni cella di un array) il primo segno di dollaro passa in modo testoe il secondo riporta al modo matematico

I codici di posizione sono

t serve per allineare la riga di testa con il testo circostante

b serve per allineare la riga di base con quella del testo circostante

c non necessita di essere espresso percheacute lrsquoallineamento centrato egrave quello didefault

I descrittori delle 〈colonne〉 e i loro separatori sono i seguenti

l colonna con i contenuti allineati a sinistra

c colonna con i contenuti centrati

r colona con i contenuti allineati a destra

| filetto verticale di separazione fra colonne adiacenti

vline lo stesso filetto quando deve essere inserito in una -espressione

〈testo〉 -espressione si tratta di un particolare costrutto con il quale sispecifica che 〈testo〉 sostituisce completamente il separatore ordinario fradue colonne adiacenti Questo significa che se i contenuti delle due celleadiacenti devono essere in qualche modo distanziati allora gli spaziatoridevono essere inseriti dentro la -espressione Un elemento importante delle-espressioni sono le dichiarazioni di spaziatura con elasticitagrave lsquoinfinitarsquo dausare con lrsquoambiente tabular per consentire che queste particolari tabellesi possano estendere fino a raggiungere la larghezza specificata

extracolsep〈larghezza〉 specificato dentro una -espressione serve a dichia-rare che lo spaziatore con la 〈larghezza〉 esplicitata venga inserito a sinistradel contenuto di tutte le celle che seguiranno sulla stessa riga quindi nondi questa e di tutte le celle che seguiranno ma solo di quelle che seguirannoTipicamente questo comando viene inserito nella prima -espressione checompare a sinistra della prima cella di una riga quindi questa cella nonverragrave mai allargata per raggiungere la giustezza desiderata

fill egrave una larghezza naturalmente nulla ma dotata di allungamento infinitotipicamente usata come argomento di extracolsep

p〈larghezza〉 serve per descrivere una colonna composta come un (breve)capoverso la cui prima riga egrave allineata con quella delle celle adiacenti eavente una giustezza pari a 〈larghezza〉 Il testo delle colonne composte conquesto descrittore non puograve contenere direttamente il comando percheacuteLATEX non potrebbe sapere se esso si riferisce alla cella o allrsquointera riga dicelle Perciograve egrave necessario racchiudere questo comando dentro un ambientecome minipage o un altro tabular oppure dentro una scatola parboxesplicita oppure dentro il raggio di azione di comandi come centering

542 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

raggedright oppure raggedleft purcheacute a loro volta siano contenutidentro un gruppo delimitato da parentesi graffe oppure siano contenutiallrsquointerno di altri ambienti

〈numero〉〈descrittori〉 egrave una forma abbreviata per ripetere 〈numero〉 voltele stessa sequenza di 〈descrittori〉 delle colonne Una -espressione nepuograve contenere unrsquoaltra si consiglia di non eccedere con queste formestenografiche innestate lrsquouna nellrsquoaltra altrimenti dopo un porsquo non si capiscepiugrave che cosa si sia specificato Piuttosto egrave meglio rifarsi alle possibilitagraveofferte dal pacchetto array e dal comando newcolumntype

I comandi che si possono usare dentro gli ambienti di incolonnamento sono iseguenti

multicolumn con la sintassi

multicolumn〈numero〉〈descrittore〉〈cella〉

serve per comporre unrsquounica 〈cella〉 con il 〈descrittore〉 specificato cheoccupi 〈numero〉 celle adiacenti Il 〈descrittore〉 oltre alla collocazione conuna delle varie lettere chiave (compresa la p) puograve contenere filetti verti-cali e persino -espressioni Normalmente il contenuto di multicolumnrimpiazza completamente tutte le 〈numero〉 celle adiacenti compresi i loroseparatori destri quindi il separatore sinistro non dovrebbe mai essereindicato come contenuto del 〈descrittore〉 a meno che il gruppo di celle noncomprenda anche la prima cella di una riga

hline serve per tirare un filetto orizzontale attraverso tutta la tabella o tutta lamatrice Esso puograve essere eseguito solo come primo elemento di una tabellaoppure dopo il comando di fine riga oppure dopo un altro coman-do hline in questrsquoultimo caso vengono tracciati due filetti ravvicinatiattraverso tutta la tabella

cline〈col1-col2〉 serve per tracciare un filetto orizzontale solo sotto le colonne〈col1-col2〉 per esempio in una tabella a 7 colonne il comando cline2-6traccia un filetto orizzontale sotto le 5 colonne centrali non si possonoinserire due identici comandi cline uno di seguito allrsquoaltro per raddoppiareil filetto ma si possono usare per lsquosottolinearersquo colonne distinte per esempionella tabella a 7 colonne dellrsquoesempio precedente cline2-3cline5-6lsquosottolinearsquo solo le colonne 2 e 3 con un filetto e allineato con il primo unsecondo filetto lsquosottolinearsquo le colonne 5 e 6

I parametri compositivi di tabelle e matrici sono i seguenti

arraycolsep egrave metagrave dello spazio di separazione fra due celle consecutive diuna matrice

tabcolsep e metagrave dello spazio di separazione fra due celle consecutive di unatabella

arrayrulewidth egrave lo spessore dei filetti orizzontali o verticali che si possonoinserire in tabelle e matrici

G12 I FILE AUSILIARI E I LORO COMANDI 543

doublerulesep egrave la spaziatura verticale o orizzontale fra due filetti consecutiviorizzontali o verticali

arraystretch egrave una macro che puograve venire ridefinita con renewcommand eche rappresenta il fattore di scala con cui viene ingrandito o rimpicciolitolo strut che si trova sempre nella prima cella di ogni riga delle tabelle odelle matrici Il suo valore di default egrave lrsquounitagrave

G12 I file ausiliari e i loro comandi

G121 I file del sistema TEXLATEX come per altro anche Plain TEX fa riferimento ad un gran numerodi file dei quali spesso il compositore non si accorge nemmeno A parte i filesorgente con estensione tex o ltx ci sono anche i file con le estensioniseguenti il nome proprio dei file corrispondenti ad un medesimo documento egravecostantemente il nome proprio del file principale e questo nome egrave conservatodentro la variabile jobname che puograve essere usata anche dal compositore omeglio dal programmatore che scrive le macro

aux serve per conservare tutte le informazioni che riguardano i riferimentiincrociati quando si usano i comandi include questi file conservanoanche tutte le informazioni relative al file incluso in modo da poternesimulare la compilazione quando questo file non sia incluso nella lista difile da compilare contenuta nellrsquoargomento di includeonly Il comandonofiles sopprime la scrittura di tutti i file di questo tipo

bbl questo file viene scritto da BIBTEX ma viene poi letto da LATEX percomporre la bibliografia quando si usi il comando bibliography

dvi egrave il formato di default dellrsquouscita compilata di tutti i programmi elabo-rati con il sistema TEX esso fa riferimento ai font a matrici di pixel egeneralmente il programma per rendere leggibile agli umani questo file egraveincluso nella distribuzione del sistema TEX pdflatex che viene usato perprodurre direttamente lrsquouscita in formato PDF egrave in grado di produrrelrsquouscita in formato DVI se si pone allrsquoinizio del file tex la specificazionepdfoutput=0

glo egrave il file prodotto da LATEX quando sia attivo il comando makeglossaryesso contiene tutte le voci glossaryentry prodotte dai vari comandiglossary inseriti nei file sorgente

idx egrave il file prodotto da LATEX quando sia attivo il comando makeindexesso contiene tutte le voci indexentry prodotte dai vari comandi indexinseriti nel file sorgente

ind questo file viene scritto dal programma makeindex ma viene riletto daLATEX quando deve comporre lrsquoindice analitico

lof contiene le informazioni per comporre lrsquoindice delle figure

544 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

log contiene tutta le registrazione di quanto egrave successo durante lrsquoesecuzione diLATEX in particolare le informazioni relativamente dettagliate concernentigli errori e gli avvertimenti i font usati quelli che sono stati creati al voloquelli mancanti quelli sostituiti eccetera

lot contiene le informazioni per comporre la lista delle tabelle

toc contiene le informazioni per comporre lrsquoindice generale

G122 I riferimenti incrociatiI comandi per assegnare una parola chiave agli oggetti da citare eo perrichiamarne il valore o la pagina sono

label〈chiave〉ref〈chiave〉pageref〈chiave〉

Il comando label egrave fragile sarebbe meglio anche se egrave possibile non inserirlomai allrsquointerno di altri comandi nemmeno i comandi di sezionamento o i comandiper le didascalie I contatori che possono essere citati con la chiave sono quelli chesono stati incrementati con refstepcounter in ogni caso label associa allachiave il valore dellrsquoultimo contatore in ordine di tempo che egrave stato incrementatocon quel comando

G123 Bibliografia e citazioniSalvo disporre di file bibliografici esterni e di fare uso del programma BIBTEXLATEX dispone dellrsquoambiente thebibliography per comporre gli elenchi bibliograficie assegnare loro una chiave di riferimento

beginthebibliography〈cifre〉bibitem[〈etichetta〉]〈chiave〉 〈voce bibliografica〉 endthebibliography

Le voci bibliografiche vengono richiamate con il comando

cite[〈testo〉]〈chiave〉oppurecite〈lista di chiavi〉

La 〈chiave〉 egrave una informazione interna di LATEX che serve a LATEX stesso e alcompositore per riferirsi ad una particolare voce bibliografica Quando questaviene citata viene citata o con lrsquo〈etichetta〉 se egrave stata specificata oppure conil numero progressivo dellrsquoelenco bibliografico in ogni caso numero o etichettavengono racchiusi entro parentesi quadre

Con cite si possono fare citazioni multiple semplicemente specificando una〈lista di chiavi〉 formata dalle chiavi specifiche dei riferimenti da citare separate davirgole per questo motivo le chiavi possono essere formate con qualunque carat-tere esclusa la virgola Se si cita unrsquoopera sola la citazione contiene lrsquo〈etichetta〉o il numero seguiti da 〈testo〉 per esempio avendo attribuito ad un riferimento

G12 I FILE AUSILIARI E I LORO COMANDI 545

lrsquoetichetta TUG2007 il comando di citazione cite[cap~2]TUG2007 produrragravequalcosa come [12 cap 2]

Per la bibliografia specialmente se contiene numerose voci egrave consigliabileservirsi del programma BIBTEX che garantisce la composizione uniforme dellevarie citazioni e tramite file di estensione consente anche di usare stili di citazionediversi come per esempio lo stile lsquoautore-annorsquo

G124 Suddivisione del file sorgenteNon egrave conveniente scrivere un unico file sorgente specialmente se il documentoda comporre contiene molte pagine molti capitoli eccetera Conviene predisporreun lsquomasterfilersquo che contenga solo il preambolo e la lista dei file componenti

documentclass[〈opzioni〉]〈classe〉usepackage[〈opzioni〉]〈pacchetto〉[〈data〉] includeonly〈lista di file〉begindocumentinclude〈primo file〉include〈secondo file〉 enddocumentLa 〈lista di file〉 egrave un elenco di nomi di file separati da virgole ma senza spazispuri prima o dopo le virgole La sequenza di comandi include ognuno con ilsuo nome di file esegue la compilazione dei file tranne di quelli che non sonoelencati nella 〈lista di file〉 Al limite si puograve compilare un file alla volta i file giagravecompilati anche se non vengono piugrave elaborati hanno lasciato le loro tracce neirispettivi file aux quindi a meno che non siano intervenute modifiche LATEXriesce a risolvere tutti i riferimenti incrociati e a mantenere la coerenza deinumeri delle pagine e di tutti i contatori specificati con i comandi specifici diLATEX

Egrave chiaro che prima di terminare la lavorazione di un documento egrave importanteeseguire la compilazione di tutto il documento cosiccheacute si egrave completamente sicuriche tutti i riferimenti e tutti i valori dei contatori e delle pagine siano correttiquesto lavoro va fatto comunque per predisporre alla fine della lavorazione lacompilazione dellrsquoindice analitico

Ci si ricordi che ogni comando include per prima cosa esegue un comandoclearpage che svuota le code di oggetti flottanti e comincia la compilazionedel nuovo file su una pagina nuova Se non egrave questo quello che si vuole otteneresi faccia uso del comandoinput〈file〉

che non consente la compilazione selettiva ma consente di proseguire la compila-zione del testo dal punto preciso nel quale si trovava LATEX nel momento in cuiha cominciato ad eseguire il comando input

Per risolvere le dipendenze di un dato documento da certi file di macro egravedisponibile lrsquounico ambiente che puograve precedere il comando documentclass

beginfilecontents〈nome file〉〈corpo del file〉endfilecontents

546 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

Egrave disponibile anche lrsquoambiente asteriscato la differenza consiste in questo quandofilecontents viene eseguito controlla che un file con il 〈nome file〉 specificatoesista se esiste lrsquoambiente non fa nulla salvo scrivere sullo schermo e nel filelog che il file esiste giagrave se invece il file non esiste questo ambiente lo creascrivendovi dentro il 〈corpo del file〉 e salvandolo con il nome 〈nome file〉 Nelfare questo al fine di identificare il tipo di file e la sua origine esso scrive anchedei commenti in stile LATEX cioegrave con un segno allrsquoinizio della riga Se non sivogliono questi commenti si usi lrsquoambiente asteriscato

Il comando listfiles serve per elencare a schermo e nel file log tuttii nomi dei file che vengono via via aperti (tranne quelli di servizio) in modoche si possa seguire e controllare che lrsquoesecuzione della compilazione procedaregolarmente

G13 Indice analitico e glossarioCome descritto nel capitolo 16 per comporre uno o piugrave indici analitici egrave opportunoservirsi del programma makeindex nello stesso capitolo viene anche descrittocome servirsi di quel programma per compilare un glossario Tuttavia qui sirichiamano i comandi necessari

G131 Indice analiticoLa composizione dellrsquoindice analitico avviene mediante lrsquoambiente theindex

begintheindexinput〈indexfileind〉endtheindex

Piugrave comodamente si usa il pacchetto makeidx e si ordina la composizionedellrsquoindice analitico mediante il comando printindex Ancora piugrave comodamentesi usa il pacchettoimakeidx che consente di sfruttare la proprietagrave dei sistemi TEXmoderni di eseguire dei comandi di sistema cosigrave da poter generare uno o piugraveindici analitici con una sola esecuzione di pdflatex

Perograve per raccogliere le voci da indicizzare bisogna usare i seguenti comandi

makeindex inserito nel preambolo ordina di eseguire effettivamente la rac-colta delle voci attraverso il comando index che altrimenti sarebbecompletamente inerte

index serve per raccogliere le voci da indicizzare con la sintassi

index〈voce〉

Il comando index deve essere scritto senza spazi interposti alla fine dellaparola di testo che si vuole indicizzare La 〈voce〉 non contiene solo laparola da indicizzare ma anche le ulteriori informazioni di cui necessitail programma makeindex per formattare convenientemente la voce comevoce principale oppure secondaria oppure di terzo livello per scegliereil font con cui scrivere la voce per scegliere la chiave di indicizzazioneper segnalare nel caso di voci secondarie o di terzo livello sotto quale

G14 COMPILAZIONE INTERATTIVA 547

voce primarie esse debbano essere elencate per dare uno stile al numerodi pagina eccetera si veda a questo proposito la documentazione delprogramma makeindexChiaramente se si usa il pacchetto imakeidx per produrre diversi indicianalitici bisogna specificare con un parametro facoltativo in quale indice sideve porre la voce particolare marcata con index per questo egrave meglioconsultare la documentazione di imakeidx

G132 GlossarioPer comporre un glossario bisogna procedere in modo simile a quello che si usaper lrsquoindice analitico i comandi che permettono di raccogliere le voci sonomakeglossary inserito nel preambolo consente lrsquoeffettiva raccolta delle voci

mediante lrsquoattivazione del comando glossary che altrimenti sarebbetotalmente inattivo

glossary serve per raccogliere le voci da inserire nel glossario con la sintassi

glossary〈voce〉

G14 Compilazione interattivaLATEX consente un certo livello di interattivitagrave durante la compilazione a partegli errori che chiedono al compositore di intervenire LATEX consente anche diemettere dei messaggi sul terminale e di leggere le risposte del compositoretypeout con la sintassi

typeout〈messaggio〉

consente di scrivere un messaggio sullo schermo del terminale questo mes-saggio puograve avere gli scopi piugrave diversi ma non consente nessuna interattivitagravepiuttosto puograve preparare un dialogo interattivo

typein con la sintassi

typein[〈comando〉]〈messaggio〉

emette il 〈messaggio〉 sullo schermo se egrave specificato anche il 〈comando〉 ilprogramma si arresta e attende che lrsquooperatore scriva qualche cosa sullatastiera (presumibilmente quanto il 〈messaggio〉 suggerisce di scrivere frauna rosa di possibili scelte) non appena il compositore preme il tasto difine riga il testo introdotto viene assegnato al 〈comando〉 esattamentecome se il tutto eseguisse le seguenti operazioni

typeout〈messaggio〉newcommand〈comando〉〈testo introdotto〉

Il 〈comando〉 deve essere una valida sequenza di controllo cioegrave una stringaesclusivamente letterale preceduta dal backslash oppure un solo segno nonletterale preceduto dal backslash oppure un carattere attivo

548 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

G15 Interruzione di riga e di paginaG151 Interruzione di rigaI comandi

linebreak[〈numero〉]nolinebreak[〈numero〉]

consentono o vietano rispettivamente di interrompere una riga Se si specifica il〈numero〉 la loro azione egrave rinforzata o indebolita a seconda del valore del numerostesso Il numero 0 rappresenta un debole incoraggiamento ad operare mentreil numero 4 rappresenta lrsquoindicazione di eseguire incondizionatamente lrsquoazionespecificata lrsquoassenza del numero equivale a specificare il numero 4 Attenzionelinebreak interrompe la linea ma lascia che LATEX cerchi di giustificarla per cuise la gomma interparola deve essere allargata troppo viene emesso un messaggiodi Underfull hbox

Una riga puograve venire interrotta anche con i comandi

[〈spazio〉][〈spazio〉]newline

Essi permettono di interrompere una riga per andare decisamente a capo Nonviene eseguito nessun tentativo di giustificare la riga nemmeno se manca pocoal margine destro La forma asteriscata impedisce un fine pagina subito dopo

Per tutti questi comandi la possibilitagrave di eseguire la cesura delle parole in findi riga egrave essenziale Per altro in certe circostanze non basta consentire la cesurama bisogna diminuire le tolleranze di composizione cioegrave bisogna accontentarsidi una maggiore bruttezza di una o piugrave righe Ciograve si ottiene con i comandi

sloppyfussy

Il primo aumenta le tolleranze di composizione a valori enormi che per LATEXequivalgono ad infinito Il secondo ripristina i valori normali

G152 Interruzione di paginaI comandi

pagebreak[〈numero〉]nopagebreak[〈numero〉]

Agiscono come linebreak ma riferendosi alla pagina non alla riga Il 〈numero〉ha lo stesso significato con 0 che indica in blando incoraggiamento ad eseguiree 4 che ordina di eseguire incondizionatamente il comando

Per lrsquointerruzione di pagina non si puograve agire sulla cesura ma si puograve tempora-neamente allungare la pagina rispetto al normale

enlargethispage〈lunghezza〉enlargethispage〈lunghezza〉

G15 INTERRUZIONE DI RIGA E DI PAGINA 549

Il comando senza asterisco allunga semplicemente la pagina per ovvi motivi〈lunghezza〉 dovrebbe essere un multiplo intero di baselineskip dellrsquoavanza-mento di riga normale con il font di default Tuttavia il comando asteriscatocerca di allungare la pagina di quanto specificato ma cerca anche di stringere ilpiugrave possibile gli spazi bianchi verticali al fine di non allungare la pagina ovverodi allungarla il meno possibile Specialmente componendo sul verso e sul rectoegrave importante che le pagine siano della stessa altezza se i margini laterali sonoconsistenti una riga in piugrave in una delle due pagine si nota appena tuttaviasarebbe meglio evitarlo Il comando asteriscato potrebbe essere la soluzione se lapagina nella quale esso compare ha abbastanza spazi bianchi

I comandi

newpageclearpagecleardoublepage

chiudono la pagina corrente gli ultimi due scaricano anche le eventuali codedi oggetti flottanti ancora non svuotate il comando cleardoublepage even-tualmente emette anche una pagina bianca al fine di consentire di iniziare lapagina successiva sul recto cleardoublepage egrave tipicamente il primo comandoche viene eseguito implicitamente quando si esegue il comando di inizio di unnuovo capitolo e anche quando si immette un file con include

Sono disponibili anche dei comandi presi a prestito da Plain TEX ma ancoradefiniti con LATEX

smallbreak esegue un salto pagina solo se prima era stato introdotto nel testouno spazio verticale pari a smallskipamount

medbreak esegue un salto pagina solo se prima era stato introdotto nel testouno spazio verticale pari a medskipamount

bigbreak esegue un salto pagina solo se prima era stato introdotto nel testouno spazio verticale pari a bigskipamount

goodbreak indica a LATEX che questo egrave un buon punto per spezzare la paginaLATEX effettivamente esegue il salto se manca poco alla fine naturale dellapagina se cioegrave non resta una pagina pesantemente mozza ma egrave solo cortadi pochissime righe

filbreak sempre se manca poco alla fine della pagina questo comando indicaa LATEX che puograve eseguire un salto pagina inserendo anche un porsquo di gommaverticale in modo che non vengano emessi messaggi di Underfull vboxnello stesso tempo se il punto non egrave buono per interrompere la paginafilbreak non fa nulla

Si consiglia di usare questi comandi solo alla fine della lavorazione di un docu-mento per correggere a mano alcune piccole cose che LATEX da solo non egrave capacedi gestire I casi in cui il compositore egrave costretto a ricorrere a questi comandie a quelli di LATEX sono rarissimi in testi lsquonormalirsquo possono essere frequentiin testi che contengono molta matematica Tuttavia enlargethispage con osenza asterisco consente di rimediare ad un capitolo la cui ultima riga o ultimedue righe cadono nellrsquoultima pagina peggio ancora se questa pagina egrave dispariSe la pagina egrave pari questa eventualitagrave non egrave tanto bella ma puograve essere accettata

550 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

se esse cadono su una pagina dispari questa resta quasi bianca e il capitolosuccessivo inizia in generale di nuovo su una pagina dispari con il risultato cheappaiono due pagine bianche o quasi bianche di seguito decisamente da evitare

Piuttosto se i capoversi finali del capitolo problematico sono sufficientemen-te lunghi si puograve convincere pdftex a comporli su una o due dighe di piugrave odi meno senza forzare allargamenti o accorciamenti improponibili degli spa-zi interparola specificando il comando primitivo looseness seguito da un(piccolo) numero positivo o negativo per esempio scrivendo looseness=1dentro o in assoluta adiacenza ad un capoverso pdftex cercheragrave di allun-gare quel solo capoverso di una riga purcheacute il farlo non aumenti la lsquobrut-tezzarsquo del capoverso oltre alla tolleranza valida in quel momento Il valoredi looseness viene rimesso a zero automaticamente alla fine del capover-so quindi vale solo per quel capoverso per il quale egrave stato specificato Peresempio questo capoverso egrave stato composto con un valore unitario di questoparametro

G16 ScatoleUna scatola egrave un oggetto che puograve contenere diversi segni anche un testo formatoda diverse righe ma questo testo una volta inscatolato viene trattato da LATEXcome se fosse un oggetto unico e non lo spezzeragrave mai alla fine di una riga o diuna pagina I comandi per mettere del 〈testo〉 dentro una scatola sono

mbox〈testo〉makebox[〈larghezza〉][〈posizione〉]〈testo〉fbox〈testo〉framebox[〈larghezza〉][〈posizione〉]〈testo〉

I comandi che cominciano con la lettera lsquofrsquo inseriscono una cornice attorno altesto quelli che cominciano con la lettera lsquomrsquo non inseriscono nessuna corniceSe la 〈larghezza〉 che egrave facoltativa viene specificata il testo viene inserito dentrouna scatola della larghezza specificata altrimenti i comandi che accettano questoargomento facoltativo si comportano come quelli che non lo richiedono Se vienespecificata la 〈larghezza〉 allora si puograve specificare anche la posizione medianteuna sola delle lettere seguenti l per collocare il testo a sinistra r per collocareil testo a destra s per distribuire il testo allargando o restringendo lo spaziointerparola lungo tutta la 〈larghezza〉 se non viene specificata nessuna posizioneil testo risulta centrato dentro la 〈larghezza〉 Si confrontino i casi seguenti

framebox[50mm][l]testo a sinistra testo a sinistraframebox[50mm][r]testo a destra testo a destraframebox[50mm]testo centrato testo centratoframebox[50mm][s]testo spaziato testo spaziato

Lo spessore della linea che forma la cornice delle scatole egrave conservata nelparametro dimensionale fboxrule e la distanza della cornice dal testo egrave con-servata dentro il parametro dimensionale fboxsep Attenzione lo spessore di1 pt per la cornice dagrave luogo a una cornice molto scura testo Quindi non egrave ilcaso di specificare spessori maggiori se non a ragion veduta

G16 SCATOLE 551

Si puograve sostituire lrsquoindicazione esplicita della〈larghezza〉 nelle scatole chelrsquoaccettano mediante quattro nuovi comandi che si riferiscono tutti alla larghezzadella scatola composta con mbox che contiene lo stesso 〈testo〉 esse sono

height ovvero lrsquoaltezza della scatola composta con mbox〈testo〉depth ovvero la profonditagrave di quella scatolatotalheight ovvero la somma di height e di depthwidth ovvero la larghezza di quella scatola

Per inserire del testo dentro scatole che contengono materiale lsquoverticalersquo (inpratica una successione verticale di righe uno o piugrave capoversi) si puograve usare ilcomando parbox o lrsquoambiente minipage

parbox[〈pos〉][〈altezza〉][〈posinterna〉]〈giustezza〉〈testo〉oppurebeginminipage[〈pos〉][〈altezza〉][〈posinterna〉]〈giustezza〉〈testo〉endminipage

dove il parametro 〈pos〉 indica lrsquoallineamento della scatola con il testo circostantet indica che la riga di base della prima riga della scatola egrave allineata con lariga di base del testo circostante b indica che la linea di base dellrsquoultima rigadella scatola egrave allineata con la riga di base del testo circostante per defaultcioegrave senza specificare nulla lrsquoasse matematico della scatola egrave allineato con lrsquoassematematico del testo circostante Facoltativamente si puograve specificare lrsquo〈altezza〉della scatola se questa altezza viene specificata allora si puograve usare il terzoparametro facoltativo 〈posinterna〉 le lettere di posizionamento sono le stessema si riferiscono a dove il testo contenuto nella scatola viene collocato rispetto aibordi ideali della scatola stessa Va infine specificata la 〈giustezza〉 della scatolain pratica la sua larghezza e il 〈testo〉 che essa deve contenere

La differenza sostanziale fra il comando e lrsquoambiente egrave la seguente il comandoparbox non comincia a comporre il 〈testo〉 al suo interno fincheacute non lrsquohaletto tutto Tutto ciograve non avviene con lrsquoambiente minipage il quale gestisce il〈testo〉 in modo differente In compenso minipage in quanto ambiente richiedeuna lsquoamministrazionersquo un poco piugrave complessa che richiede un maggior tempo dielaborazione Parlando di microsecondi non egrave il caso di formalizzarsi troppo vistii numerosissimi vantaggi che offre lrsquoambiente rispetto al comando Lrsquoambienteminipage puograve anche contenere delle note interne alla lsquopaginettarsquo che esso componequeste note vengono composte con i soliti comandi solo che la numerazione dellenote avviene con lettere corsive in posizione di apice in modo da distinguerlebene dalle note di piegrave di pagina generalmente composte con esponenti numericio con simboli non letterali

Si noti che se il contenuto di una minipage comincia con una equazione indisplay essa conserva il suo spazio che la precede se non si vuole questo spaziosi cominci la minipage con vspace-abovedisplayskip

Il comando rule compone una scatola particolare essa infatti egrave completa-mente nera La sintassi egrave

rule[〈rialzo〉]〈base〉〈altezza〉

552 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

La 〈base〉 e lrsquo〈altezza〉 sono la base e lrsquoaltezza del rettangolo nero se una delledue egrave nulla il rettangolo egrave invisibile ma lrsquooggetto continua a mantenere lrsquoaltradimensione se la base egrave nulla si ottiene uno strut che in gergo tipografico italianosi chiama pilastrino In questo testo si egrave mantenuto il nome inglese per ricordarepiugrave facilmente i nomi dei comandi che inseriscono strut vari sia nelle tabellesia in matematica Il rettangolo nero (o invisibile) risulta rialzato di 〈rialzo〉 sequesta lunghezza egrave positiva o ribassato se essa egrave negativa

Infine un comando serve per collocare del 〈testo〉 in una scatola che vienealzata o abbassata a piacere e le si possono assegnare dimensioni a piacereindipendentemente dal testo che la scatola contiene

raisebox〈rialzo〉[〈altezza〉][〈profonditagrave〉]〈testo〉

La 〈profonditagrave〉 puograve venire specificata solo se si specifica anche lrsquo〈altezza〉

G17 Disegni e colori

G171 DisegniCome giagrave specificato lrsquoambiente picture nativo di LATEX non egrave in grado di farealtro che semplici disegni con lrsquoinclinazione dei segmenti e dei vettori moltolimitata dagli speciali font che servono per disegnarli anche i cerchi sia pieni siavuoti sono un problema se non nelle situazioni piugrave semplici i rettangoli ad angoliarrotondati soffrono delle stesse limitazioni dei cerchi le linee arbitrarie possonoessere eseguite solo con le curve di Beacutezier quadratiche quindi con certe limitazionisulle quali qui non egrave il caso di insistere Dal 2003 egrave disponibile il pacchetto pict2eche toglie tutte queste limitazioni esso ha assunto una conformazione stabile dal2004 quindi si raccomanda caldamente di usare quel pacchetto se si desideranoeseguire semplici disegni Nel 2009 il pacchetto pict2e egrave stato ulteriormentearricchito di altri comandi che permettono ora di comporre disegni piuttostoelaborati

Se si vuole disegnare qualcosa di piugrave elaborato ancora si ricorra al pacchettopgf e al suo ambiente tikzpicture questo pacchetto consente di disegnare prati-camente qualsiasi cosa Se non dovesse bastare crsquoegrave sempre il pacchetto PSTricksche egrave limitato solo dal fatto che il linguaggio PostScript su cui si basa non egraveonnipotente ma quasi

Qui pertanto non si daragrave nessuna informazione sullrsquoambiente picture gliesempi svolti nel testo dovrebbero essere autoesplicativi Si invita invece il lettorea documentarsi sui pacchetti pict2e pgf e sul suo ambiente tikzpicture noncheacutesul pacchetto PSTricks

G172 Colori e graficaLATEX egrave dotato di una serie di pacchetti che consentono di eseguire diverse coseoltre allrsquoimportazione di file grafici esterni essi mettono a disposizione la gestionedel colore e la manipolazione di scatole varie che normalmente non possono essereeseguite da LATEX (se non passando attraverso il formato PostScript) ma possonoinvece venire eseguite direttamente da pdfLATEX Lrsquointera serie di pacchetti sitrova nella cartella texlatexgraphics mentre la documentazione si

G17 DISEGNI E COLORI 553

trova in doclatexgraphics Il lettore egrave invitato a documentarsi sul filegrfguidepdf qui si riportano solo i comandi piugrave importanti

Si noti che fra questi pacchetti crsquoegrave color per la gestione del colore i coloripossono essere chiamati per nome o possono essere descritti a livello piugrave bassomediante la specificazione del modello del colore e le componenti dalle qualiin questo modello un dato colore egrave caratterizzato Il pacchetto xcolor estendemoltissimo queste funzionalitagrave La gestione delle scatole e lrsquoimportazione di figureesterne egrave gestita da altri pacchetti di questi si egrave citato qui sempre e soltantographicx che egrave il piugrave comodo da usare in quanto esso dispone di una interfacciaa parole chiave rispetto al file che contiene le macro vere e proprie di gestionedella grafica graphics Questrsquoultimo puograve essere usato da solo ma la sintassiper fargli eseguire le cose che sono cosigrave semplici con graphicx diventa spessoabbastanza complessa

scalebox〈scala-orizz〉[〈scala-vert〉]〈testo〉 serve per inserire 〈testo〉 den-tro una scatola per poi scalarla del fattore di scala orizzontale se il fattoredi scala verticale non viene specificato lrsquoingrandimento verticale avviene conlo stesso fattore di scala orizzontale altrimenti la scatola viene deformatain maniera diversa cosigrave da ottenere effetti particolari

resizebox〈larghezza〉〈altezza〉〈testo〉 esegue in pratica la stessa opera-zione di scalebox solo che invece di specificare dei fattori di scala vengonospecificate le dimensioni finali effettive Il comando asteriscato agisce inmodo da scalare lrsquoaltezza totale (altezza piugrave profonditagrave) al valore specifica-to Una delle due dimensioni puograve essere sostituita da un punto esclamativoin questo caso lrsquoaltra dimensione fissa il fattore di scala complessivo inmodo che il rapporto di forma non sia modificato

rotatebox[〈lista di chiavi〉]〈angolo〉〈testo〉 serve per ruotare la scatolache contiene il 〈testo〉 di un 〈angolo〉 specificato (in gradi) in senso antiorarioil 〈testo〉 puograve essere qualunque cosa del testo vero e proprio una figurauna tabella Nella 〈lista di chiavi〉 si puograve anche specificare mediante origin il puntoattorno al quale eseguire la rotazione si possono definire delle coordi-nate ma ci sono alcuni punti speciali che possono essere rappresentatimediante codici letterali t b r l e B rappresentano le solite inizia-li di lsquotoprsquo lsquobottomrsquo lsquorightrsquo lsquoleftrsquo ma B egrave un codice nuovo rispetto aquelli giagrave incontrati altre volte esso specifica la linea di lsquoBasersquo la lsquoBa-selinersquo la linea cioegrave che attraversa orizzontalmente la scatola in corri-spondenza del punto di riferimento queste lettere sono da usare a duea due per esempio tl per indicare lrsquoangolo in alto a sinistra Br perindicare lrsquointersezione della linea di base con il lato destro della scato-la eccetera Si osservino le tre diverse posizioni che assume la letteralsquoQrsquo quando la si ruoti di 90deg attorno ai tre possibili punti di rotazio-ne di sinistra lsquoblrsquo Q lsquoBlrsquo Q e lsquotlrsquo Q Generalmente per ruotare unascritta in verticale per esempio per metterla a fianco di un asse verti-cale in un disegno egrave conveniente eseguire la rotazione attorno al puntoBl

reflectbox〈text〉 gira la scatola che contiene il 〈testo〉 attorno al suo asseverticale in modo che appaia come riflessa allo specchio

554 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

includegraphics[〈lista di chiavi〉]〈file grafico〉 serve per inserire una sca-tola che contiene lrsquoimmagine descritta nel 〈file grafico〉 elaborata secondole numerose chiavi che si possono specificare ognuna con il suo valore se sispecifica il bounding box il rettangolo lsquocircoscrittorsquo la versione asteriscatadi questo comando permette di tagliare tutto quanto sporge fuori da dettorettangolo Per questo scopo talvolta egrave meglio specificare le coordinate delviewport o le dimensioni delle strisce da ritagliare con trim e poi speci-ficare la chiave clip in questo modo si puograve avere un controllo miglioredi quanto si sta eseguendo

definecolor〈nome〉〈modello〉〈valore〉 serve per dare un 〈nome〉 ad uncolore specificato mediante il suo 〈modello〉 e il 〈valore〉 dei parametri chein quel modello identificano il colore scelto LATEX considera come modellidi colore i seguenti

gray egrave il modello di colore grigio identificato da un solo valore un nu-mero decimale nellrsquointervallo 0 1 0 vuol dire nero e 1 significabianco ogni valore intermedio specifica una certa gradazione digrigio

rgb egrave il modello di colore degli schermi rosso verde blu I colori so-no additivi e il valore che specifica un dato colore in questo mo-dello egrave dato da tre numeri decimali separati da virgole tutti etre nellrsquointervallo 0 1 0 vuol dire lsquoassenzarsquo di quella particola-re componente di colore 1 significa che quella componente di co-lore egrave totalmente satura Per esempio 1 0 0 indica il rosso satu-ro

cmyk egrave il modello della quadricromia a stampa con i colori sottrattivi ognicolore egrave identificato da quattro componenti corrispondenti ciascunaalle componenti ciano (celeste) magenta (lilla) giallo nero Ognicomponente egrave pesata con un numero decimale nellrsquointervallo 0 1 ela quaterna di valori decimali costituisce una lista di valori separatida virgole

Con ogni modello di colore sono predefiniti i seguenti colori whiteblack red green blue yellow cyan magenta Il driver specifico aseconda se si passi attraverso il programma dvips oppure se si procedacon pdfLATEX puograve definire altri colori I nomi dei colori predefiniti conil driver dvips sono contenuti nel file dvipsnamdef in texlatexgraphics

color〈nome〉 dichiara che da questo momento in poi si useragrave il colore conil 〈nome〉 specificato La sua azione viene delimitata dai gruppi o dagliambienti

textcolor〈nome〉〈testo〉 serve per colorare il 〈testo〉 con il colore denomi-nato 〈nome〉

colorbox〈sfondo〉〈testo〉 agisce come fbox ma il 〈testo〉 viene compostosu uno sfondo colorato con il colore di nome 〈sfondo〉

fcolorbox〈bordo〉〈sfondo〉〈testo〉 agisce come colorbox salvo che lacornice della scatola non egrave nera ma colorata con il colore di nome 〈bordo〉 I

G18 SELEZIONE DEI CARATTERI 555

parametri fboxsep e fboxrule che definiscono lo spazio di separazionefra bordo e 〈testo〉 e lo spessore del bordo sono gli stessi che regolano lecaratteristiche della scatola incorniciata con fbox

pagecolor〈nome〉 questo comando globale assegna alle pagine intere unosfondo con il colore denominato 〈nome〉 e questo colore permane fincheacutenon si dichiara un colore differente (eventualmente white)

G18 Selezione dei caratteriI comandi standard di LATEX che hanno a che vedere con la scelta dei fontverranno descritti qui di seguito Per gestire i font in modo piugrave professionaleanzi per caricare altre collezioni di font e per gestirle al meglio egrave necessariodocumentarsi nella guida fntguidedvi

G181 Scegliere famiglia forma e serie

I comandi per scegliere la forma eo la serie da cui trarre i font per la composi-zione sono raccolti nella tabella G4 nella tabella G5 sono invece appaiate ledichiarazioni e i corrispondenti comandi

Le dichiarazioni non possono essere usate in matematica i comandi possonoessere usati in matematica e sono anche soggetti alla variazione automaticadi corpo che compete agli indici e ai pedici di primo e di secondo livello se esolo se vine caricato anche il pacchetto amsmath ma i risultati possono esserepessimi se i font matematici e quelli testuali non si accordano per cui se nesconsiglia lrsquouso e si raccomanda invece di usare il corretto comando matematicomathrm per i pedici e gli apici che normalmente contengono solo una parolao una abbreviazione sempre scritti senza accenti Si puograve ricorrere anche alcomando text fornito dal pacchetto amsmath e al corrispondente comandointertext per intercalare del testo ad espressioni matematiche incolonnateNellrsquoargomento di questi due comandi se fosse necessario si puograve ricorrere tantoai comandi quanto alle dichiarazioni Vale la pena di ricordare che tanto textquanto intertext usano il font testuale non il tondo matematico o simili altrifont matematici Ci si ricordi quindi della necessitagrave di scegliere i font testualie quelli matematici in modo che si accordino gli uni con gli altri di default ifont CM EC LM cm-super ed altre simili collezioni di font si accordano sia inmodo testo sia in modo matematico

G182 Scegliere il corpo

La dimensione dei caratteri egrave legata a nomi che fanno riferimento al corpolsquonormalersquo quello cioegrave usato di default per i corpi inferiori a 10 pt la successionedei corpi procede di 1 pt in 1 pt per i corpi superiori si procede con una successionegeometrica di ragione 12 lrsquoopzione di classe 11pt corrisponde ad un corpo di1095 pt ma il numero magico 1095 altro non egrave che 10times

radic12 I comandi per la

scelta dei corpi relativi a quello normale sono raccolti nella tabella G6 Questicomandi non possono venire usati in matematica

556 APPENDICE G RIEPILOGO DELLA SINTASSI DI LATEX

mdseries Serie media upshape Forma dirittabfseries Serie nera itshape Forma corsivarmfamily Tondo con grazie slshape Forma inclinatasffamily Lineare senza grazie scshape Maiuscolettottfamily Monospaziato normalfont Font di default

Tabella G4 Dichiarazioni per la scelta di famiglia serie e forma

textmd〈testo〉 mdseries textup〈testo〉 upshapetextbf〈testo〉 bfseries textit〈testo〉 itshapetextrm〈testo〉 rmfamily textsl〈testo〉 slshapetextsf〈testo〉 sffamily textsc〈testo〉 scshapetexttt〈testo〉 ttfamily textnormal〈testo〉 normalfont

Tabella G5 Corrispondenza fra comandi e dichiarazioni

tiny scriptsize footnotesize small normalsizelarge Large LARGE huge Huge

Tabella G6 Dichiarazioni di corpo

G183 Corpi testuali e matematiciSi ricorda che fra i comandi disponibili (ma raramente usati) egrave disponibile ilcomando per associare i quattro corpi che servono per il testo e gli indici superiorie inferiori di primo e di secondo ordine per la matematica

DeclareMathSizes〈testo〉〈textsize〉〈subscriptsize〉〈subsubscriptsize〉

dove al corpo testuale 〈testo〉 vengono associati i tre corpi per la matematica〈textsize〉 per i simboli delle espressioni 〈subscriptsize〉 per gli indici e i pedici diprimo livello e 〈subsubscriptsize〉 per gli indici e i pedici di secondo livello

Queste dichiarazioni sono piugrave utili di quanto si pensi percheacute talvolta nelleclassi standard egrave desiderabile apportare qualche correzione specialmente per icorpi piugrave piccoli e piugrave grandi

G184 Simboli specialiQualunque segno di qualunque font puograve venire stampato prescindendo dalle suecaratteristiche particolari il comando

symbol〈indirizzo〉

permette di accedere a qualunque simbolo di qualunque polizza di caratterimediante il suo 〈indirizzo〉 il carattere viene stampato prescindendo dalle suecaratteristiche speciali o dallrsquoesistenza di un comando specifico per usarlo lrsquounicaquestione egrave conoscerne lrsquoindirizzo decimale oppure ottale oppure esadecimaleAttenzione gli indirizzi si riferiscono alla polizza di font usati per la composizionenon ai caratteri introdotti o introducibili con la tastiera per esempio le dueparentesi graffe nellrsquoencoding di entrata hanno indirizzi 123 e 125 rispettivamentese perograve si usano questi indirizzi con un font con codifica OT1 si ottiene ndash e ˝ il

G18 SELEZIONE DEI CARATTERI 557

che corrisponde perfettamente con quanto si puograve leggere nella tabella 112 dellapagina 208

Questo fatto egrave collegato al modo diverso di interpretare i caratteri immessicon la tastiera nel file sorgente tex e soggetti alla codifica di entrata specificatacon lrsquoopzione fornita al pacchetto inputenc rispetto alla codifica usata epr i fontdi uscita specificata con lrsquoopzione passata al pacchetto fontenc Si veda piugravedettagliatamente questa questione nellrsquoappendice D

Bibliografia

[1] Artech HouseldquoStyle ManualrdquoArtech House Boston ndash London

[2] AVThe Chicago Manual of StyleThe University of Chicago Press 14 ed 1994

[3] Gian Luigi BeccariaIl mare in un imbutoGiulio Einaudi editore Torino 2010

[4] Robert BringhurstThe elements of typographic styleHartley amp Marks Vancouver BC 2004

[5] Christophe CaignaertldquoA story of kpfontsrdquoIn TuGboat vol 31 no 3 (2010) pp 161ndash174

[6] CEI 24-1Unitagrave di misura e simboli letterali da usare in elettrotecnicaComitato Elettrotecnico Italiano Milano 1986

[7] CEI-S-646Dizionario della strumentazione nucleare Primo complemento al fascicolo

S-447Comitato Elettrotecnico Italiano Milano 1983

[8] Gustavo CevolanildquoLibretti in LATEXrdquoIn ArsTEXnica vol 1 no 2

[9] Gustavo CevolanildquoNorme tipograficherdquoIn ArsTEXnica vol 1 no 1

[10] CNR-UNI 10002Segni e simboli matematici per le scienze fisiche e tecnicheUnificazione Italiana Milano 1963

[11] CNR-UNI 10003Sistema internazionale di unitagrave (SI)Ente Italiano di Unificazione Milano 1984

[12] Massimiliano Dominici

558

BIBLIOGRAFIA 559

ldquoUtilizzo di caratteri TrueType con LATEX ndash Un esempio pratico i FellTypesrdquoIn ArsTEXnica no 4 (2007) pp 88ndash102

[13] Michael DownesShort math guideAmerican Mathematical Society Providence Rhode Island 109 ed 2002In ftpftpamsorgpubtexdocamsmathshort-math-guidepdf

[14] Olaf Druumlmmer Alexandra Oettler Dietrich von SeggernPDFA in a Nutshell Long Term Archiving with PDFCallas Software gmbh 2008In httpwwwpdfaorgdokuphpid=pdfaenpdfa_in_a_

nutshell[15] Elsevier Science Publishers SV

Preparing articles with LATEX mdash Instructions to authors for preparingcompuscripts

In instrautpdf[16] Giorgio Fioravanti

Il manuale del grafico mdash Guida alla progettazione grafica e allrsquoimpaginazionedel prodotto editoriale

Zanichelli Bologna 1987[17] Peter Flynn

Formatting information mdash A beginnerrsquos introduction to typesetting withLATEX

In ctantex-archiveinfobeginlatexbeginlatex-36pdf[18] Michel Goossens

The X ETEX Companion ndash TEX meets OpenType and UnicodeLATEX Team gennaio 2011In httpxmlwebcernchXMLlgc2xetexmainpdf

[19] Enrico GregorioldquoInstallare TEX Live 2010 su UbunturdquoIn ArsTeXnica vol ottobre no 10 (2010) pp 7ndash13

[20] Enrico GregorioldquoLrsquoarte esoterica di scrivere in cirillico con LATEXrdquoIn ArsTeXnica vol aprile no 9 (2010) pp 57ndash73

[21] Enrico GregorioIntroduzione a X ELATEX gennaio 2011In httpprofssciunivrit gregoriointroxelatexpdf

[22] ISO 690Documentation ndash Bibliographical references ndash Essential and supplementary

elementsInternational Organization for Standardization Ginevra 1982

[23] ISO Handbook 2Units of measurementInternational Organization for Standardization Ginevra 1982

[24] Kluwer Academic Publishers PrePress DepartmentUser manual for kluwerclsIn $TEXMFdoclatexkluwerusrmandvi

560 BIBLIOGRAFIA

[25] Donald E KnuthThe TEXbookAddison Wesley Reading Mass 16 ed 1996

[26] Donald E KnuthComputers amp typesettingAddison Wesley Reading Mass 2001Millenium edition

[27] Helmut Kopka Patrick W DalyGuide to LATEXAddison Wesley Reading Mass 4 ed 2004

[28] Steven G KrantzA primer in mathematical writingAmerican Mathematical Society Providence Rhode Island 2 ed 1998

[29] Leslie LamportA document preparation system mdash LATEX mdash Userrsquos guide and reference

manualAddison Wesley Reading Mass 2 ed 1994

[30] Roberto LesinaIl nuovo manuale di stileZanichelli Bologna 2 ed 1994

[31] Michael Mitchel Susan WightmanBook typography mdash A designerrsquos manualLibanus Press Marlborough Wiltshire UK 2005

[32] Frank Mittelbach Michel Goosens et alThe LATEX companionAddison Wesley Reading Mass 2 ed 2004

[33] Frank Mittelbach Michel Goosens et alThe LATEX graphics companionAddison Wesley Reading Mass 2 ed 2007

[34] Bice Mortara GaravelliProntuario di punteggiaturaEditori Laterza Bari 11 ed 2008

[35] Bice Mortara Garavelli (cur)Storia della punteggiatura in EuropaEditori Laterza Bari 2008

[36] Imprimerie Nationale (cur)Lexique des regravegles typographiques en usage agrave lrsquoImprimerie NationaleImprimerie Nationale Parigi 2006ISBN 2-7433-0482-0

[37] Scott PakinThe comprehensive LATEX symbol listIn $TEXMFdoclatexcomprehensivesymbols-a4pdf

[38] Lorenzo PantieriLATEX per lrsquoimpaziente ndash Unrsquointroduzione allrsquoArte di scrivere con LATEXGruppo Utilizzatori Italiani di TEX e LATEX settembre 2008

BIBLIOGRAFIA 561

[39] Lorenzo Pantieri Tommaso GordiniLrsquoarte di scrivere con LATEX 2010

[40] Will RobertsonThe X ETEX reference guide gennaio 2011In $TEXMFdocxetexxetexrefXeTeX-referencepdf

[41] Fabrizio SerraRegole editoriali tipografiche amp redazionaliIstituti Editoriali e Poligrafici Internazionali Pisa ndash Roma 2004Prefazione di Martino Mardersteig postfazione di Alessandro Olschki

appendice di Jan Tschichold[42] N Setzer

ldquoThe cool packagerdquoIn $TEXMFdoclatexcoolcoolpdf

[43] Societa Italiana di Fisica e Il Nuovo Cimento BolognaGuida per gli autori 1988

[44] Ellen Swanson Arlene OrsquoSean Antoinette SchleyerMathematics into typeAmerican Mathematical Society Providence Rhode Island 2 ed 1999

[45] Till TantauTikZ and pgf mdash Manual for version 110

[46] A Thompson B N TaylorldquoThe NIST Guide for the use of the International System of Unitsrdquo 2008

[47] Edward R TufteThe visual display of quantitative informationGrapphics Press Cheshire Connecticut 2 ed 2007

[48] UNI 2949Diagrammi e cartogrammi Regole generali per lrsquoelaborazioneEnte Italiano di Unificazione Milano 1982

[49] UNI 6015Segnaccento obbligatorio nellrsquoortografia della lingua italianaEnte Italiano di Unificazione Milano 1967

[50] UNI 6017Descrizioni e riferimenti bibliograficiEnte Italiano di Unificazione Milano 1967

[51] UNI 6461Divisione delle parole in fin di lineaEnte Italiano di Unificazione Milano 1969

[52] UNI 7090Metodo di scrittura numerica delle dateEnte Italiano di Unificazione Milano 1973

[53] UNI-ISO 5966Presentazione dei rapporti scientifici e tecniciEnte Italiano di Unificazione Milano 1989

[54] Herbert VossldquoMath moderdquoMathmodepdf in doclatexmathmode 2010

562 BIBLIOGRAFIA

[55] RC Weast MJ Astle WH Beyer (cur)CRC handbook of chemistry and physics CRC Press Boca Raton Florida

cap ldquoSymbols units and nomenclature in physicsrdquo pp F259ndashF29365 ed 1984

[56] Peter WilsonThe memoir class for configurable typesetting mdash User guideThe Herries Press Normandy Park WA 2004In $TEXMFdoclatexmemoirmemmanpdf

[57] Peter WilsonA few notes on book designThe Herries Press Normandy Park WA 2009

[58] Tobias OumltlicherUna (mica tanto) breve introduzione a LATEX2ε Ovvero LATEX2ε in 93

minutiTEX Users GroupIn $TEXMFdoclatexlshort-italianitlshortpdf Traduzione a cura

di G Agostini G Bilotta F Casadei Della Chiesa O de Bari G DelreL Ferrante T Pecorella M Rigido R Zanasi

Indice analitico

Simboli

480 533 535 189 520 504 193 306lt 499gt 499 67$ 66 66amp 67rsquo 504 540rsquo 499rsquorsquo 499( 169 188 516 517 521 531) 169 188 516 517 521 531+ 540 195 500 520- 334 382 457 461 540- 500-- 500--- 500 504 193 520 520lt 540lt 105laquo 499= 504 539 540gt 539gt 105raquo 499 293 306 310 315 500-espressione 94 541Roman 311dottedtocline 314

evenhead 367glossaryfile 301ifdefinable 287ifundefined 287indexfile 301oddhead 367roman 310sptoken 312tfor 312[ 161 170 185 193 517~ 504 85 95 96 185 186 307 476

497ndash499 510 540ndash542 548 185 186 498 548^ 504] 161 170 193 517ˆ 66| 165 166_ 67lsquo 504 540lsquo 499lsquolsquo 499 66 66~ 306 476 500 510 500

A

arsquo 540a= 540alsquo 540AA 504aa 504abovedisplayshortskip 518abovedisplayskip 518accent 456 466acute 165

563

564 INDICE ANALITICO

addcontentsline 320 505addto 310addtocounter 497 524addtolength 526addvspace 533advance 527AE 504ae 504AfterEndPreamble 488afterpage 103 112 324 325 480aleph 166allowdisplaybreak 185allowdisplaybreaks 185alpha 161 162amalg 163and 510 531angle 166ap 171 518appendix 73 279approx 163arabic 525arc 117arc 117arccos 164arcsin 164arctan 164arg 164arraybackslash 104 105arraycolsep 542arrayrulewidth 542arraystretch 97 543Arrowvert 165arrowvert 165ast 163asymp 163AtBeginDocument 312 313Author 402author 252 370 499 510autore 370

B

b 504backmatter 73 274 279 368backslash 165 166bar 165baselineskip 321 357 501 549beamertemplatetransparentco-

vereddynamic 252

begin 70 76ndash81 84 92 93 111114 170 316 372 462486 499 511 512515ndash517 522 533 539540 544ndash546 551

begingroup 84belowdisplayshortskip 518belowdisplayskip 518beta 161 162Beta Code 259bfseries 204 211 556bgroup 84 317bibindent 507bibitem 81ndash83 498 544bibliography 290 295 543bibliographystyle 290BibTeX 306bigbreak 549bigcap 164bigcirc 163bigcup 164Biggl 168biggl 168Biggr 168biggr 168Bigl 168bigl 168 182bigodot 164bigoplus 164bigotimes 164Bigr 168bigr 168 182bigskip 532bigskipamount 549bigsqcup 164bigtriangledown 163bigtriangleup 163biguplus 164bigvee 164bigwedge 164binom 186bm 190 216boldmath 190 215 520boldsymbol 190 216boldymbol 190boolean 530 531bot 166botfigrule 112 533botmark 366 368 369bottomfraction 536 537

INDICE ANALITICO 565

bottomrule 98bowtie 163Box 166box 317boxed 191bracevert 165break 334breve 165bullet 163

C

c 504cap 163capolettera 308capoverso 308caption 88 92 104 107 504

505 535cbezier 116 117cdot 163cdots 519centering 84ndash86 105 499 541cfrac 187chapter 273 274 320 366 368

504 505chapter 63 64chaptermark 368chaptername 504 505char 307 466check 165chi 162chiaveangle 155bb 153clip 154height 154keepaspectratio 154trim 154viewport 154width 153

circ 163circle 115circle 115 116cite 82ndash84 266 291 410 544cleaders 322ndash324cleardoublepage 531 535 549clearpage 112 475 478 480

535 545 549clerapage 480cline 96 97 542

closeout 302clubpenalty 482clubsuit 166colophon 370color 554colorbox 554columnsep 501columnseprule 501columnwidth 153 501 527cong 163contatorebottomnumber 536 537dbltopnumber 536 537footnote 502MaxMatrixCols 191secnumdepth 504table 108tocdepth 504topnumber 536 537totalnumber 537

coprod 164copyright 504cos 164cosh 164cot 164coth 164cs 306 307csc 164csname 330 515cspreto 272cup 163

D

D 98d 504dag 504dagger 163dashbox 115 116dashv 163date 252 370 499 510dbinom 186dblfigrule 112 533dblfloatpagefraction 536 537dblfloatsep 537dbltextfloatsep 537dbltopfraction 536 537ddag 504ddagger 163ddot 165

566 INDICE ANALITICO

ddots 519decimalcomma 312 313DeclareGraphicsRule 145 150DeclareMathOperator 166 186

189DeclareMathOperator 166DeclareMathSizes 556DeclareMathSymbol 312 488DeclareRobustCommand 315 316def 98 287definecolor 554deg 164Delta 161 162delta 162depth 551det 164dfrac 186 188Diamond 166diamond 163diamondsuit 166diff 189dim 164dimexpr 527 528displaybreak 185displaystyle 108 160 399 521div 163divide 527 529do 313documentclass 61 64 70 103

207 284 290 499 506545

dot 165doteq 163dotfill 321 323dots 519doublerulesep 543Downarrow 163 165downarrow 163 165

E

edef 287egroup 84 317ell 166else 312 488em 211emph 47 107 211 501emptyset 166end 63 71 76ndash81 84 92 93 111

114 170 287 316 372

462 486 499 511 512516 517 522 533 535539 540 544ndash546 551

endcsname 330 515endfirsthead 107endfoot 107endgroup 84endhead 107endinput 286 375endlastfoot 107endlist 515endmulticols 321enlargethispage 359 481 502

548 549enlargethispage 502 548enspace 193ensuremath 517epsilon 162eqref 170equal 530equiv 163errorstopmode 491eta 162etichettadescrizione 515evensidemargin 510exists 166 178exp 164expandafter 313 492 515extracolsep 99 108 541

F

fbaselineskip 311fbox 327 550 554 555fboxrule 317 550 555fboxsep 317 550 555fcolorbox 554fi 312 488figurename 504 505filbreak 482 549file

di formato 52di inizializzazione 54

fill 99 526 541finalhyphendemerits 334 475firstmark 366 368 369flat 166floatpagefraction 536 537floatsep 537fontencoding 205

INDICE ANALITICO 567

fontsize 311footnote 87 410 411 456 498

502footnotemark 87 88 502footnoterule 503 533footnotesep 503footnotesize 101 102 207 349

556footnotetext 87 88 498 502footskip 361forall 166frac 186 518frakfamily 263framebox 115 116 317 327 550frenchspacing 422 500frontmatter 73 273 278 368frown 163fussy 548

G

Gamma 161 162gamma 161 162gcd 164gdef 287 312ge 163geq 163gets 163gg 163glossary 300 505 543 547glossaryentry 543glueexpr 527goodbreak 482 549gothfamily 263graphicspath 152grave 165greekfont 269GuIT 62

H

H 504halign 109hangafter 309 373 374hangindent 309 373 374hat 66 165hbadness 460hbar 166hbox 311 327header 361

headsep 361heartsuit 166height 551hfill 323 369 533hline 96 542hom 164hookleftarrow 163hookrightarrow 163hrule 107 323 330hrulefill 321 323hsize 317hskip 322 457hspace 532hspace 532hss 323 515Huge 207 556huge 207 308 556hyphenation 382 458 459 461

497

I

i 413 464 504idotsint 189iff 163ifFamily 267iflanguage 313ifnum 487ifodd 325ifthenelse 530 531ifx 312iiiint 189iiint 189iint 189Im 166imath 166 169immediate 302in 163 178include 67ndash69 71 486 543 545

549includegraphics 67 125 150

151 155 253 328 329417 538 554

includegraphics 153 155includeonly 67ndash69 71 73 543

545indent 85 501index 297 298 300 307 505

508 543 546 547indexentry 297 543

568 INDICE ANALITICO

indexname 320indexspace 319indici 279inf 164infty 166input 67ndash69 71 103 299 302

545 546insertpenalties 479institution 252int 164 189interprete TEX 56intertext 187 501 555intextsep 537iota 162isodd 530isundefined 530it 210item 79ndash81 253 321 457 497

511 512itemindent 512itemsep 512 514itshape 204 211 556

J

j 504jmath 166 169jobname 301ndash303 543Join 163jot 517justify 84

K

kappa 162ker 164Keywords 402kill 539

L

L 504l 504lfigure 314ltable 314label 81 83 87 92 93 170 178

185 502 513 517 523524 535 544

labelsep 512labelwidth 512

Lambda 162lambda 162langle 165LARGE 207 556Large 207 556large 207 556larghezza del font 336LaTeX 500LaTeXe 500lceil 165ldots 519le 163leader 321leaders 322ndash324leadsto 163leavevmode 323left 167 168 182 215Leftarrow 163leftarrow 163lefteqn 517leftharpoondown 163leftharpoonup 163lefthypenmin 462lefthyphenmin 461leftmargin 512 515leftmargini 512 515leftmarginii 512leftmarginiii 512leftmarginiv 512leftmark 366ndash368Leftrightarrow 163leftrightarrow 163legature e segni diacritici 336lemma 369lengthtest 530leq 163let 515lettoken 312lfloor 165lg 164lgroup 165lhd 163lim 164liminf 164limsup 164Line 117line 115linea guida 321linebreak 334 497 548linepenalty 477

INDICE ANALITICO 569

lineskip 479 501 502lineskiplimit 502linespread 209 501linethickness 116linewidth 102 153 317 501list 515listfigurename 310listfiles 546listoffigures 113 309 504listoftables 113 504listparindent 512ll 163llap 309 515lmoustache 165ln 164log 164logo 253long 522Longleftarrow 163longleftarrow 163Longleftrightarrow 163longleftrightarrow 163longmapsto 163Longrightarrow 163longrightarrow 163looseness 359 481 550LTleft 108LTright 108

M

mcomma 312mainmatter 73 273 279 368makeatletter 310makeatother 302makebox 102 115 116 120 327

550makeglossary 300 505 543 547makeindex 297 505 543 546makelabel 513MakeLowercase 264maketaletter 302maketitle 370 510 511MakeUppercase 264 320 367mapsto 163 178 398 399marginpar 88 89 502 538marginparpush 503 539marginparsep 503 539marginparwidth 503 538markboth 320 366ndash369 508 509

markright 320 366ndash368 508 509mathbb 177mathbf 190 520mathcal 193 213 520mathchoice 399 400mathindent 507 518mathit 162 217 520 521mathnormal 399mathop 185 189mathord 312mathpunct 312mathrel 399mathring 165mathrm 520 555mathsf 217 520mathtt 217 520max 164maxdimen 491 528mbox 327 501 550 551mdseries 204 211 556medbreak 549medskip 107 532medskipamount 549mho 166mid 163middle 215midrule 98min 164mkern 520models 163mp 163mskip 520mu 162muexpr 527multicolumn 95 542multiply 527 529multiput 115 116

N

nabla 166natural 166ne 163nearrow 163NeedsTeXFormat 285neg 166neq 163 399newboolean 530 531newcolumntype 105 106 542

570 INDICE ANALITICO

newcommand 185 189 287306ndash309 315 316 322521 547

newcommand 306 369newcounter 497 523newenvironment 316 318 319

522newif 531newlength 497 526newline 95 498 499 548newpage 359 482 532 549newsavebox 327 497newtheorem 278 497 522nexists 178ni 163noalign 107nobreak 334nocite 291 295 296nofiles 543noindent 85 86 317 501nolinebreak 497 548nonfrenchspacing 500nonumber 517nopagebreak 497 548normalbaselineskip 357normalfont 210 556normalmarginpar 503 538normalsize 207 556not 163 177 178 398 399 531notag 179notin 178npar 374nu 162null 127 369numberline 505numerazioneAlph 509alph 509arabic 509fnsymbol 509Roman 509roman 509

numexpr 527nwarrow 163

O

O 504o 504occhiello 370

ocrfamily 238oddsidemargin 509odot 163OE 504oe 504ohm 171 315oint 164oldstylenums 216Omega 162 171omega 162ominus 163onecolumn 509oplus 163opzione

10pt 232 349 358 506 51411pt 207 209 349 506 55512pt 207 349 506a-1b 401a4paper 506a5paper 506ansinew 40 62 66applemac 62b5paper 506charter 217draft 506dvipdfm 416EU1 272executivepaper 506final 506fleqn 507 518garamond 217greek 259 260ibycus 259italian 76 172 193 251 284

311 412 518landscape 246 506latin 263latin1 62 66 252 416 417 467

468 471 473latin9 62 417legalpaper 506leqno 507letterpaper 506LGR 267LMR 267ltxarrows 114notitlepage 507oldstyle 261onecolumn 507oneside 506

INDICE ANALITICO 571

openany 507openbib 290 507openright 507origin 553original 114OT1 63 238 261 466OT2 219pdfa 400polutoniko 260pstarrows 114T1 62 219 236 252 261 267

270 272 463 465ndash467T2A 219 221T2B 219T2C 219titlepage 507 510twocolumn 507twoside 506 508utf8 34 36 62 220 234 411

467 468 471ndash474utf8x 234 264 265utopia 217veryoldstyle 261x-1a 401X2 xxvi 219ndash221

or 531Org 402oslash 163otimes 163oval 115 116overline 519

P

P 504pagebreak 185 475 497 548pagecolor 497 555pagenumbering 497 509pageref 81 83 93 170 517 544pagestyle 508paperheight 528paperwidth 528par 85 86 307 317 321 501 522paragraph 195 504 505parallel 163parbox 127 327 330 522 541

551parindent 501parsep 512 514parshape 373

parskip 479 502part 274 504 505partial 166partname 504 505partopsep 512pdfoutput 56 337ped 171 518perp 163pgfdeclareimage 252 253pgfuseimage 253Phi 162phi 162Pi 162pi 162piedino 17pm 163pmb 190polygon 117polygon 117polyline 117poptabs 540posizione degli oggetti flottanti 92 111 533b 92 111 533H 112h 92 111 533p 92 111 533t 92 111 533

pounds 504Pr 164prec 163preceq 163pretolerance 322 335 477prime 166printglossary 300 303printindex 299 300 546prod 164programma

BIBTEX 83 544propto 163protect 316 498 505protrusione dei segni grafici 336protrusione della punteggiatura 336provideboolean 530 531providecommand 315 318 521providecommand 315ProvidesClass 286ProvidesPackage 285ProvideTextCommandDefault 464Psi 162

572 INDICE ANALITICO

psi 162pushtabs 540put 115ndash117 126

Q

qbezier 116qquad 181 195 202 520quad 181 195 202 520

R

r 504raggedleft 84 89 95 105 499

538 542raggedright 84 89 95 105 499

542raisebox 309 552rangle 165rBrace 127rceil 165Re 166ref 81 83 93 170 502 513 517

523 524 544reflectbox 553refstepcounter 524 544refuso 377relax 287 311 488 527 533renewcommand 97 287 309 310

503 521 537 543renewcommand 309renewenvironment 318 319 522RequirePackage 325resizebox 102 553reversemarginpar 89 503 538rfloor 165rgroup 165rhd 163rho 162right 167 168 182 215Rightarrow 163rightarrow 163rightharpoondown 163rightharpoonup 163righthyphenmin 461 462rightleftharpoons 163rightmargin 512rightmark 366ndash368risposta allrsquoerroree 74

h 73i 74x 73

rlap 399rm 210rmfamily 204 210 211 556rmoustache 165roman 310rotatebox 553rule 97 330 400 551

S

S 504savebox 327sbox 327scalebox 553scriptscriptstyle 160 399

521scriptsize 207 556scriptstyle 160 399 521scshape 204 211 556searrow 163sec 164section 47 274 320 366 368

504 505selectfont 205 311 501selectlanguge 310setbeamercolor 252setboolean 530setbox 317setcounter 191 497 523 524

537setlength 114 526 537setminus 163settodepth 526settoheight 526settowidth 526sfsize 311sfdefault 272sffamily 204 211 556sharp 166shell editor 37shorthandoff 193shorthandon 193shortstack 499showboxbreadth 490 491showboxdepth 490 491showhyphens 456 460SI 173

INDICE ANALITICO 573

Sigma 162sigma 162sim 163simeq 163simulatedSC 311sin 164sinh 164sloppy 548slshape 204 211 556small 101 207 349 556smallbreak 549smallskip 107 532smallskipamount 549smile 163spadesuit 166spazieggiatura 335special 52sqcap 163sqcup 163sqrt 164 519sqsubset 163sqsubseteq 163sqsupset 163sqsupseteq 163ss 504stackrel 520star 163stepcounter 524stile della paginaempty 320 508headings 320 367 368 508myheadings 320 367 368 509plain 320 508

stretch 526stretchandshrink 108strut 96 97 499 503subparagraph 273 504 505subsection 366 504 505subset 163subseteq 163substack 188subsubsection 504 505subtitle 252succ 163succeq 163sum 164sup 164supaginadispari 325supaginapari 325suppressfloats 497 536

supset 163supseteq 163surd 166swabfamily 263swarrow 163symbol 556

T

t 504tabcolsep 100 101 542tablename 504 505tableofcontents 504tabularimage 329 330tag 170 179tan 164tanh 164tau 162testatina 17TeX 306 500text 184 187 188 501 555textasciicircum 67textasciitilde 67textbackslash 67 307textbf 190 204 211 556textcelsius 412textcent 464textcolor 554textcurrency 464textcyrillic 220textdegree 412 464textdollar 67texteuro 235textfloatsep 537textfraction 536 537textfrak 263textgoth 263textheight 154 357 509 528textit 204 521 556textmd 204 556textmho 218textnormal 556textnumero 389textocr 238textohm 171textormath 315 517textrm 204 210 211 501 556textsc 204 306 310 556textsf 204 211 556textsl 204 211 556

574 INDICE ANALITICO

textstyle 124 159 399 521textsuperscript 518textswab 263texttt 203 307 556textunderscore 67textup 204 556textvisiblespace 472textwidth 153 349 501 509

527 528tfrac 186thanks 498 510the 523ndash525Theta 162theta 162thetable 107 108thicklines 116thinlines 116thinspace 193thispagestyle 320 497 508thumbnail 51tilde 165times 163tiny 207 556Title 402title 252 370 499 510titlepage 253titolo 370to 163today 501tolerance 322 335 462 477top 166topcaption 104topfigrule 112 533topfraction 536 537topmargin 510topmark 366 368 369toprule 98topsep 512 514topskip 357 358totalheight 551totalnumber 536traceoff 491 495 496traceon 491 495 496tracingassigns 490tracingcommands 490tracinglostchars 490tracingmacros 489 490tracingonline 489tracingoutput 490tracingpages 490 493

tracingparagraphs 489 493tracingrestores 490tracingstats 489triangle 166ttfamily 203 211 556twocolumn 319 497 509twocolumns 534typein 498 547typeout 498 547

U

U 98 165u 165 504uimm 166 185uishape 210 211unboldmath 190 215 520underline 519unit 171ndash173unitagrave di misura 11big point 11 526bp 526cc 526cicero 12cm 525dd 526em 526ex 526in 525mm 525pc 526pica 12pt 525punto didot 11punto PostScript 11punto tipografico anglosassone

11sp 526

unita 172unitlength 114 127unlhd 163unrhd 163unvbox 317Uparrow 163 165uparrow 163 165uplus 163upshape 204 211 556Upsilon 162upsilon 162usapackage 325

INDICE ANALITICO 575

usebox 327usecounter 513useoutertheme 252usepackage 42 62 83 113 281

286 310 507 545usetheme 252 254

V

V 98 165v 504value 325 524 527 530varDelta 163varepsilon 162varGamma 163varphi 162varpi 162varrho 162varsigma 162varTheta 163vartheta 162vbadness 461vbox 317 327vcenter 327vdash 163vdots 519vec 165vector 115vee 163verb 516verb 516

vert 165vfill 533virgola 312 313 489vline 94 541vspace 85 307 321 532vspace 85 532vtop 327

W

wedge 163whiledo 371 531widehat 165widetilde 165widowpenalty 482width 551wp 166wr 163write18 146ndash148 302

X

xdef 287Xi 162xi 162xleaders 322ndash324xleftarrow 188xrightarrow 188

Z

zeta 162

Indice degli ambienti

A

abstract 274 511align 182 183 185 196alignat 183aligned 179ndash181 185alignedat 185alltt 507 516amsmath 181array 498 499 540 541

B

Bmatrix 191bmatrix 191

C

cases 168 187CD 192 193center 84 86

D

description 81 511 515descrizione 515displaymath 160 161 170 180 517document 64 103 409

E

enumerate 79 513 515eqnarray 178 179 499 517eqnarray 178 179 517equation 170 179 182 517equation 170 180

F

figure 86 111 113 114 151 375536

figwindow 372 373filecontents 499 546flalign 183flushleft 84 415flushright 84frame 247 253

G

gather 182gathered 185glossary 505

I

index 505inserto 374itemize 80

L

letter 498list 512ndash515longtable 107 108

M

math 517matrix 191medaglione 317minipage 88 327 330 502 541 551multicols 319 321 338multline 181 185

576

INDICE DEGLI AMBIENTI 577

P

picture 113 114 116 118 120 121123 125 127 246 254305 347 372 508 552

pmatrix 191

Q

quotation 77quote 76 77

S

sidewaystable 103sintassi 316 317sloppypar 462split 179ndash181 185subequations 179 184 185

T

tabbing 499 539table 86 92 97 98 111 113 127

375 536tabular 88 93 94 101 113 125

498 499 540 541

tabular 93 94 101 540 541tabwindow 373thebibiography 294thebibliography 81 82 289 294

544theglossary 300theindex 299ndash301 318 321 546tikzpicture 121 123 552titlepage 370 510 511

V

verbatim 78 516verse 77Vmatrix 191vmatrix 191

W

window 372ndash374wrapfigure 375wraptable 375

X

xy 193

Indice delle classi

A

arstexnica 55article 61 274 366 504 506

B

beamer 247 274book 18 61 73 79 82 104 257

258 260 273ndash275278ndash280 286 287 302318 349 362 367369ndash371 390 424 506513ndash515 537

L

layaureo 258letter 274 498 504 506ltnews 274ltxdoc 274 506ltxguide 274

M

memoir 258 277 301 303 342 352362 363 368ndash370 421

minimal 274 460 506

N

ncc 278

O

octavo 257 275 354 356 390ottavo 258

P

proc 274 506

R

report 61 273 278 506

S

scrartcl 276scrbook 276scrlettr 276scrlttr2 276scrreprt 276slides 245 246 274 506

T

toptesi 278 279

578

Indice dei file

Estensioni

afm 224 237ndash239

aux 69 543 545

bat 403

bbl 291 543

bmp 148

bst 290

def 465

doc 51 408ndash410 413ndash417 419472 473

docx 418 419

dtx 229 314 331

dvi 240 301 506 543

enc 236 239

eps 142 146ndash149 153

fd 228 238 239

fdd 229

fmt 52

gif 484

glo 301 543

gls 301

gst 303

icc 397

icm 397

idx 297 298 301 302 543

ind 299 301 302 543

ini 54

ist 302

jpg 149

lof 505 543

log 48 53 69 155 166 486 489492 493 539 544 546

lot 505 544

ltx 53 68 543

lyx 50 416

map 230 239

mf 228 235 237 241

mp 145

mps 144

odt 418

pdf 142 143 146 148 149 153240 301 408 472 473506

pfb 224 229ndash231 234 235 237398

pk 229

png 149 484

prj 43

ps 142 148 153 240 403 506

rtf 408 414 419

sty 254 285 310

svg 142

sxw 418

tex 24 25 32 50 51 53 68 152232 401 404 414ndash418463ndash465 467 468 472473 484 498 540 543557

tfm 224 228ndash230 235 237 239241

toc 505 544

ttf 224 238

txt 408

vf 239

xml 418

xmpdata 401

zip 48 228 235

A

athnumdtx 229auctex 23

579

580 INDICE DEI FILE

B

beamerexample2articlepdf 247beamerexample2beamerpdf 247beamerexample5pdf 247beameruserguidepdf 248bk10clo 349 358 514bookcls 286 314

C

cbgreek-fullmap 229 231classicist 302clsguide 275

D

dvipdfmmap 225dvipsnamdef 554

E

ECI-RGBV10icc 397 401encguidepdf 463endnotetex 87endnotessty 87esempio1dvi 65esempio1tex 64eulerpdf 217

F

fntguidedvi 555fntguidepdf 217fontmathltx 217fourier-doc-enpdf 217

G

ggloist 303greekdtx 229greekfdd 229greekins 229greekldf 228GreekFontstxt 229grfguidepdf 553GuidaGuITtex 401GuidaGuITxmpdata 401

H

hyph-ittex 460

I

inddvi 298it_ITaff 41it_ITdic 41italianldf 488 489ithyphtex 460

L

latexfmt 52 56 301 337latexltx 52 54 305 515latin1def 463 464librettopdf 345lmmap 235localmap 243

M

MacroGuidasty 121 308 324374 390

makebsttex 290 294makeindexdvi 298MaroGuidasty 316mathdesign-docpdf 217Mathmodepdf 197memmangst 303merlinmbs 291mymacrossty 287 318 321

N

nuovateoriatex 70

O

ot1encdef 466

P

pagfd 270pagk8rpfb 270PDA_defps 403pdf2pdfa 403pdf2pdfabat 403pdffontsmap 231pdflatexfmt 301

INDICE DEI FILE 581

pdftexmap 225 270pdfxsty 401pict2ecfg 114plainbst 290plaintex 52 54 55 305plain_itabst 290ps2pdfa 403ps2pdfabat 403psfontsmap 225 228 229

R

README 229

S

scrguienpdf 363segnaturepdf 346srcguidegst 303

T

t1encdef 463 465tdspdf 25 29tex256enc 236TeXworksapp 48tigereps 146tttomiacls 286

U

unsrtbst 290updmap-localcfg 230 231 238updmapcfg 231 235 237 398

W

wrapfigsty 375

Indice dei pacchetti

A

afterpage 103 112 324 325alltt 507 516amscd 192amsfonts 161 175 177 216 508amsmath 108 109 159 161 162

166 168 170 175 177179 182 185 186189ndash192 197 216 217221 278 427 428 501507 517 519 555

amssymb 175amsymb 216array 94 104 105 109 327 329

542auctex 39 44 47auto-pst-pdf 120avant 270

B

babel 62 66 68 76 171ndash173 193220 227ndash229 232 251259 260 263 269 278284 306 310 311 313315 320 334 382 412456 458 488 504 507517 518

beamer 246ndash248 252 254 255 274bgreek 260biblatex 296bm 190 216bohairic 222booklet 346booktabs 98

C

calc 523caption 93 275 366ccaption 275circuitikz 121ClassicThesis 276 390 424color 246 366 397 507 553combelow 465cool 427coptic 222 267crop 347curve2e 252 254

D

dcolumn 104

E

ecclesiastic 222edmac 266edstanza 266endnotes 87 266epspdfconversion 146ndash148epstopdf 146 147etoolbox 272 488 489euler 217

F

fancyhdr 275 349 350 361 363508

fixltx2e 369 534float 112 113 371floatrow 113fontenc 252 455 463 557fontspec 58 272

582

INDICE DEI PACCHETTI 583

fourier 217 360frontespizio 279

G

geometry 276 362 363 510ghostscript 31glossary 300graphics 507 508 553graphicx 102 141 145 151 253

308 328 397 508 553guit 62 252

H

hyperref 400 401 416

I

IEEEtrantools 108ifthen 371 508 529 531ImageMagik 150imakeidx 508 547indentfirst 360inputenc 252 412 455 463 467

468 503 540 557

K

koma-script 276kpfonts 261kuvio 192

L

latexsym 161 508layaureo 279 280 355 424layout 284ledmac 266lettrine 308 309 360longtable 103 104ltxsymb 175

M

makeidx 299 508 546mathdesign 217 218 226mathenv 109mdwtab 109metre 267mfnfss 263

microtype 333 337 338 461 462476

morefloats 535 539multicol 319 509 534multirow 95

N

natbib 290

O

opcit 266

P

pdfcomment 146pdfpages 345 346pdfscreen 246pdfslide 246pdfx 398 400ndash402pgf 120 121 123 141 247 248

252 552picinpar 372ndash375pict2e 113 114 117 118 120 249

252 254 284 508 552Pifonts 226poemscol 266polyglossia 269 382powerdot 246 255ppower4 246prosper 246 255psfrag 123pst-pdf 120PSTricks 120 145 146 255 552pxfonts 212 213 217 226

R

rotating 103rotfloat 113

S

sectsty 363seminar 246showidx 508SIstyle 173SIunits 172 173siunitx 173supertabular 103 104

584 INDICE DEI PACCHETTI

T

tabmac 266tabularx 99 104technica 259ndash261teubner 221 232 264ndash267texpower 246textcomp 218 417 464tikz 121titlesec 363 366tocloft 363topcapt 104toptesi 278trace 490 491 494 495txfonts 212 213 217 226type1ec 229 232 506typearea 276 356 362 363

U

unicode-math 58units 172utopia 217

V

varioref 83 284

W

widetable 100wrapfig 372 375

X

xcolor 247 248 397 553xypic 192 193

Indice dei programmie delle distribuzioni

A

AbiWord 414 415 417 418Acrobat Professional 396 400 405Adobe Acrobat 31 151Adobe Reader 31 40 43 151 397

408afm2tfm 239Aleph 59Anteprima 31 151 417apt-get 234Aquamacs 47 48 468 473auctex 44 48

B

bash 243BibDesk 24 291BIBTEX 289 292ndash296

C

Character map 32charco 471context 419 475context-mk-iv 467convert 150CygTeXmacs 49CygWin 43 44 49 236 237 414

471 472

D

dbcontext 419dblatex 419Draw 418

dvipdfm 51 145 146 225 255 395398

dvipdfmx 51 146dvips 31 51 114 120 124 145

146 225 240 255 398419 554

E

ebb 145elatex 55emacs 23 39 42 44 47ndash49 419eps2jpg 149eps2pdf 148eps2png 149epspdf 148epstopdf 146 148etex 52 53 55 59 215 301 327

358 523 526EurKey 34Excel 133excel 417

F

Fink 49fmtutil 56FontForge 59 236 237

G

gedit 45 46gedit-LaTeX-plugin 45 46ghostscript 22 23 31 50 148 395

396 400 402 403ghostview 22 31 148

585

586 INDICE DEI PROGRAMMI E DELLE DISTRIBUZIONI

gimp 31 149 150gnome 45gnuplot 129 131 133GraphicConverter 150gs 145 146gv 31gview 31 50 148 150 153 155

I

iconv 468 471 473ImageMagik 150imakeidx 547Indesign 4inkscape 398

J

java 243jpegtops 31 149

K

Kile 23 43ndash46 48Kpackage 22kpathsea 59kpsewhich 25Kword 414 415 417 418

L

latex 24 40 50ndash54 145 146 238310 405 416 417 419

LaTeXiT 24 25LED 42 43 56lua 59lualatex 411luatex 58 59 411 467 475LYX 50 51 405 416 418

M

MacPorts 49MacTEX 23 291makeindex 298ndash303 307 543 546

547Mappa dei caratteri 32METAPOST 59 123 124 142

144ndash146 149mftrace 236 237 241

MiKTEX xxix 22 25 26 2829 41 42 65 228 231240 284 302 484

MiKTeX Settings 29mktexlsr 231mktextfm 236 237mptopdf 149

N

NeoOffice 455Notepad 43 242

O

Omega 59Open XML converter 418OpenOffice 455OpenOfficeorg 418

P

Paint 149pdfcrop 151pdfelatex 55pdfetex 52 53 55pdfimport 418pdfLaTeX 252pdflatex 24 40 45 48 50ndash54 58

122 146ndash148 221 238261 265 267 270 272310 334 345 396 397400ndash402 405 407 412413 415ndash417 419 461463ndash467 473 484 508543 546

pdftex 52 53 55ndash59 124 146 215225 231 288 301 302305 317 327 334 337346 357 358 371 395398 462 475ndash481 523526ndash529 550

pdftexexe 302pdftops 149perl 243potrace 236 237Preview 31 151 417 418ProTEXt 21 42ps2pdf 31 51 146 148 255 402Python 46

INDICE DEI PROGRAMMI E DELLE DISTRIBUZIONI 587

python 243

Q

QuarkXPress 4

R

rtf2latex2e 414

S

Saxon 419Scribus 4Skim 31 47ndash49 418StarOffice 418SumatraPDF 40 41

T

Task Manager 485teTeX 22tex 52 53 55 56 59 146 301 305

317 357 358 475TeX Live Manager 29TeX Live Utility 24TeX4ht 407texconfig 22texdoc 26texhash 228TEX Live xxix xxx 21ndash25

27ndash30 41 42 49146ndash148 197 219 229243 262 267 302 303421

TeXmacs 49 50TeXmaker 40ndash42 45 46 49TeXmakerX 41 42 45 46 48 49

468TeXnicCenter 42 43TEXShop 23 39 46ndash49 51 56 65

149 268 269 485ndash487

TextEdit 419TextPad 43TextWrangler 48TeXworks 23 41 42 46ndash49 269

467 472 485tlmgr 22 30ttf2pt1 239

U

Ubuntu 23updmap 237 239 398updmap-sys 231

V

vim 44 242

W

Win-iconv 472WinEdt 42 43 149 411Word2LyXMacro 416word2tex 414Writer 415 416 418Writer2LaTeX 415 416 418Writer4LaTeX 416

X

xdvi 47 65 225 240xelatex 58 265 268ndash270 272 382

411Xemacs 44xetex 58 411 467 475xfig 131xpdf 59

Y

YAP 65 225 240

  • Presentazione
  • Composizione sincrona e asincrona
    • Introduzione
    • Il mark-up di LaTeX
    • Scribus un impaginatore Open Source
    • Conclusione
      • Nozioni elementari di tipografia
        • Tipografia e dattilografia
        • Unitagrave di misura tipografiche
        • Misure tipografiche
        • Le particolaritagrave dei caratteri
        • I contrografismi
        • Le parti di alcuni documenti a stampa
        • Osservazioni finali
          • Installare il sistema TeX
            • Installazione su macchine Windows a 32 bit
            • Installazione su Linux
            • Installazione su Macintosh con Mac OS X
            • Gli alberi di cartelle del sistema TeX
              • Gli alberi di cartelle di TeX Live
              • Gli alberi di cartelle di MiKTeX
              • Laggiornamento dei database dei nomi dei file
                • I programmi accessori
                • Le tastiere
                  • Le tastiere delle macchine Windows
                  • Tastiere Linux
                  • Le tastiere sulle macchine Macintosh
                  • Le tastiere virtuali
                    • Gli shell editor
                      • Shell editor multipiattaforma
                      • Shell editor per le macchine Windows
                      • Shell editor per le macchine Linux
                      • Shell editor per le macchine Macintosh
                        • Il sistema TeXmacs
                        • Il sistema LyX
                        • LaTeX e pdfLaTeX
                        • Altri programmi di composizione del sistema TeX
                          • Plain TeX
                          • I programmi estesi
                          • Il mark-up ConTeXt
                          • I programmi Omega e Lambda Aleph e Lamed
                          • Il programma XeTeX
                          • Il programma LuaTeX
                              • LaTeX prime nozioni
                                • Introduzione
                                • Linizio del file sorgente
                                • Il documento
                                • La fine del documento
                                • Un semplice esercizio
                                • I caratteri speciali
                                • Organizzazione dei file sorgente
                                • Gestione degli errori
                                  • LaTeX testi speciali
                                    • Che cosa sono i testi in display
                                    • Le citazioni
                                      • Le citazioni brevi
                                      • Le citazioni lunghe
                                        • Gli elenchi
                                          • Le elencazioni in linea
                                          • Le enumerazioni
                                          • Le elencazioni semplici
                                          • Alcune osservazioni relative alle elencazioni
                                            • Le descrizioni
                                            • Le liste bibliografiche
                                            • I riferimenti incrociati
                                            • Altri testi in display
                                            • Le note
                                              • Le note in calce
                                              • Le note marginali
                                                  • LaTeX tabelle
                                                    • Introduzione
                                                    • Come far flottare una tabella
                                                    • Le didascalie
                                                    • Come comporre la tabella vera e propria
                                                      • I descrittori delle colonne
                                                      • Il raggruppamento delle celle
                                                      • I separatori verticali
                                                      • Come rendere le tabelle un poco piugrave aperte
                                                        • Le tabelle di larghezza specificata
                                                        • Problemi compositivi delle tabelle
                                                          • Tabelle troppo larghe
                                                            • Tabelle troppo lunghe
                                                            • Pacchetti di estensione per le tabelle
                                                              • LaTeX figure
                                                                • Le figure e le immagini
                                                                • Lambiente figure
                                                                  • Controllo dei grandi oggetti flottanti
                                                                  • Modifica degli ambienti flottanti
                                                                    • Lambiente picture
                                                                    • Il pacchetto pgf
                                                                    • Vantaggi dei programmi nativi del sistema TeX
                                                                    • Metapost
                                                                    • Usi insoliti dellambiente picture
                                                                    • Linee guida per la grafica
                                                                      • Preliminari
                                                                      • Programmazione del tempo necessario per la creazione della grafica
                                                                      • Piano di lavoro per creare un grafico
                                                                      • Collegamento fra testo e grafico
                                                                      • Coerenza fra testo e grafica
                                                                      • Legende nei grafici
                                                                      • Diagrammi di vario genere
                                                                      • Attenzione e distrazione
                                                                      • Commenti
                                                                          • LaTeX limportazione di figure esterne
                                                                            • Introduzione
                                                                            • I formati grafici
                                                                              • I formati vettoriali
                                                                              • I formati diversi da quelli vettoriali
                                                                                • I formati accettabili
                                                                                  • I formati accettabili da latex
                                                                                  • I formati accettabili da pdflatex
                                                                                    • Conversione dei formati
                                                                                    • Scontornare le immagini
                                                                                    • Limportazione delle immagini
                                                                                      • LaTeX la matematica semplice
                                                                                        • Introduzione
                                                                                        • I modi matematici
                                                                                        • Alcune annotazioni sulle lettere greche
                                                                                        • Alcune osservazioni sugli operatori funzionali
                                                                                        • Alcune osservazioni sui grandi operatori
                                                                                        • I grandi delimitatori
                                                                                        • Gli accenti matematici
                                                                                        • Gli ambienti matematici
                                                                                        • Le unitagrave di misura
                                                                                          • LaTeX la matematica avanzata
                                                                                            • I simboli di amsmath
                                                                                            • Le estensioni dei font matematici
                                                                                            • I sistemi di equazioni
                                                                                            • Gli ambienti di composizione di amsmath
                                                                                              • Lambiente equation
                                                                                              • Lambiente aligned
                                                                                              • Lambiente split
                                                                                              • Lambiente multline
                                                                                              • Lambiente gather
                                                                                              • Lambiente align
                                                                                              • Lambiente falign
                                                                                              • Lambiente alignat
                                                                                              • Lambiente subequations
                                                                                              • Gli ambienti spezzati
                                                                                                • Altri comandi e ambienti
                                                                                                  • Definizione di operatori funzionali
                                                                                                  • Le frazioni in generale e le frazioni continue
                                                                                                    • Le frazioni e gli altri costrutti simili
                                                                                                    • Le frazioni continue
                                                                                                      • Il testo intercalato alle equazioni
                                                                                                      • Le frecce estensibili
                                                                                                      • Gli indici incolonnati
                                                                                                      • Gli integrali multipli
                                                                                                      • Loperatore differenziale
                                                                                                      • I simboli corsivi matematici in nero
                                                                                                      • Le espressioni matematiche riquadrate
                                                                                                        • Le matrici e i determinanti
                                                                                                        • I diagrammi commutativi
                                                                                                        • La punteggiatura in matematica
                                                                                                        • Conclusioni
                                                                                                          • LaTeX i caratteri da stampa
                                                                                                            • Introduzione
                                                                                                            • Terminologia relativa ai caratteri
                                                                                                            • I comandi per la scelta dei font
                                                                                                              • La scelta del corpo e dellavanzamento di riga
                                                                                                              • La scelta delle altre caratteristiche
                                                                                                                • Altri font diversi da quelli di default
                                                                                                                • I font per la matematica
                                                                                                                • Il Text Companion Font
                                                                                                                • Gli alfabeti diversi da quello latino
                                                                                                                  • Caratteri cirillici
                                                                                                                  • Caratteri greci
                                                                                                                  • Scrivere con altri alfabeti
                                                                                                                    • La gestione dei font
                                                                                                                      • Altri font giagrave disponibili
                                                                                                                      • Installazione di una collezione di font
                                                                                                                        • Installare i font greci
                                                                                                                        • Scrivere in greco
                                                                                                                        • Altri font outline
                                                                                                                        • Installare un set di font da zero
                                                                                                                        • Creare i font vettoriali con mftrace
                                                                                                                        • I file di descrizione dei font
                                                                                                                          • Installare font commerciali
                                                                                                                          • Font e sistema TeX
                                                                                                                            • Conclusioni
                                                                                                                              • LaTeX le presentazioni
                                                                                                                                • Introduzione
                                                                                                                                • Le classi per le presentazioni
                                                                                                                                • Altre classi per le presentazioni
                                                                                                                                • La classe beamer
                                                                                                                                • La documentazione
                                                                                                                                • Una breve presentazione
                                                                                                                                • Creare un nuovo stile
                                                                                                                                • Osservazioni
                                                                                                                                  • LaTeX composizione di testi letterari e filologici
                                                                                                                                    • La composizione di testi letterari
                                                                                                                                    • Font adatti ai testi classici
                                                                                                                                    • La composizione del tedesco classico
                                                                                                                                    • La composizione di testi in lingue classiche
                                                                                                                                      • Scrivere in latino
                                                                                                                                      • Scrivere in greco
                                                                                                                                        • La composizione di testi filologici
                                                                                                                                        • Un esempio di composizione con XeLaTeX
                                                                                                                                          • Esempio di composizione in greco
                                                                                                                                          • XeLaTeX i font Opentype e i font Type 1
                                                                                                                                            • Conclusione
                                                                                                                                              • LaTeX i vari tipi di documenti e stili di composizione
                                                                                                                                                • Introduzione
                                                                                                                                                • Classi standard
                                                                                                                                                • La creazione di nuove classi
                                                                                                                                                • Alcune classi non standard
                                                                                                                                                  • Le classi Komascript
                                                                                                                                                  • La classe memoir
                                                                                                                                                  • La classe ncc
                                                                                                                                                  • Le tesi di laurea e la classe toptesi
                                                                                                                                                  • Lestensione layaureo
                                                                                                                                                    • I pacchetti di estensione
                                                                                                                                                      • Come invocare i file di estensione
                                                                                                                                                      • I vari pacchetti e gli archivi internazionali
                                                                                                                                                        • Come scrivere nuovi pacchetti
                                                                                                                                                        • Non modificare i pacchetti esistenti
                                                                                                                                                          • BibTeX la bibliografia
                                                                                                                                                            • Introduzione
                                                                                                                                                            • Il programma BibTeX
                                                                                                                                                              • Come specificare lo stile bibliografico
                                                                                                                                                              • Come comporre la bibliografia
                                                                                                                                                              • Chiavi e citazioni
                                                                                                                                                                • I database bibliografici
                                                                                                                                                                • Quanti database bibliografici
                                                                                                                                                                  • LaTeX indici e glossari
                                                                                                                                                                    • Introduzione
                                                                                                                                                                    • Lindice analitico
                                                                                                                                                                      • Il programma makeindex
                                                                                                                                                                      • La composizione effettiva dellindice analitico
                                                                                                                                                                        • Il glossario
                                                                                                                                                                        • Modifica dellindice analitico
                                                                                                                                                                        • Indicizzazione sincrona
                                                                                                                                                                          • Indicizzazione sincrona dellindice analitico
                                                                                                                                                                          • Indicizzazione sincrona del glossario
                                                                                                                                                                              • LaTeX nuovi comandi
                                                                                                                                                                                • Introduzione
                                                                                                                                                                                • Le definizioni di comandi nuovi
                                                                                                                                                                                • Ridefinizione di comandi giagrave esistenti
                                                                                                                                                                                • Ridefinizioni di comandi di sistema
                                                                                                                                                                                • Esiste giagrave o non esiste ancora il comando
                                                                                                                                                                                • Definizione di comandi robusti
                                                                                                                                                                                • Definizione di un nuovo ambiente
                                                                                                                                                                                • La ridefinizione di ambienti esistenti
                                                                                                                                                                                • Situazioni particolari
                                                                                                                                                                                  • Le linee guida
                                                                                                                                                                                  • Controllo della posizione di grandi oggetti
                                                                                                                                                                                  • Immagini celle e scatole
                                                                                                                                                                                      • LaTeX la microgiustificazione
                                                                                                                                                                                        • Introduzione
                                                                                                                                                                                        • La composizione dei capoversi
                                                                                                                                                                                        • Metodi per migliorare la giustificazione
                                                                                                                                                                                        • La microgiustificazione
                                                                                                                                                                                          • LaTeX la geometria delle pagine
                                                                                                                                                                                            • Introduzione
                                                                                                                                                                                            • La geometria della pagina
                                                                                                                                                                                              • Il formato delle pagine
                                                                                                                                                                                              • Le segnature e le imposizioni
                                                                                                                                                                                              • I crocini
                                                                                                                                                                                              • Dimensioni della gabbia del testo
                                                                                                                                                                                                • Testatine e piedini il pacchetto fancyhdr
                                                                                                                                                                                                • Le proporzioni della gabbia di testo
                                                                                                                                                                                                • I margini
                                                                                                                                                                                                    • Lavanzamento di riga
                                                                                                                                                                                                    • I capoversi
                                                                                                                                                                                                    • Testatine e piedini
                                                                                                                                                                                                    • I pacchetti di personalizzazione
                                                                                                                                                                                                      • Il pacchetto geometry
                                                                                                                                                                                                      • I titoli e i titolini i pacchetti titlesec fancyhdr sectsty e tocloft
                                                                                                                                                                                                      • Testatine
                                                                                                                                                                                                        • La pagina del titolo
                                                                                                                                                                                                        • Le inserzioni flottanti e non flottanti
                                                                                                                                                                                                          • Gli oggetti flottanti
                                                                                                                                                                                                          • Gli oggetti non flottanti
                                                                                                                                                                                                            • Conclusioni
                                                                                                                                                                                                              • Ortografia tipografica
                                                                                                                                                                                                                • Ortografia testuale
                                                                                                                                                                                                                  • Ortografie alternative
                                                                                                                                                                                                                  • `d eufonica e `i prostetica apostrofi
                                                                                                                                                                                                                    • Accenti
                                                                                                                                                                                                                    • Sillabazione
                                                                                                                                                                                                                    • Punteggiatura
                                                                                                                                                                                                                    • Abbreviazioni
                                                                                                                                                                                                                    • Appellativi e maiuscole
                                                                                                                                                                                                                    • Uso dei font
                                                                                                                                                                                                                    • Le note
                                                                                                                                                                                                                    • Conclusioni
                                                                                                                                                                                                                      • Il formato PDF archiviabile
                                                                                                                                                                                                                        • Le immagini
                                                                                                                                                                                                                        • I font
                                                                                                                                                                                                                        • Gli hyperlink
                                                                                                                                                                                                                        • Generazione di un file PDF archiviabile
                                                                                                                                                                                                                          • La strada maestra
                                                                                                                                                                                                                          • Trasformazione di un file PDF o di un file PS
                                                                                                                                                                                                                            • Conclusioni
                                                                                                                                                                                                                              • Comporre da documenti esterni
                                                                                                                                                                                                                                • Conversione manuale
                                                                                                                                                                                                                                  • Copia e incolla
                                                                                                                                                                                                                                    • Conversione automatica
                                                                                                                                                                                                                                      • Documenti in formato doc
                                                                                                                                                                                                                                      • Documenti in formato PDF
                                                                                                                                                                                                                                      • Documenti in formato XML
                                                                                                                                                                                                                                        • Conclusioni
                                                                                                                                                                                                                                          • Dove documentarsi
                                                                                                                                                                                                                                            • Documentazione sulla tipografia
                                                                                                                                                                                                                                            • Documentazione su LaTeX
                                                                                                                                                                                                                                            • Documentazione sulla grafica
                                                                                                                                                                                                                                            • Documentazione sui singoli pacchetti
                                                                                                                                                                                                                                            • Documentazione su TeX
                                                                                                                                                                                                                                            • Documentazione sui simboli di LaTeX
                                                                                                                                                                                                                                            • Composizione della matematica
                                                                                                                                                                                                                                            • Larchiviazione dei documenti
                                                                                                                                                                                                                                              • Simbologia matematica e fisica
                                                                                                                                                                                                                                                • Unitagrave di misura del Sistema Internazionale
                                                                                                                                                                                                                                                • Simboli matematici nelle scienze
                                                                                                                                                                                                                                                • Nomenclatura
                                                                                                                                                                                                                                                  • Divisione in sillabe
                                                                                                                                                                                                                                                  • Codifica in entrata e codifica in uscita
                                                                                                                                                                                                                                                  • Come fa TeX a comporre le pagine
                                                                                                                                                                                                                                                    • Divisione dei capoversi
                                                                                                                                                                                                                                                    • Divisione della pagine
                                                                                                                                                                                                                                                    • Cosa fare sehellip
                                                                                                                                                                                                                                                      • Collocazione degli oggetti flottanti
                                                                                                                                                                                                                                                      • Le equazioni ingombranti
                                                                                                                                                                                                                                                      • I sezionamenti
                                                                                                                                                                                                                                                        • Conclusioni
                                                                                                                                                                                                                                                          • Trattamento degli errori
                                                                                                                                                                                                                                                            • Errori ortografici nel nomi dei comandi
                                                                                                                                                                                                                                                            • Errore nella ricerca dei file
                                                                                                                                                                                                                                                            • Ciclo infinito
                                                                                                                                                                                                                                                            • Gruppi aperti
                                                                                                                                                                                                                                                            • Mancata apertura di un gruppo
                                                                                                                                                                                                                                                            • Interferenza con le definizioni
                                                                                                                                                                                                                                                            • File personali che provocano conflitti
                                                                                                                                                                                                                                                            • Tracciare loperato del programma
                                                                                                                                                                                                                                                              • I comandi primitivi di tracciamento
                                                                                                                                                                                                                                                              • Il pacchetto trace
                                                                                                                                                                                                                                                                • Costruzione dei capoversi e delle pagine
                                                                                                                                                                                                                                                                • Conclusioni
                                                                                                                                                                                                                                                                  • Riepilogo della sintassi di LaTeX
                                                                                                                                                                                                                                                                    • La struttura del documento
                                                                                                                                                                                                                                                                    • Periodi e capoversi
                                                                                                                                                                                                                                                                      • Periodi
                                                                                                                                                                                                                                                                      • Capoversi
                                                                                                                                                                                                                                                                      • Note in calce
                                                                                                                                                                                                                                                                      • Note marginali
                                                                                                                                                                                                                                                                      • Accenti e simboli speciali
                                                                                                                                                                                                                                                                        • Suddivisione del testo e indici
                                                                                                                                                                                                                                                                          • Comandi di sezionamento
                                                                                                                                                                                                                                                                            • Classi pacchetti e stili delle pagine
                                                                                                                                                                                                                                                                              • Classe del documento
                                                                                                                                                                                                                                                                              • Pacchetti
                                                                                                                                                                                                                                                                              • Stili delle pagine
                                                                                                                                                                                                                                                                              • Il frontespizio
                                                                                                                                                                                                                                                                                • Testi in display
                                                                                                                                                                                                                                                                                  • Citazioni e poemi
                                                                                                                                                                                                                                                                                  • Liste
                                                                                                                                                                                                                                                                                  • Testo composto verbatim
                                                                                                                                                                                                                                                                                    • Formule matematiche
                                                                                                                                                                                                                                                                                      • Formule
                                                                                                                                                                                                                                                                                      • Simboli accenti delimitatori e grandi operatori
                                                                                                                                                                                                                                                                                      • Impilare gli oggetti matematici
                                                                                                                                                                                                                                                                                      • Spaziatura matematica
                                                                                                                                                                                                                                                                                      • Font matematici
                                                                                                                                                                                                                                                                                      • Stili di composizione
                                                                                                                                                                                                                                                                                        • Definizioni numeri e programmazione
                                                                                                                                                                                                                                                                                          • Comandi di definizione
                                                                                                                                                                                                                                                                                          • Comandi per la definizione di ambienti
                                                                                                                                                                                                                                                                                          • Teoremi
                                                                                                                                                                                                                                                                                            • Numeri lunghezze e spazi
                                                                                                                                                                                                                                                                                              • Numeri
                                                                                                                                                                                                                                                                                              • Lunghezze
                                                                                                                                                                                                                                                                                              • Operazioni fra numeri e grandezze
                                                                                                                                                                                                                                                                                              • Il pacchetto ifthen
                                                                                                                                                                                                                                                                                                • Spaziature
                                                                                                                                                                                                                                                                                                • Figure tabelle ed altri oggetti flottanti
                                                                                                                                                                                                                                                                                                  • Figure e tabelle
                                                                                                                                                                                                                                                                                                  • Note marginali
                                                                                                                                                                                                                                                                                                    • Incolonnamenti
                                                                                                                                                                                                                                                                                                      • Lambiente tabbing
                                                                                                                                                                                                                                                                                                      • Gli ambienti array e tabular
                                                                                                                                                                                                                                                                                                        • I file ausiliari e i loro comandi
                                                                                                                                                                                                                                                                                                          • I file del sistema TeX
                                                                                                                                                                                                                                                                                                          • I riferimenti incrociati
                                                                                                                                                                                                                                                                                                          • Bibliografia e citazioni
                                                                                                                                                                                                                                                                                                          • Suddivisione del file sorgente
                                                                                                                                                                                                                                                                                                            • Indice analitico e glossario
                                                                                                                                                                                                                                                                                                              • Indice analitico
                                                                                                                                                                                                                                                                                                              • Glossario
                                                                                                                                                                                                                                                                                                                • Compilazione interattiva
                                                                                                                                                                                                                                                                                                                • Interruzione di riga e di pagina
                                                                                                                                                                                                                                                                                                                  • Interruzione di riga
                                                                                                                                                                                                                                                                                                                  • Interruzione di pagina
                                                                                                                                                                                                                                                                                                                    • Scatole
                                                                                                                                                                                                                                                                                                                    • Disegni e colori
                                                                                                                                                                                                                                                                                                                      • Disegni
                                                                                                                                                                                                                                                                                                                      • Colori e grafica
                                                                                                                                                                                                                                                                                                                        • Selezione dei caratteri
                                                                                                                                                                                                                                                                                                                          • Scegliere famiglia forma e serie
                                                                                                                                                                                                                                                                                                                          • Scegliere il corpo
                                                                                                                                                                                                                                                                                                                          • Corpi testuali e matematici
                                                                                                                                                                                                                                                                                                                          • Simboli speciali
                                                                                                                                                                                                                                                                                                                              • Bibliografia
                                                                                                                                                                                                                                                                                                                              • Indice analitico
                                                                                                                                                                                                                                                                                                                              • Indice degli ambienti
                                                                                                                                                                                                                                                                                                                              • Indice delle classi
                                                                                                                                                                                                                                                                                                                              • Indice dei file
                                                                                                                                                                                                                                                                                                                              • Indice dei pacchetti
                                                                                                                                                                                                                                                                                                                              • Indice dei programmi e delle distribuzioni
Page 3: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 4: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 5: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 6: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 7: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 8: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 9: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 10: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 11: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 12: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 13: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 14: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 15: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 16: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 17: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 18: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 19: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 20: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 21: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 22: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 23: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 24: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 25: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 26: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 27: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 28: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 29: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 30: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 31: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 32: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 33: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 34: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 35: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 36: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 37: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 38: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 39: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 40: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 41: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 42: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 43: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 44: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 45: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 46: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 47: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 48: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 49: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 50: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 51: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 52: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 53: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 54: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 55: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 56: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 57: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 58: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 59: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 60: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 61: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 62: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 63: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 64: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 65: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 66: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 67: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 68: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 69: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 70: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 71: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 72: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 73: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 74: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 75: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 76: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 77: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 78: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 79: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 80: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 81: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 82: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 83: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 84: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 85: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 86: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 87: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 88: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 89: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 90: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 91: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 92: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 93: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 94: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 95: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 96: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 97: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 98: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 99: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 100: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 101: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 102: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 103: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 104: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 105: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 106: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 107: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 108: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 109: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 110: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 111: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 112: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 113: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 114: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 115: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 116: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 117: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 118: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 119: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 120: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 121: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 122: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 123: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 124: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 125: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 126: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 127: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 128: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 129: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 130: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 131: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 132: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 133: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 134: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 135: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 136: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 137: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 138: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 139: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 140: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 141: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 142: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 143: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 144: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 145: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 146: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 147: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 148: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 149: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 150: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 151: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 152: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 153: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 154: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 155: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 156: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 157: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 158: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 159: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 160: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 161: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 162: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 163: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 164: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 165: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 166: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 167: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 168: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 169: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 170: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 171: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 172: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 173: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 174: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 175: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 176: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 177: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 178: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 179: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 180: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 181: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 182: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 183: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 184: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 185: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 186: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 187: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 188: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 189: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 190: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 191: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 192: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 193: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 194: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 195: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 196: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 197: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 198: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 199: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 200: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 201: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 202: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 203: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 204: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 205: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 206: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 207: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 208: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 209: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 210: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 211: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 212: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 213: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 214: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 215: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 216: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 217: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 218: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 219: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 220: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 221: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 222: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 223: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 224: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 225: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 226: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 227: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 228: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 229: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 230: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 231: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 232: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 233: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 234: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 235: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 236: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 237: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 238: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 239: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 240: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 241: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 242: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 243: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 244: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 245: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 246: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 247: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 248: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 249: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 250: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 251: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 252: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 253: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 254: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 255: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 256: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 257: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 258: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 259: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 260: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 261: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 262: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 263: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 264: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 265: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 266: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 267: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 268: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 269: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 270: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 271: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 272: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 273: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 274: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 275: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 276: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 277: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 278: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 279: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 280: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 281: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 282: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 283: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 284: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 285: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 286: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 287: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 288: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 289: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 290: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 291: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 292: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 293: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 294: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 295: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 296: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 297: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 298: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 299: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 300: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 301: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 302: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 303: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 304: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 305: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 306: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 307: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 308: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 309: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 310: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 311: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 312: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 313: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 314: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 315: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 316: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 317: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 318: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 319: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 320: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 321: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 322: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 323: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 324: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 325: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 326: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 327: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 328: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 329: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 330: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 331: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 332: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 333: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 334: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 335: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 336: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 337: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 338: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 339: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 340: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 341: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 342: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 343: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 344: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 345: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 346: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 347: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 348: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 349: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 350: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 351: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 352: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 353: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 354: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 355: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 356: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 357: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 358: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 359: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 360: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 361: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 362: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 363: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 364: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 365: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 366: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 367: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 368: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 369: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 370: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 371: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 372: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 373: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 374: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 375: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 376: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 377: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 378: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 379: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 380: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 381: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 382: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 383: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 384: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 385: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 386: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 387: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 388: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 389: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 390: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 391: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 392: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 393: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 394: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 395: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 396: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 397: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 398: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 399: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 400: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 401: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 402: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 403: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 404: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 405: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 406: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 407: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 408: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 409: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 410: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 411: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 412: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 413: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 414: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 415: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 416: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 417: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 418: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 419: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 420: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 421: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 422: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 423: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 424: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 425: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 426: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 427: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 428: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 429: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 430: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 431: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 432: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 433: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 434: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 435: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 436: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 437: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 438: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 439: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 440: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 441: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 442: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 443: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 444: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 445: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 446: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 447: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 448: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 449: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 450: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 451: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 452: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 453: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 454: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 455: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 456: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 457: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 458: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 459: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 460: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 461: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 462: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 463: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 464: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 465: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 466: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 467: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 468: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 469: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 470: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 471: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 472: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 473: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 474: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 475: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 476: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 477: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 478: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 479: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 480: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 481: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 482: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 483: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 484: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 485: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 486: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 487: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 488: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 489: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 490: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 491: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 492: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 493: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 494: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 495: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 496: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 497: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 498: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 499: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 500: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 501: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 502: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 503: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 504: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 505: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 506: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 507: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 508: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 509: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 510: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 511: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 512: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 513: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 514: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 515: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 516: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 517: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 518: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 519: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 520: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 521: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 522: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 523: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 524: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 525: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 526: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 527: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 528: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 529: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 530: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 531: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 532: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 533: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 534: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 535: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 536: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 537: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 538: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 539: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 540: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 541: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 542: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 543: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 544: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 545: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 546: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 547: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 548: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 549: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 550: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 551: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 552: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 553: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 554: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 555: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 556: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 557: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 558: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 559: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 560: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 561: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 562: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 563: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 564: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 565: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 566: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 567: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 568: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 569: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 570: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 571: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 572: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 573: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 574: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 575: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 576: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 577: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 578: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 579: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 580: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 581: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 582: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 583: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 584: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 585: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 586: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 587: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 588: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 589: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 590: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 591: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 592: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 593: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 594: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 595: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 596: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 597: Introduzione all'arte della composizione tipografica con LaTeX - GuIT
Page 598: Introduzione all'arte della composizione tipografica con LaTeX - GuIT