Guida a TEX Live
TEX Live 2009

Karl Berry
http://tug.org/texlive/

Settembre 2009

Indice

1 Introduzione
 1.1 TEX Live e la TEX Collection
 1.2 Supporto per i sistemi operativi
 1.3 Installazione base di TEX Live
 1.4 Ottenere aiuto
2 Panoramica di TEX Live
 2.1 La TEX Collection: TEX Live, proTEXt, MacTEX
 2.2 Directory primarie di TEX Live
 2.3 Panoramica dei percorsi texmf predefiniti
 2.4 Estensioni di TEX
 2.5 Altri rilevanti programmi in TEX Live
 2.6 Font in TEX Live
3 Installazione
 3.1 Avviare l’installatore
  3.1.1 Unix
  3.1.2 MacOSX
  3.1.3 Windows
  3.1.4 Cygwin
  3.1.5 L’installatore testuale
  3.1.6 L’installatore grafico avanzato
  3.1.7 La semplicistica installazione guidata
 3.2 Eseguire l’installatore
  3.2.1 Menu delle architetture (solo Unix)
  3.2.2 Selezionare cosa sarà installato
  3.2.3 Percorsi di destinazione
  3.2.4 Opzioni
  3.2.5 Configurazione per l’esecuzione diretta dal DVD (solo modalità testuale)
 3.3 Opzioni della riga di comando di install-tl
  3.3.1 L’opzione -repository
 3.4 Azioni successive all’installazione
  3.4.1 Windows
  3.4.2 Se i collegamenti simbolici sono stati creati
  3.4.3 Variabili d’ambiente per Unix
  3.4.4 Variabili d’ambiente: configurazione globale
  3.4.5 Configurazione dei font per XeTEX
  3.4.6 Esecuzione dal DVD
  3.4.7 ConTEXt Mark IV
  3.4.8 Integrare le macro locali e personali
  3.4.9 Integrare font di terze parti
 3.5 Collaudare l’installazione
 3.6 Collegamenti ad ulteriori software scaricabili
4 Installazioni di rete
5 TEX Live su DVD e USB per la massima portabilità
6 tlmgr: gestire la tua installazione
 6.1 Modalità GUI di tlmgr
 6.2 Esempi di esecuzioni di tlmgr dalla riga di comando
7 Note relative a Windows
 7.1 Funzionalità specifiche per Windows
 7.2 Software aggiuntivo incluso sotto Windows
 7.3 Il profilo utente è home
 7.4 Il registro di configurazione di Windows
 7.5 Permessi di Windows
8 Una guida a Web2C
 8.1 Ricerca dei percorsi con Kpathsea
  8.1.1 Fonti dei percorsi
  8.1.2 File di configurazione
  8.1.3 Espansione dei percorsi
  8.1.4 Espansione predefinita
  8.1.5 Espansione delle parentesi graffe
  8.1.6 Subdirectory expansion
  8.1.7 Elenco dei caratteri speciali e loro significato: un riepilogo
 8.2 Archivi di nomi di file
  8.2.1 L’archivio di nomi dei file
  8.2.2 The filename database
  8.2.3 kpsewhich: ricerca indipendente di percorsi
  8.2.4 Esempi d’uso
  8.2.5 Risoluzione dei problemi
 8.3 Opzioni di esecuzione
9 Ringraziamenti
10 Acknowledgements
11 Storia delle edizioni
 11.1 Passato
  11.1.1 2003
  11.1.2 2004
  11.1.3 2005
  11.1.4 2006–2007
  11.1.5 2008
 11.2 Presente
 11.3 Futuro

Note all’edizione italiana

Dopo tanti anni, finalmente abbiamo anche un’edizione italiana di questa guida alla distribuzione TEX Live. Vorrei premettere che, per garantirne il completamento entro l’uscita di TEX Live 2009, mi sono fatto in quattro destinando praticamente ogni attimo libero a questo lavoro; ho tenuto sempre acceso il computer, con l’editor aperto e, spesso, passandoci davanti, mi fermavo a tradurre una sola frase o addirittura una sola parola pur di non restare fermo.

Ovviamente il risultato è un lavoro fatto con i piedi, uno stile incoerente, parti che nemmeno io riesco a capire, errori di battitura e di grammatica. Di tutto questo chiedo scusa. Però, adesso, il grosso dello sforzo è stato fatto e revisionare periodicamente questa guida per limarla e migliorarla sarà un’opera di gran lunga più semplice.

Per quanto riguarda lo stile che ho adottato, ho deciso di essere diretto e colloquiale con il lettore, dandogli del “tu”. Sapendo che in media l’utente italiano ha una conoscenza informatica non elevata, ho deciso di tradurre, spesso con perifrasi, concetti quali “file system”, “database”, “download”.

Spero che, nonostante tutti i difetti, il mio piccolo contributo a TEX sia apprezzato. Potete contattarmi per qualunque cosa, aiuti, suggerimenti, correzioni, all’indirizzo marco.pallante@gmail.com.

Vorrei dedicare questo lavoro alla mia città.

Marco Pallante
L’Aquila, 5 ottobre 2009.

1 Introduzione

1.1 TEX Live e la TEX Collection

Questo documento descrive le caratteristiche principali della distribuzione TEX Live — TEX e i programmi ad esso correlati per i sistemi GNU/Linux ed altre versioni di Unix, per Mac OS X e Windows.

Potete ottenere TEX Live scaricandola, oppure sul DVD TEX Collection, che i gruppi di utenti TEX distribuiscono tra i propri membri. La sezione 2.1 descrive brevemente il contenuto di questo DVD. Sia TEX Live che TEX Collection sono progetti cooperativi dei gruppi di utenti TEX. Questo documento descrive principalmente TEX Live.

TEX Live include gli eseguibili per TEX, LaTeX2e, ConTEXt, Metafont, MetaPost, BibTeX e molti altri programmi, una vasta collezione di macro, font e documentazione, e il supporto per la composizione tipografica in molti diversi alfabeti da tutto il mondo.

Per un breve sommario dei principali cambiamenti in questa edizione di TEX Live, consulta la fine del documento, sezione 11 (p. 72).

1.2 Supporto per i sistemi operativi

TEX Live contiene gli eseguibili per molte architetture basate su Unix, incusi GNU/Linux e Mac OS X. Ci sono anche gli eseguibili per Cygwin. I sorgenti inclusi possono essere compilati per quelle piattaforme per le quali non abbiamo gli eseguibili.

Per quanto riguarda Windows: solo Windows 2000 e i successivi sono supportati. Windows 9x, ME e NT sono stati abbandonati. A causa di questo cambiamento, Windows richiede un trattamento molto meno speciale rispetto ai sistemi Unix. Non ci sono eseguibili speciali a 64 bit per Windows, ma quelli a 32 bit dovrebbero funzionare sui sistemi a 64 bit.

Consulta la sezione 2.1 per soluzioni alternative per Windows e Mac OS X.

1.3 Installazione base di TEX Live

Puoi installare TEX Live sia dal DVD che attraverso Internet. Il programma di installazione di rete è piccolo e scarica tutto il necessario da Internet. L’installatore di rete è un’opzione attraente se hai bisogno solo di una frazione di TEX Live completo.

Il programma di installazione nel DVD permette l’installazione su disco, ma anche di eseguire TEX Live direttamente dal DVD (o da un’immagine, se il tuo sistema lo supporta). L’installazione è descritta nelle prossime sezioni, ma eccone un rapido accenno:

1.4 Ottenere aiuto

La comunità TEX è attiva ed amichevole e le domande più importanti finiscono per essere soddisfatte. Tuttavia il supporto è informale, dato da volontari e lettori casuali, per cui è particolarmente importante che tu faccia i tuoi compiti a casa prima di chiedere (se preferisci un supporto commerciale garantito, puoi rinunciare del tutto a TEX Live e acquistare il sistema di un fornitore; alla pagina http://tug.org/interest.html#vendors ne trovi una lista).

Ecco una lista di risorse, approssimativamente nell’ordine in cui noi raccomandiamo di usarle:

Per Cominciare
Se sei nuovo di TEX, alla pagina web http://tug.org/begin.html avrai una breve introduzione al sistema.
TEX FAQ
Le TEX FAQ sono un vasto compendio di risposte ad ogni genere di domanda, dalle più elementari alle più oscure. Sono incluse in TEX Live in texmf-dist/doc/generic/FAQ-en/html/index.html e sono disponibili su Internet alla pagina http://www.tex.ac.uk/faq. Visitale per prime.
TEX Catalogue
Se stai cercando uno specifico pacchetto, font, programma, ecc., il TEX Catalogue è il posto da visitare. È una enorme catalogo di tutte le voci connesse a TEX. Visita http://www.ctan.org/help/Catalogue/.
Risorse Web per TEX
La pagina web http://tug.org/interest.html ha molti collegamenti legati a TEX, in particolare a numerosi libri, manuali ed articoli su tutti gli aspetti del sistema.
archivi di supporto
I due principali forum di supporto sono il gruppo Usenet news:comp.text.tex e la mailing list texhax@tug.org. I loro archivi hanno anni di domande e risposte per il vostro piacere di ricerca tramite http://groups.google.com/group/comp.text.tex/topics e http://tug.org/mail-archives/texhax, rispettivamente. E una generica ricerca su web, ad esempio da http://google.com, non fa mai male.
porre domande
Se non riesci a trovare una risposta, puoi inviare una domanda a comp.text.tex tramite Google o un programma per Usenet, oppure per posta elettronica a texhax@tug.org. Ma prima di scrivere, leggi questa voce delle FAQ, al fine di massimizzare le probabilità di ottenere una risposta utile: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=askquestion.
supporto TEX Live
Se vuoi segnalare un bug o hai suggerimenti o commenti sulla distribuzione TEX Live, sull’installazione o la documentazione, la mailing list è tex-live@tug.org. Tuttavia, se la tua domanda è relativa all’uso di un particolare programma incluso in TEX Live, scrivi al mantenitore o alla mailing list di quel programma. Spesso eseguire un programma con l’opzione --help fornisce un indirizzo al quale segnalare i bug.

L’altra faccia della medaglia è aiutare coloro che hanno domande. Sia comp.text.tex che texhax sono aperte a chiunque, quindi sentiti libero di unirti, iniziare a leggere e dare una mano dove puoi.

2 Panoramica di TEX Live

Questa sezione descrive i contenuti di TEX Live e della TEX Collection di cui è parte.

2.1 La TEX Collection: TEX Live, proTEXt, MacTEX

Il DVD TEX Collection include quanto segue:

TEX Live
Un sistema TEX completo che può essere eseguito senza installazione, oppure può essere installato su disco. La sua pagina web è http://tug.org/texlive/.
MacTEX
per Mac OS X, aggiunge un installatore per Mac OS X nativo ed altre applicazioni Mac a TEX Live. La sua pagina web è http://tug.org/mactex/.
proTEXt
Un miglioramento della distribuzione MiKTEX per Windows, proTEXt aggiunge alcuni strumenti aggiuntivi a MiKTEX e semplifica l’installazione. È interamente indipendente da TEX Live e ha le proprie istruzioni per l’installazione. La pagina web di proTEXt è http://tug.org/protext.
CTAN
Un’instantanea dell’archivio CTAN (http://www.ctan.org).
texmf-extra
Una directory con pacchetti aggiuntivi assortiti.

CTAN, protext e texmf-extra non seguono necessariamente le stesse condizioni di copia di TEX Live, per cui fai attento nel ridistribuirli o modificarli.

2.2 Directory primarie di TEX Live

Segue un breve elenco e una descrizione delle directory primarie nella distribuzione TEX Live. Sul DVD TEX Collection, l’intera gerarchia di directory di TEX Live si trova all’interno di texlive e non direttamente all’apertura del disco.

bin

I programmi del sistema TEX, organizzati per piattaforma.

readme-*.dir

Rapida panoramica e collegamenti utili per TEX Live, in varie lingue, sia in HTML che in formato testo.

source

I sorgenti di tutti i programmi inclusi, comprese le distribuzioni Web2C, TEX e Metafont.

texmf

Vedi TEXMFMAIN sotto.

texmf-dist

Vedi TEXMFDIST sotto.

tlpkg

Script, programmi e dati per l’amministrazione dell’installazione e del software di supporto specifico per Windows.

In aggiunta alle precedenti directory, gli script di installazione e i file README (in varie lingue) si trovano nella directory della distribuzione.

Per quanto riguarda la documentazione, i collegamenti nel file doc.html possono risultare utili. La documentazione per i programmi (manuali, pagine di manuale, file Info) si trova in texmf/doc. La documentazione per i pacchetti ed i formati TEX si trova nella directory texmf-dist/doc. Puoi usare il programma texdoc per trovare una qualsiasi documentazione, ovunque sia collocata.

Questa stessa documentazione di TEX Live si trova in texmf/doc/texlive, disponibile in varie lingue:

2.3 Panoramica dei percorsi texmf predefiniti

Questa sezione elenca le variabili predefinite che specificano i percorsi texmf usati dal sistema, il loro scopo e la strutturazione predefinita di TEX Live. Il comando tlmgr conf mostra i valori di queste variabili, così che tu possa scoprire facilmente come sono riferite a specifiche directory nella tua installazione.

TEXMFMAIN

Il percorso che contiene le parti vitali del sistema come i file di configurazione, gli script di aiuto e la documentazione dei programmi.

TEXMFDIST

Il percorso che contiene il gruppo principale di pacchetti di macro, font, ecc.

TEXMFLOCAL

Il percorso che un amministratore può usare per l’installazione nell’intero sistema di macro, font, ecc., aggiuntivi o aggiornati.

TEXMFHOME

Il percorso che ciascun utente può usare per la propria installazione personale di macro, font, ecc., aggiuntivi o aggiornati. Quando viene usata, questa variabile si modifica per ogni utente al fine di riferirsi alla directory dello specifico utente.

TEXMFCONFIG

Il percorso usato dai programmi texconfig, updmap e fmtutil per memorizzare i dati di configurazione modificati. Normalmente si trova sotto TEXMFHOME.

TEXMFSYSCONFIG

Il percoros usato dai programmi texconfig-sys, updmap-sys e fmtutil-sys per memorizzare i dati di configurazione modificati.

TEXMFVAR

Il percorso usato da texconfig, updmap e fmtutil per memorizzare i dati generati durante l’esecuzione, come i file dei formati e le mappe per i font. Normalmente si trova sotto TEXMFHOME.

TEXMFSYSVAR

Il percorso usato da texconfig-sys, updmap-sys, fmtutil-sys ed anche da tlmgr per memorizzare i dati generati durante l’esecuzione, come i file dei formati e le mappe per i font.

La strutturazione predefinita è:

percorso del sistema
può contenere diverse edizioni di TEX Live:
2008

Un’edizione precedente.

2009

L’attuale edizione.

bin

 

i386-linux

Esebuibili per GNU/Linux

...

universal-darwin

Eseguibili per Mac OS X

win32

Eseguibili per Windows

texmf       

This is TEXMFMAIN.

texmf-dist  

TEXMFDIST

texmf-var   

TEXMFSYSVAR

texmf-config

TEXMFSYSCONFIG

texmf-local

TEXMFLOCAL, pensato per essere mantenuto tra diverse edizioni.

home dell’utente
($HOME o %USERPROFILE%)
.texlive2008

Dati privati generati e di configurazione per un’edizione precedente.

.texlive2009

Dati privati generati e di configurazione per l’attuale edizione.

texmf-var   

TEXMFVAR

texmf-config

TEXMFCONFIG

texmf

TEXMFHOME Macro personali, ecc.

2.4 Estensioni di TEX

Lo sviluppo dell’originale TEX di Knuth è congelato, se si escludono rare correzioni di bug. È ancora presente in TEX Live con il nome del programma tex e vi rimarrà nel futuro. TEX Live contiene diverse versioni estese di TEX:

e-TEX
aggiunge un insieme di nuove primitive (riguardanti l’espansione delle macro, la scansione dei caratteri, le classi di segnaposti, caratteristiche di debug aggiuntive ed altro ancora) e le estensioni TEX--XE T per la composizione tipografica bidirezionale. Di base, e-TEX è compatibile al 100% con l’ordinario TEX. Consulta texmf-dist/doc/etex/base/etex_man.pdf.
pdfTEX
parte dalle estensioni di e-TEX, aggiunge il supporto per la generazione di file PDF oltre che dei DVI e molte estensioni che non sono legate alla generazione dell’output. Questo programma è invocato dalla maggior parte dei formati, come etex, latex, pdflatex. Il suo sito web è http://www.pdftex.org/. Consulta texmf-dist/doc/pdftex/manual/pdftex-a.pdf per il manuale e texmf-dist/doc/pdftex/manual/samplepdf/samplepdf.tex per gli esempi d’uso di alcune delle sue caratteristiche.
LuaTEX
è il successore prescelto di pdfTEXed è quasi del tutto (ma non completamente) compatibile con i predecessori. È anche pensato per sostituire Aleph (vedi sotto), per quanto non sia ricercata la compatibilità tecnica. L’interprete Lua incorportato (http://www.lua.org/) permette soluzioni eleganti per molti problemi spinosi di TEX. Quando è invocato come texlua, si comporta come un interprete Lua autonomo ed è già usato in questo modo all’interno di TEX Live. Il suo sito web è http://www.luatex.org e il manuale di riferimento è texmf-dist/doc/luatex/luatexref-t.pdf.
XeTEX
aggiunge il supporto per l’input in Unicode e per i font OpenType e di sistema, implementato usando librerie di terze parti standard. Visita http://tug.org/xetex.
Omega (Omega)
è basato sull’Unicode (caratteri a 16 bit) e dunque consente di lavorare con quasi tutti gli alfabeti del mondo contemporaneamente. Supporta anche i cosiddetti “Omega Translation Process” (OTP, Processi di Traduzione Omega), per compiere trasformazioni complesse su input arbitrari. Omega non è più incluso in TEX Live come programma separato; è fornito soltanto Aleph:
Aleph
combina le estensioni Omega e e-TEX. Consulta texmf-dist/doc/aleph/base per una documentazione minima.

2.5 Altri rilevanti programmi in TEX Live

Seguono alcuni altri programmi di uso comune inclusi in TEX Live:

bibtex

supporto per la bibliografia.

makeindex, xindy

supporto per gli indici.

dvips

converte i DVI in PostScript.

xdvi

programma di anteprima dei DVI per l’X Window System.

dvilj

convertitore di DVI per la famiglia di stampanti HP LaserJet.

dviconcat, dviselect

tagliano ed incollano le pagine contenute nei file DVI.

dvipdfmx

converte i DVI in PDF, un approccio alternativo a pdfTEX (citato in precedenza). Consulta i pacchetti ps4pdf e pdftricks per ulteriori alternative.

psselect, psnup,

programmi di manipolazione dei PostScript.

texexec, texmfstart

processore ConTEXt e PDF.

tex4ht

convertitore da TEX a HTML (e a XML ed altro ancora).

2.6 Font in TEX Live

TEX Live è fornito con molti caratteri tipografici scalabili di alta qualità. Visita http://tug.org/fonts e texmf-dist/doc/fonts/free-math-font-survey.

3 Installazione

3.1 Avviare l’installatore

Per cominciare, procurati il DVD TEX Live oppure scarica l’installatore di rete di TEX Live ed individua il programma di installazione: install-tl per Unix, install-tl.bat per Windows.

Installatore di rete:
Scaricalo da CTAN, dal percorso systems/texlive/tlnet; l’indirizzo http://mirror.ctan.org/systems/texlive/tlnet ti reindirizzerà automaticamente al mirror aggiornato più vicino. Puoi scaricare sia install-tl.zip che può essere usato sotto Unix e Windows, sia il notevolmente più piccolo install-unx.tar.gz solo per Unix. Dopo averlo decompresso, install-tl e install-tl.bat si troveranno nella sotto directory install-tl.
DVD TEX Collection:
vai nella sua sotto directory texlive. Sotto Windows, il programma di installazione dovrebbe partire automaticamente quando inserisci il DVD. Puoi ottenere il DVD diventando un membro di un gruppo utenti TEX (caldamente consigliato, http://tug.org/usergroups.html) oppure acquistandolo separatamente (http://tug.org/store) o ancora masterizzandolo da te a partire dall’immagine ISO.

Visita http://tug.org/texlive/acquire.html per ulteriori informazioni ed altri metodi per ottenere il software.

Le sezioni seguenti spiegano l’avvio dell’installazione in maggiore dettaglio.

3.1.1 Unix

Di seguito, > denota il prompt della shell; l’input dell’utente è in grassetto. Il programma install-tl è uno script Perl. Il modo più semplice per avviarlo su un sistema compatibile Unix è il seguente:

> cd /percorso/verso/il/programma
> perl install-tl
In alternativa puoi invocare perl /percorso/verso/il/programma/install-lt, oppure ./install-tl se hai i permessi di esecuzione, ecc.; non ripeteremo tutte queste varianti. Potresti dover ingrandire la finestra di terminale affinché mostri l’intera schermata dell’installatore testuale (Figure 1).

Per eseguire l’installazione nella modalità GUI avanzata (figura 2; hai bisogno del modulo Perl/TK), usa:

> perl install-tl -gui

Per un elenco completo delle diverse opzioni:

> perl install-tl -help

Attenzione riguardo i permessi Unix: La tua umask nel momento dell’installazione sarà rispettata dall’installatore di TEX Live. Quindi se vuoi che l’installazione sia usabile da altri utenti oltre che te, sii sicuro che le tue impostazioni siano permissive a sufficienza, per esempio, umask 002. Per ulteriori informazioni riguardo umask, consulta la documentazione del tuo sistema.

Considerazioni speciali per Cygwin: Diversamente da altri sistemi Unix-compatibili, Cygwin non è preimpostato per includere tutti i programmi di cui l’installatore di TEX Live ha bisogno. Consulta la sezione 3.1.4 per i dettagli.

3.1.2 MacOSX

Come abbiamo accennato nella sezione 2.1, abbiamo preparato una distribuzione separata per Mac OS X chiamata MacTEX (http://tug.org/mactex). Su Mac OS X raccomandiamo di usare l’installatore nativo di MacTEX al posto dell’installatore di TEX Live in quanto quello nativo esegue alcuni aggiustamenti specifici per il Mac, in particolare per consentire con semplicità il passaggio tra le varie distribuzioni TEX per Mac OS X (MacTEX, gwTEX, Fink, MacPorts, …).

MacTEX è strettamente basato su TEX Live e le rispettive strutture delle directory sono esattamente le stessa. Il primo aggiunge alcune ulteriori cartelle con documentazione e applicazioni specifiche per il Mac.

3.1.3 Windows

Se stai usando l’installatore di rete oppure se l’installatore su DVD non parte automaticamente, fai doppio click su install-tl.bat. Per avere maggiori opzioni di configurazione, come la selezione di specifiche collezioni di pacchetti, esegui install-tl-advanced.bat.

Puoi anche avviare l’installatore dal prompt dei comandi. Qui sotto, > denota il prompt; l’input dell’utente è in grassetto. Se ti trovi nella cartella dell’installatore, esegui semplicemente:

> install-tl

In aternativa puoi invocarlo con un percorso assoluto, come:

> D:\texlive\install-tl
per il DVD TEX Collection, supponendo che D: sia il lettore DVD. La figura 3 mostra l’installazione guidata, che è quella preimpostata per Windows.

Per installare in modalità testuale, usa:

> install-tl -no-gui

Per un elenco completo delle varie opzioni:

> install-tl -help


  Installing TeX Live 2009 from: ...
  Platform: i386-linux => ’Intel x86 with GNU/Linux’
  Distribution: live (uncompressed)
  ...
   Detected platform: Intel x86 with GNU/Linux
  
   <B> binary systems: 1 out of 14
  
   <S> Installation scheme (scheme-full)
       83 collections out of 84, disk space required: 1882 MB
  
   Customizing installation scheme:
     <C> standard collections
     <L> language collections
  
   <D> directories:
     TEXDIR (the main TeX directory):
       /usr/local/texlive/2009
     TEXMFLOCAL (directory for site-wide local files):
       /usr/local/texlive/texmf-local
     TEXMFSYSVAR (directory for variable and automatically generated data):
       /usr/local/texlive/2009/texmf-var
     TEXMFSYSCONFIG (directory for local config):
       /usr/local/texlive/2009/texmf-config
     TEXMFHOME (directory for user-specific files):
       ~/texmf
  
   <O> options:
     [ ] use letter size instead of A4 by default
     [X] create all format files
     [X] install macro/font doc tree
     [X] install macro/font source tree
     [ ] create symlinks to standard directories
  
   <V> set up for running from DVD
  
  Other actions:
   <I> start installation to hard disk
   <H> help
   <Q> quit

Figura 1: Schermata principale dell’installatore testuale (GNU/Linux)



pict

Figura 2: Schermata dell’installatore avanzato GUI (GNU/Linux)



pict

Figura 3: Schermata dell’installazione guidata (Windows)


3.1.4 Cygwin

L’installatore TEX Live supporta soltanto Cygwin 1.7. Prima di iniziare l’installazione, usa il programma setup.exe di Cygwinper installare i pacchetti perl e wget, a meno che tu non lo abbia già fatto. I seguenti pacchetti aggiuntivi sono raccomandati:

3.1.5 L’installatore testuale

La figura 1 mostra la schermata principale della modalità testuale sotto Unix. L’installatore testuale è quello preimpostato sotto Unix.

Questo è l’unico installatore a riga di comando; non c’è alcun supporto per il movimento del cursore di inserimento. Ad esempio, non puoi muoverti tra le caselle di spunta o i campi di inserimento. Semplicemente digiti qualcosa (MAIUSCOLE e minuscole sono differenti) al prompt, premi il tasto Invio e l’intera schermata del terminale sarà aggiornata, con il contenuto alterato.

L’interfaccia dell’installatore testuale è così primitiva per una ragione: è progettata per funzionare sul maggior numero di piattaforme possibile, anche con una versione minimale di Perl.

3.1.6 L’installatore grafico avanzato

La figura 2 mostra l’installatore grafico avanzato sotto GNU/Linux. Al di là dell’uso di pulsanti e menu, questo installatore non differisce di molto da quello testuale (figura 1).

Questa modalità può essere invocata esplicitamente tramite

> install-tl -gui=perltk

3.1.7 La semplicistica installazione guidata

Sotto Windows, è implicito eseguire il più semplice metodo di installazione che potessimo escogitare, chiamato “installazione guidata”. Installa tutto e pone quasi nessuna domanda. Se vuoi personalizzare la tua installazione, dovresti lanciare uno degli altri installatori.

Questa modalità può essere invocata esplicitamente con

> install-tl -gui=wizard

3.2 Eseguire l’installatore

L’installatore è pensato per essere quasi del tutto ovvio, ma seguono alcune note riguardo varie opzioni e sottomenu.

3.2.1 Menu delle architetture (solo Unix)


  Available sets of binaries:
  ===============================================================================
  
     a [ ] alpha-linux      DEC Alpha with GNU/Linux
     b [ ] i386-cygwin      Intel x86 with Cygwin
     c [X] i386-linux       Intel x86 with GNU/Linux
     d [ ] i386-netbsd      Intel x86 with NetBSD
     e [ ] i386-solaris     Intel x86 with Sun Solaris
     f [ ] mips-irix        SGI IRIX
     g [ ] powerpc-aix      PowerPC with AIX
     h [ ] powerpc-linux    PowerPC with GNU/Linux
     i [ ] sparc-linux      Sparc with GNU/Linux
     j [ ] sparc-solaris    Sparc with Solaris
     k [ ] universal-darwin universal binaries for MacOSX/Darwin
     l [ ] win32            Windows
     m [ ] x86_64-linux     x86_64 with GNU/Linux

Figura 4: Menu delle architetture


La figura 4 mostra il menu delle architetture in modalità testuale. Di base, saranno installati solo gli eseguibili per la tua piattaforma. Da questo menu puoi selezionare l’installazione degli eseguibili anche per altre architetture. Questa opzione è utile se condividi una struttura TEX in una rete di macchine eterogenee, oppure per una macchina con due sistemi operativi.

3.2.2 Selezionare cosa sarà installato


  Select a scheme:
  ===============================================================================
   a [ ] basic scheme (plain and LaTeX)
   b [ ] ConTeXt scheme
   c [X] full scheme (everything)
   d [ ] GUST TeX Live scheme
   e [ ] GUTenberg TeX Live scheme
   f [ ] medium scheme (plain, latex, recommended packages, some languages)
   g [ ] minimal scheme (plain only)
   h [ ] Omega scheme
   i [ ] teTeX scheme (more than medium, but nowhere near full)
   j [ ] XML scheme
   k [ ] custom selection of collections

Figura 5: Menu degli schemi


La figura 5 mostra il menu degli schemi di TEX Live; da qui scegli uno “schema”, che è un insieme di collezioni di pacchetti. Lo schema predefinito full installa tutto ciò che è disponibile, ma puoi anche scegliere lo schema basic per un sistema piccolo, minimal per scopi di test e medium o teTeX per ottenere una via di mezzo. Ci sono anche ulteriori schemi specializzati e specifici per un particolare paese.


pict

Figura 6: Menu delle collezioni


Puoi raffinare la tua scelta dello schema con i menu “Collezioni di base” e “Collezioni di lingue” (figura 6, mostrati, per cambiare, in modalità GUI).

Le collezioni stanno ad un livello di dettaglio successivo rispetto agli schemi —  in pratica, uno schema consiste in svariate collezioni, una collezione consta di uno o più pacchetti e un pacchetto (il più basso livello di raggruppamento in TEX Live) contiene gli effettivi file di macro TEX, i file dei font e così via.

Se desideri un maggiore controllo di quanto il menu delle collezioni fornisca, puoi usare il programma tlmgr dopo l’installazione (consulta la sezione 6); usando tale programma, puoi controllare l’installazione al livello dei singoli pacchetti.

3.2.3 Percorsi di destinazione

La strutturazione predefinita è descritta nella sezione 2.3, p. 8. La posizione predefinita di TEXDIR è diversa sotto Windows (%SystemDrive%\texlive\2009) e Unix (/usr/local/texlive/2009).

La motivazione principale per cambiare questa impostazione è la mancanza dei permessi di scrittura su tale percorso. Non devi essere root oppure un amministratore per installare TEX Live, ma hai bisogno dell’accesso in scrittura sulla directory di destinazione.

Una scelta alternativa ragionevole è quella di una directory al di sotto della tua directory di home, specialmente se sara il solo utilizzatore. Usa “~” per indicare la tua home, come in “~/texlive/2009”.

Raccomandiamo di includere l’anno nel nome del percorso, così da consentire il mantenimento di diverse edizioni di TEX Live fianco a fianco (potresti voler creare un nome indipendente dalla versione, come /usr/local/texlive-cur, attraverso un collegamento simbolico, che puoi successivamente aggiornare dopo aver testato la nuova edizione).

Cambiare TEXDIR nell’installatore provocherà anche il cambiamento di TEXMFLOCAL, TEXMFSYSVAR e TEXMFSYSCONFIG.

TEXMFHOME è la posizione che raccomandiamo per i file di macro e i pacchetti personali. Il suo valore predefinito è ~/texmf. A differenza di quanto accade in TEXDIR, qui un ~ è mantenuto all’interno dei file di configurazione creati, in quanto è utile far riferimento alla directory di home di chiunque esegua TEX(e non di chi installi TEX Live). Si traduce in $HOME sotto Unix e %USERPROFILE% sotto Windows.

3.2.4 Opzioni


   <P> use letter size instead of A4 by default: [ ]
   <F> create format files:                      [X]
   <D> install font/macro doc tree:              [X]
   <S> install font/macro source tree:           [X]
   <L> create symlinks in standard directories:  [ ]
              binaries to:
              manpages to:
                  info to:

Figura 7: Menu delle opzioni (Unix)


La figura 7 mostra il menu delle opzioni in modalità testuale. Ulteriori informazioni:

Usa come predefinito il formato di pagina lettera al posto dell’A4:
La selezione del formato di carta predefinito. Ovviamente, i singoli documenti possono e dovrebbero specificare una particolare dimensione del foglio, se desiderato.
Crea i file di formato:
Per quanto i file di formato non necessari richiedono tempo per essere generati e spazio su disco per essere memorizzati, è comunque raccomandato di lasciare questa opzione attiva: se la disattivi, allora i file dei formati saranno generati nella directory TEXMFVAR privata di ciascun utente a seconda delle necessità. In quella posizione, i formati non saranno aggiornati automaticamente se (supponiamo) gli eseguibili o i modelli di sillabazione fossero aggiornati nell’installazione e così si potrebbe arrivare ad avere file incompatibili.
Installa  per font e macro:
Queste opzioni consentono di omettere lo scaricamento e l’installazione della documentazione e dei file sorgenti presenti nella maggior parte dei pacchetti. Non è raccomandata.
Crea i collegamenti nelle directory di sistema
(solo Unix): Questa opzione scavalca la necessità di cambiare le variabili di ambiente. Senza di essa, le directory di TEX Live devono solitamente essere aggiunte alle variabili PATH, MANPATH e INFOPATH. Hai bisogno dei permessi di scrittura sulle directory di destinazione. È fortemente suggerito di non sovrascrivere un sistema TEX fornito con il tuo sistema adoperando questa opzione. È pensata principalmente per accedere al sistema TEX attraverso directory che sono già note agli utenti, come /usr/local/bin, che già non contengano alcun file di TEX.

Quando tutte le impostazioni sono come desideri, puoi digitare “I” per avviare il processo di installazione. Quando è completo, passa alla sezione 3.4 per leggere cos’altro devi fare, se ce n’è bisogno.

3.2.5 Configurazione per l’esecuzione diretta dal DVD (solo modalità testuale)

Digita “V” per selezionare questa opzione. Il menu principale cambia in qualcosa di simile alla figura 8.


  ======================> TeX Live installation procedure <=====================
  ...
   <D> directories:
     TEXDIRW (Writable root):
       !! default location: /usr/local/texlive/2009
       !! is not writable, please select a different one!
     TEXMFLOCAL (directory for site-wide local files):
       /usr/local/texlive/texmf-local
     TEXMFSYSVAR (directory for variable and automatically generated data):
       /usr/local/texlive/2009/texmf-var
     TEXMFSYSCONFIG (directory for local config):
       /usr/local/texlive/2009/texmf-config
     TEXMFHOME (directory for user-specific files):
       ~/texmf
  
   <O> options:
     [ ] use letter size instead of A4 by default
     [X] create all format files
  
   <V> set up for installing to hard disk
  
  Other actions:
   <I> start installation for running from DVD
   <H> help
   <Q> quit

Figura 8: Il menu principale con l’opzione “dal DVD” impostata


Nota i cambiamenti: tutte le opzioni riguardanti le cose da installare sono scomparse e la sezione sulle directory ora parla di TEXDIRW o di “destinazione scrivibile”. Anche l’opzione sui collegamenti simbolici è scomparsa.

L’installatore creerà ancora le varie directory e i file di configurazione, ma non copierà texmf o texmf-dist sull’hard disk.

La configurazione post installazione per Unix sarà leggermente più complessa, perché adesso la strutturazione delle directory devia da quella predefinita; consulta la sezione 3.4.

Questa opzione non è presente nell’installatore grafico, ma è disponibile sia sotto Unix che sotto Windows. Gli utenti di Windows devono avviare l’installatore da un prompt dei comandi, consulta la sezione 3.3.

La sezione 5 descrive un modo ancora più portabile per eseguire TEX Live, che non effettua né richiede alcun cambiamento alla configurazione del sistema, ma non consente neppure alcuna configurazione.

3.3 Opzioni della riga di comando di install-tl

Digita

> install-tl -help
per ottenere un elenco delle opzioni della riga di comando. Sia - che -- possono essere usati per introdurre i nomi delle opzioni. Ecco le più comuni:

-gui

Se possibile, usa l’installatore grafico. Questa opzione richiede il modulo Perl/Tk (http://tug.org/texlive/distro.html#perltk); se Perl/Tk non è disponibile, l’installazione prosegue in modalità testuale.

-no-gui

Forza l’uso dell’installatore testuale, anche sotto Windows; hai bisogno di questa opzione se desideri un’installazione “dal DVD”, dato che non è disponibile nella GUI.

-lang LL

Specifica la lingua dell’interfaccia dell’installatore sotto forma del codice standard a due lettere LL. Le lingue al momento supportate sono: Inglese (en, predefinito), Tedesco (de), Francese (fr), Olandese (nl), Polacco (pl), Sloveno (sl), Vietnamese (vi) e Italiano (it). L’installatore cerca di determinare da solo la lingua corretta, ma se fallisce, oppure se la lingua corretta non è disponibile, allora passa all’uso dell’Inglese.

-profile file

L’installatore cerca sempre di scrivere un file texlive.profile nella sotto directory tlpkg della tua installazione. Questa opzione dice all’installatore di riusare tale file di profilo, così che tu possa installare in sequenza su sistemi successivi, riproducendo le scelte fatte in una precedente installazione.

-repository url-o-directory

Specifica l’archivio dei pacchetti da cui installare; vedi più avanti.

3.3.1 L’opzione -repository

L’archivio dei pacchetti predefinito è una delle copie di CTAN scelto automaticamente tramite http://mirror.ctan.org.

Se vuoi modificare questa scelta, il valore di questa opzione può essere un url che comincia per ftp:, http: o file:/, oppure può essere un semplice percorso ad una directory (quando specifichi un indirizzo http: o ftp:, il carattere finale “/” e l’eventuale “/tlpkg” conclusivo sono ignorati).

Per esempio, puoi scegliere una particolare copia di CTAN con qualcosa del tipo: http://ctan.example.org/tex-archive/systems/texlive/tlnet/, sostituendo il vero nome del sito e il suo percorso iniziale verso la copia di CTAN a ctan.example.org. L’elenco delle copie di CTAN è mantenuto all’indirizzo http://ctan.org/mirrors.

Se l’argomento fornito è un file (sia tramite un percorso che tramite l’url file:/), sono usati i file compressi in una sotto directory archive del percorso (i file sono disponibili anche se non compressi).

3.4 Azioni successive all’installazione

Potrebbe essere necessario compiere alcune azioni dopo l’installazione.

3.4.1 Windows

Ma sotto Windows, l’installatore si prende cura di tutto.

3.4.2 Se i collegamenti simbolici sono stati creati

Se hai scelto di creare i collegamenti simbolici nelle directory di sistema (accennato nella sezione 3.2.4), allora non c’è bisogno di modificare le variabili d’ambiente.

3.4.3 Variabili d’ambiente per Unix

La directory degli eseguibili per la tua piattaforma deve essere aggiunta al percorso di ricerca. Ogni piattaforma supportata ha la propria sotto directory all’interno di TEXDIR/bin. Vedi la figura 4 per la lista delle sotto directory e le piattaforme corrispondenti.

Puoi anche aggiungere le directory della documentazione in pagine di manuale e Info ai loro rispettivi percorsi di ricerca, se vuoi che gli strumenti di sistema le trovino. Le pagine di manuale potrebbero essere trovate automaticamente dopo l’aggiunta al PATH.

Per le shell compatibili con la Bourne, come bash, e usando GNU/Linux per Intel x86 e le directory predefinite come esempio, il file da modificare potrebbe essere $HOME/.profile (o un qualunque file che venga letto da .profile) e le linee da aggiungere diventerebbero simili alle seguenti:

  PATH=/usr/local/texlive/2009/bin/i386-linux:$PATH; export PATH
  MANPATH=/usr/local/texlive/2009/texmf/doc/man:$MANPATH; export MANPATH
  INFOPATH=/usr/local/texlive/2009/texmf/doc/info:$INFOPATH; export INFOPATH

Per csh o tcsh, il file da modificare tipicamente è $HOME/.cshrc e le linee da aggiungere potrebbero essere come:

  setenv PATH /usr/local/texlive/2009/bin/i386-linux:$PATH
  setenv MANPATH /usr/local/texlive/2009/texmf/doc/man:$MANPATH
  setenv INFOPATH /usr/local/texlive/2009/texmf/doc/info:$INFOPATH

Se già hai delle linee così fatte da qualche parte in uno dei file citati, naturalmente devi semplicemente unirci le directory di TEX Live come è più opportuno.

3.4.4 Variabili d’ambiente: configurazione globale

Se vuoi che queste modifiche siano globali oppure vuoi che si applichino per ciascun nuovo utente aggiunto al sistema, allora devi cavartela da solo; c’è semplicemente troppa varietà tra i diversi sistemi nel come e dove queste cose siano modificate.

I nostri due suggerimenti sono i seguenti: 1) potresti controllare il file /etc/manpath.config e, se presente, aggiungere linee del tipo

  MANPATH_MAP /usr/local/texlive/2009/bin/i386-linux \
              /usr/local/texlive/2009/texmf/doc/man

E 2) controllare il file /etc/environment che potrebbe definire il percorso di ricerca ed altre variabili di ambiente predefinite.

Noi creiamo anche un collegamento simbolico chiamato man in ogni directory degli eseguibili (sotto Unix). Alcuni programmi man, come lo standard man di Mac OS X, lo individueranno automaticamente, ovviando alla necessità di una qualsiasi impostazione per le pagine di manuale.

3.4.5 Configurazione dei font per XeTEX

Se hai installato il pacchetto xetex su un sistema compatibile Unix, hai bisogno di configurare il tuo sistema se desideri che XeTEX sia in grado di trovare i font distribuiti con TEX Live. Per facilitare questo compito, quando il pacchetto xetex è installato (sia durante l’installazione iniziale che successivamente), il file di configurazione necessario è creato in TEXMFSYSVAR/fonts/conf/texlive-fontconfig.conf.

Per impostare i font di TEX Live per l’uso nell’intero sistema (assumendo che tu abbia gli opportuni privilegi), procedi come segue:

  1. Copia il file texlive-fontconfig.conf in /etc/fonts/conf.d/09-texlive.conf.
  2. Esegui fc-cache -fsv.

Se non hai i privilegi sufficienti per completare i passi precedenti, in alternativa puoi fare quanto segue per rendere i font di TEX Live disponibili solo a te stesso come utente di XeTEX:

  1. Copia il file texlive-fontconfig.conf in ~/.fonts.conf, dove ~ è la tua directory di home.
  2. Esegui fc-cache -fv.

3.4.6 Esecuzione dal DVD

Normalmente, un programma di TEX Live consulta il file texmf.cnf per trovare la posizione delle varie directory. La ricerca di questo file avviene in alcuni percorsi relativi alla posizione del programma stesso. Tuttavia, questo schema si spezza quando un programma è eseguito dal DVD: il DVD è di sola lettura. Alcuni dei percorsi che devono essere registrati in texmf.cnf sono noti solo al momento dell’installazione, quindi questo file non può trovarsi sul DVD e deve essere posizionato da qualche altra parte. Tutto ciò rende necessario definire una variabile d’ambiente TEXMFCNF che dica ai programmi di TEX Live in quale directory trovare texmf.cnf. È ancora necessario modificare la variabile d’ambiente PATH, come descritto precedentemente.

Alla fine dell’installazione, l’installatore dovrebbe aver scritto un messaggio in cui dà il valore a cui la variable TEXMFCNF dovrebbe essere impostata. Nel caso tu lo abbia perso: questo valore è $TEXMFSYSVAR/web2c. Per l’impostazione predefinita, /usr/local/texlive/2009/texmf-var/web2c, hai bisogno delle seguenti righe

  TEXMFCNF=/usr/local/texlive/2009/texmf-var/web2c; export TEXMFCNF

oppure, per csh/tcsh:

  setenv TEXMFCNF /usr/local/texlive/2009/texmf-var/web2c

Questa opzione è molto utile quando vuoi eseguire TEX Live sul tuo sistema, ma non hai abbastanza spazio su disco per installarlo. Se vuoi una TEX Live davvero “portatile” che sia auto contenuta, ad esempio per una penna USB, consulta la sezione 5.

3.4.7 ConTEXt Mark IV

Il “vecchio” ConTEXt dovrebbe funzionare senza alcuna variazione. Il nuovo ConTEXt “Mark IV” richiederà un’impostazione manuale; consulta la pagina http://wiki.contextgarden.net/Running_Mark_IV.

3.4.8 Integrare le macro locali e personali

Questo aspetto è stato già menzionato implicitamente nella sezione 2.3: TEXMFLOCAL (/usr/local/texlive/texmf-local o %SystemDrive%\texlive\texmf-local, come predefiniti) è pensata per i font e le macro installati localmente nell’intero sistema; e TEXMFHOME ($HOME/texmf o %USERPROFILE%\texmf, come predefiniti) è per i font e le macro personali. Queste directory sono pensate per restare fisse da una edizione all’altra e il loro contenuto è visto automaticamente da ogni nuova edizione di TEX Live. Quindi, è meglio evitare di modificare la definizione di TEXMFLOCAL dall’essere troppo lontana dalla directory principale di TEX Live, altrimenti dovrai modificare manualmente le future edizioni.

In entrambe le locazioni, i file dovrebbero essere posizionati nelle proprie opportune sotto directory; visita http://tug.org/tds o consulta texmf/web2c/texmf.cnf. Ad esempio, il file di una classe o un pacchetto LATEX andrebbero posizionati in TEXMFLOCAL/tex/latex o TEXMFHOME/tex/latex, oppure in una sotto directory di uno di questi.

TEXMFLOCAL richiede un database dei nomi dei file aggiornato, altrimenti i file non saranno trovati. Puoi aggiornarlo con il comando mktexlsr o utilizzando il pulsante “Inizializza nuovamente il database dei file” dalla pagina di configurazione di tlmgr in modalità GUI.

3.4.9 Integrare font di terze parti

Sfortunatamente, si tratta di un argomento ingarbugliato. Dimenticatene a meno che tu non voglia scavare nei numerosi dettagli dell’installazione di TEX. Non dimenticare per prima cosa di controllare cosa ricevi liberamente: consulta la sezione 2.6.

Una possibile alternativa è quella di usare XeTEX (consulta la sezione 2.4), che consente di usare i font del sistema operativo senza alcuna installazione in TEX.

Se comunque hai bisogni di integrare font di terze parti, visita la pagina http://tug.org/fonts/fontinstall.html dove descriviamo la procedura al meglio delle nostre possibilità.

3.5 Collaudare l’installazione

Dopo aver installato TEX Live nel modo migliore, vorrai naturalmente collaudarla, così da poter iniziare a creare bellissimi documenti e/o font.

Questa sezione fornisce alcune procedure elementari per verificare che il nuovo sistema funzioni. Qui forniamo i comandi per Unix; sotto Mac OS X e Windows, è più probabile che eseguirai le prove tramite un’interfaccia grafica, ma i principi sono gli stessi.

  1. Assicurati per prima cosa di poter eseguire il programma tex:

    > tex --version
    TeX 3.1415926 (TeX Live 2009)
    kpathsea version 5.0.0
    Copyright 2009 D.E. Knuth.
    ...
    Se la risposta è “comando non trovato” al posto delle informazioni sulla versione e sul copyright, oppure se la versione riportata è vecchia, molto probabilmente nel tuo PATH non hai la giusta sotto directory bin. Consulta le informazioni sulle impostazioni dell’ambiente a p. 39.
  2. Componi un file LATEX elementare:

    > latex sample2e.tex
    This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009)
    ...
    Output written on sample2e.dvi (3 pages, 7484 bytes).
    Transcript written on sample2e.log.
    Se il comando fallisce nel trovare sample2e.tex oppure altri file, molto probabilmente hai qualche interferenza proveniente da vecchie variabili o vecchi file di configurazione: noi raccomandiamo di cominciare eliminando tutte le variabili d’ambiente legate a TEX (per una analisi approfondita, puoi chiedere a TEX di produrre un rapporto su cosa esattamente cerchi e trovi; consulta la sezione “Risoluzione dei problemi” a pagina 66).
  3. Visualizza un’anteprima del risultato:

    > xdvi sample2e.dvi    # Unix
    > dviout sample2e.dvi  # Windows
    Dovresti vedere una nuova finestra con un bel documento che spiega alcuni fondamenti di LATEX (vale la pena di leggerlo, comunque, se sei nuovo di TEX). Devi avere X in esecuzione affinché xdvi funzioni; se non è così oppure se la tua variabile d’ambiente DISPLAY è male impostata, otterrai un errore ‘Can’t open display’.
  4. Crea un file PostScript per la stampa o la visualizzazione:

    > dvips sample2e.dvi -o sample2e.ps
  5. Crea un file PDF al posto di un DVI; questo comando elabora il file .tex e scrive direttamente un PDF:

    > pdflatex sample2e.tex
  6. Visualizza un’anteprima del PDF:

    > gv sample2e.pdf
    o:
    %or:
    > xpdf sample2e.pdf
    gv, né xpdf sono inclusi in TEX Live, quindi devi installarli separatamente. Visita, rispettivamente, http://www.gnu.org/software/gv e http://www.foolabs.com/xpdf. C’è un’infinità di altri visualizzatori PDF. Per Windows, noi raccomandiamo di provare Sumatra PDF (http://blog.kowalczyk.info/software/sumatrapdf).
  7. Ulteriori file di prova che potresti trovare utili, in aggiunta a sample2e.tex:

    small2e.tex

    Un documento più semplice di sample2e, per ridurre la dimensione dell’input qualora si riscontrino problemi.

    testpage.tex

    Verifica se la tua stampante introduce un qualche margine.

    nfssfont.tex

    Per stampare tabelle e prove di font.

    testfont.tex

    Ancora per le tabelle dei font, ma usando plain TEX.

    story.tex

    Il più canonico dei file di prova per (plain) TEX. Devi digitale ‘\bye’ al prompt * dopo aver lanciato ‘tex story.tex’.

  8. Se hai installato il pacchetto xetex, puoi verificare che riesca ad accedere ai font di sistema in questo modo:

    > xetex opentype-info.tex
    This is XeTeX, Version 3.1415926
    ...
    Output written on opentype-info.pdf (1 page).
    Transcript written on opentype-info.log.
    Se ottieni un messaggio di errore che riporta “Invalid fontname ‘Latin Modern/ICU…”, allora devi configurare il tuo sistema in modo tale che XeTEX possa trovare i font distribuiti con TEX Live. Consulta la sezione 3.4.5.

3.6 Collegamenti ad ulteriori software scaricabili

Se sei nuovo di TEX oppure in alternativa hai bisogno di aiuto nella scrittura di documenti TEX o LATEX, visita la pagina http://tug.org/begin.html per alcune risorse introduttive.

Ecco i collegamenti ad alcuni altri strumenti che puoi pensare di installare:

Ghostscript
http://www.cs.wisc.edu/~ghost/
Perl
http://www.perl.org/ con i pacchetti supplementari da CPAN, http://www.cpan.org/
ImageMagick
http://www.imagemagick.com, per l’elaborazione e la conversione di immagini
NetPBM
http://netpbm.sourceforge.net/, anche questo per le immagini.
Editor orientati a TEX
C’è un’ampia scelta ed è una questione di gusto dell’utente. Eccone una selezione (alcuni sono solo per Windows).

Per un elenco molto più lungo di pacchetti e programmi, visita http://tug.org/interest.html.

4 Installazioni di rete

TEX Live è stato progettato per essere condiviso tra diversi utenti ed anche tra diversi sistemi attraverso una rete. Con una strutturazione delle directory prestabilita, non sono configurati percorsi rigidi: le posizioni dei file necessari ai programmi di TEX Live sono individuate in relazione a quelle dei programmi. Puoi trovare la conferma di questo comportamento nel file di configurazione principale $TEXMFMAIN/web2c/texmf.cnf, che contiene linee come

  TEXMFMAIN = $SELFAUTOPARENT/texmf
  ...
  TEXMFLOCAL = $SELFAUTOPARENT/../texmf-local

Ciò significa che, per ottenere una configurazione funzionante, è sufficiente aggiungere la directory degli eseguibili di TEX Live adatti alla propria piattaforma nel percorso di ricerca.

Per la stessa ragione, puoi anche installare TEX Live localmente e muovere in un secondo momento l’intera gerarchia verso una locazione di rete.

Per Windows, uno script di installazione di rete esemplificativo chiamato w32client può essere scaricato da http://tug.org/texlive/w32client.html. Questo script crea le impostazioni e i collegamenti nei menu per usare una installazione di TEX Live esistente su una LAN. Registra anche un disinstallatore w32unclient, disponibile nello stesso file zip. Visita la pagina web indicata per maggiori informazioni.

5 TEX Live su DVD e USB per la massima portabilità

L’opzione “esecuzione dal DVD” descritta nella sezione 3.2.5 va bene se il sistema ti appartiene, ma se sei solo un utente ospite del sistema di qualcun altro allora è probabile che tu voglia qualcosa con il minor numero di effetti collaterali.

All’apertura del DVD TEX Live oppure nella sotto directory texlive del DVD TEX Collection ci sono uno script tl-portable (Unix) e un file batch tl-portable.bat (Windows) che avviano una seconda shell/ prompt dei comandi in cui l’ambiente è stato impostato per accedere direttamente a TEX Live sul DVD.

Alla prima esecuzione, alcuni file saranno generati in una directory ~/.tlportable2009, dunque sarà necessario attendere un po’ di tempo. Alle esecuzioni successive, comunque, l’avvio sarà quasi istantaneo.

Il resto del sistema non avrà alcuna informazione su TEX Live. Se vuoi che il tuo editor sappia della presenza di TEX Live, puoi avviarlo in parallelo da una seconda sessione di tl-portable.

Puoi usare tl-portable anche per eseguire TEX Live su una penna USB. In questo caso copia tutti i file che si trovano direttamente nella directory di TEX Live e il contenuto (almeno) delle directory bin, texmf, texmf-dist e tlpkg sulla penna. Questa operazione potrebbe richiedere del tempo! Se stai copiando su una penna USB formattata come FAT32, assicurati di dereferenziare i collegamenti simbolici (cp -L). Se sulla penna è presente una directory texmf-local, questa sarà individuata e usata.

A questo punto esegui tl-portable dalla penna, come descritto sopra. In questo caso, lo script si accorgerà che la penna è scrivibile e la userà per i file generati. Puoi anche masterizzare i contenuti della penna, comprensivi dei file generati, su un DVD se ritieni che sia più conventiente (ad esempio) per consegnarlo ad altri.

6 tlmgr: gestire la tua installazione


pict

Figura 9: tlmgr in modalità GUI. L’elenco dei pacchetti/collezioni/schemi è mostrato solo dopo aver premuto il pulsante “Carica”.



pict

Figura 10: tlmgr in modalità GUI: pagina di configurazione


TEX Live include un programma chiamato tlmgr per gestire TEX Live dopo l’installazione iniziale. I programmi updmap, fmtutil e texconfig sono ancora inclusi e saranno mantenuti nel futuro, ma tlmgr è ora l’interfaccia preferita. Le sue funzionalità includono:

Attenzione: tlmgr non è stato progettato o collaudato con le installazioni che eseguono i programmi dal DVD.

6.1 Modalità GUI di tlmgr

tlmgr può essere avviato in modalità GUI con

> tlmgr -gui
oppure sotto Windows tramite il menu Start: Start, Programmi, TeX Live 2009, TeX Live Manager. Dopo aver premuto il pulsante “Carica” il programma mostra un elenco dei pacchetti disponibili ed installati —  questi ultimi hanno un “(i)” anteposto. Ovviamente assumiamo che il percorso di installazione attuale sia valido e accessibile.

La figura 10 mostra la pagina di configurazione.

6.2 Esempi di esecuzioni di tlmgr dalla riga di comando

Dopo l’installazione iniziale, puoi aggiornare il tuo sistema alle ultime versioni disponibili con:

> tlmgr update -all
Se l’operazione ti rende nervoso, prova prima

> tlmgr update -all -dry-run
o (less prolisso):

> tlmgr update -list

Questo esempio più complesso aggiunge una collezione, per il motore XeTEX, da una directory locale:

> tlmgr -repository /local/mirror/tlnet install collection-xetex
Genera il seguente risultato (ridotto):
  install: collection-xetex
  install: arabxetex
  ...
  install: xetex
  install: xetexconfig
  install: xetex.i386-linux
  running post install action for xetex
  install: xetex-def
  ...
  running mktexlsr
  mktexlsr: Updating /usr/local/texlive/2009/texmf/ls-R...
  ...
  running fmtutil-sys --missing
  ...
  Transcript written on xelatex.log.
  fmtutil: /usr/local/texlive/2009/texmf-var/web2c/xetex/xelatex.fmt installed.

Come puoi vedere, tlmgr installa le dipendenze e si occupa di ogni azione necessaria dopo l’installazione, incluso l’aggiornamento del database dei nomi dei file e la generazione (o rigenerazione) dei formati. Nell’esempio precedente, abbiamo generato nuovi formati per XeTEX.

Per ottenere la descrizione di un pacchetto (o di una collezione o di uno schema):

> tlmgr show collection-latexextra
che produce
  package:    collection-latexextra
  category:   Collection
  shortdesc:  LaTeX supplementary packages
  longdesc:   A large collection of add-on packages for LaTeX.
  installed:  Yes
  revision:   14675

Ultimo e più importante, per ottenere la documentazione completa, visita http://tug.org/texlive/tlmgr.html oppure esegui:

> tlmgr -help

7 Note relative a Windows

TEX Live ha un singolo programma di installazione che è eseguito sia sotto Windows che sotto Unix. L’unico modo per ottenere questo è stato l’abbandono del supporto per le vecchie versioni di Windows, così adesso TEX Live può essere installato solo su Windows 2000 e successivi.

7.1 Funzionalità specifiche per Windows

Sotto Windows, l’installatore fa alcune cose in più:

Menu e collegamenti.
Un nuovo sotto menu del menu Start, chiamato “TEX Live”, viene creato e contiene le voci per alcuni programmi GUI (tlmgr, texdoctk, il visualizzatore PostScript PS_View —  psv) e diversa documentazione. PS_View ha anche un collegamento sul desktop sul quale trascinare i file PostScript da visualizzare.
Impostazione automatica delle variabili d’ambiente.
Non sono richieste procedure di configurazione manuali.
Disinstallatore.
L’installatore crea una voce sotto “Installa/Rimuovi Programmi” per TEX Live. Aprendo la pagina di disinstallazione di tlmgr si viene informati di ciò.

7.2 Software aggiuntivo incluso sotto Windows

Un’installazione TEX Live per essere completa ha bisognod di alcuni pacchetti di supporto che non si trovano abitualmente su una macchina Windows. TEX Live fornisce questi pezzi mancanti:

Perl e Ghostscript.
A causa dell’importanza di Perl e Ghostscript, TEX Live include una copia “nascosta” di questi programmi. I programmi di TEX Live che ne hanno bisogno sanno dove trovarli, ma non ne tradiscono la presenza tramite variabili d’ambiente o impostazioni sul registro di sistema. Non si tratta di installazioni complete e non dovrebbero interferire con installazioni nel sistema di Perl o Ghostscript.
PS_View.
È installato anche PS_View, un visualizzatore di file PostScript e PDF; vedi la figura 11.


pict
Figura 11: PS_View: ingrandimenti elevatissimi disponibili!


dviout.
È installato anche dviout, un visualizzatore di DVI. La prima volta che visualizzi i file con dviout, saranno creati dei font in quanto quelli adatti allo schermo non sono installati. Dopo un po’, avrai creato la maggior parte dei font che usi e raramente vedrai la finestra di creazione. Ulteriori informazioni possono essere trovate nella guida (caldamente raccomandata).
TeXworks.
TEXworks è un editor orientato a TEX con un visualizzatore per PDF incorporato. È fornito già preconfigurato per TEX Live.
Strumenti a riga di comando.
Assieme ai soliti eseguibili per TEX Live vengono installate alcune versioni per Windows di tipici programmi Unix a riga di comando. Questi programmi includono gzip, unzip e gli strumenti a riga di comando della suite xpdf. Il visualizzatore xpdf non è disponibile per Windows. Come alternativa, puoi scaricare Sumatra PDF, che è basato su xpdf, da http://blog.kowalczyk.info/software/sumatrapdf.
fc-list, fc-cache ecc.
Gli strumenti dalla libreria fontconfig consentono a XeTEX di gestire i font di sistema sotto Windows. Puoi usare fc-list per trovare i nomi dei font da passare al comando esteso di XeTEX\font. Se è necessario, esegui per primo fc-cache in modo da aggiornare le informazioni sui font.

7.3 Il profilo utente è home

La controparte Windows di una directory di home di Unix è la directory %USERPROFILE%. Sotto Windows XP e Windows 2000, di solito è C:\Documents and Settings\<nomeutente> e sotto Windows Vista è C:\Users\<nomeutente>. Nel file texmf.cnf e in generale in Kpathsea, ~ verrà interpretato in modo appropriato sia sotto Windows che sotto Unix.

7.4 Il registro di configurazione di Windows

Windows memorizza quasi tutti i dati di configurazione nel suo registro. Il registro contiene un insieme di chiavi organizzate gerarchicamente, alcune delle quali sono le radici delle varie gerarchie. Le più importanti per i programmi di installazione sono HKEY_CURRENT_USER e HKEY_LOCAL_MACHINE, abbreviate in HKCU e HKLM. La parte HKCU del registro si trova nella directory di home dell’utente (vedi sezione 7.3). HKLM si trova di solito in una sotto directory della cartella Windows.

In alcuni casi, le informazioni di sistema possono essere ottenute dalle variabili d’ambiente, ma per altre informazioni, come la posizione dei collegamenti, è necessario consultare il registro. Impostare permanentemente le variabili d’ambiente richiede ugualmente l’accesso al registro.

7.5 Permessi di Windows

Nelle ultime versioni di Windows si fa distinzione tra utenti normali ed amministratori, dove solo questi ultimi hanno libero accesso all’intero sistema operativo. In pratica, però, si potrebbero meglio descrivere queste classi come “utenti senza privilegi” e “utenti normali”: essere un amministratore è la regola, non un’eccezione. Ciononostante, ci siamo sforzati di rendere TEX Live installabile senza i privilegi amministrativi.

Se l’utente è un amministratore, c’è l’opzione di installare per tutti gli utenti. Se questa opzione è selezionata, i collegamenti sono creati per tutti gli utenti e l’ambiente del sistema è modificato. Altrimenti, i collegamenti e le voci nel menu sono creati solo per l’utente corrente e l’ambiente dell’utente è modificato.

Indipendentemente dallo stato di amministratore, la cartella predefinita di TEX Live proposta dall’installatore si trova sempre sotto %SystemDrive%. L’installatore verifica sempre se l’utente corrente ha i permessi di scrittura in tale cartella.

Possono sorgere problemi se l’utente non è un amministratore e TEX già esiste nel percorso di ricerca. Dato che il percorso di ricerca consulta prima il percorso dell’intero sistema e dopo quello stabilito dall’utente, la nuova TEX Live non avrebbe mai la precedenza. Come precauzione, l’installatore crea un collegamento al prompt dei comandi in cui la nuova directory degli eseguibili è posta prima del percorso di ricerca. La nuova TEX Live sarà sempre accessibile usando questo prompt. Il collegamento per TeXwork, se viene installato, già antepone TEX Live al percorso di ricerca, così da essere immune a questo problema.

Sotto Vista c’è un ulteriore colpo di scena: anche se hai eseguito l’accesso come amministratore, devi chiedere esplicitamente i privilegi di amministrazione. In pratica, non serve a molto entrare come amministratore. Invece, facendo click con il tasto destro sul programma o sul collegamento che vuoi eseguire solitamente di offre la scelta “Esegui come amministratore”.

8 Una guida a Web2C

Web2C è una collezione di programmi legati a TEX: TEX stesso, Metafont, MetaPost, BibTeX, ecc. È il cuore di TEX Live. Il sito web di Web2C, con il manuale corrente e molto altro, è http://tug.org/web2c.

Un po’ di storia: l’implementazione originale fu realizzata da Tomas Rokicki il quale, nel 1987, sviluppò un primo sistema TEX-to-C cambiando dei file sotto Unix, che erano principalmente un lavoro originale di Howard Trickey e Pavel Curtis. Tim Morgan divenne il manutentore del sstema e durante questo periodo il nome cambiò in Web-to-C. Nel 1990, Karl Berry prese in mano il lavoro, con il contributo di molte persone, e nel 1997 passò il testimone a Olaf Weber, il quale lo restituì a Karl nel 2006.

Il sistema Web2C funziona sotto Unix, sotto i sistemi Windows a 32 bit, sotto MacOSX e sotto altri sistemi operativi. Usa i sorgenti di TEX originali di Knuth ed altri programmi scritti nel sistema di programmazione letterata WEB e li traduce in codice sorgente C. I programmi basilari di TEX gestiti in questo modo sono:

bibtex

Per mantenere le bibliografie.

dvicopy

Espande i riferimenti ai font virtuali nei file DVI.

dvitomp

Converte da DVI a MPX (MetaPost picture).

dvitype

Converte i DVI in testo leggibile

gftodvi

Bozze dei font generici.

gftopk

Converte da font generici ad impacchettati.

gftype

Converte i font generici in testo leggibile.

mf

Crea famiglie di caratteri tipografici.

mft

Abbellisce la forma dei sorgenti Metafont.

mpost

Crea diagrammi tecnici.

patgen

Crea modelli di sillabazione.

pktogf

Converte da font impacchettati a generici.

pktype

Converte i font impacchettati in testo leggibile.

pltotf

Converte le liste di proprietà da testo leggibile in TFM.

pooltype

Mostra le riserve dei file di WEB.

tangle

Converte da WEB al Pascal.

tex

Compone tipograficamente i documenti.

tftopl

Converte le liste di proprietà da TFM in testo leggibile

vftovp

Converte da font virtuali a liste di proprietà virtuali.

vptovf

Converte da liste di proprietà virtuali a font virtuali.

weave

Converte da WEB a TEX.

Le funzioni e la sintassi esatte di questi programmi sono descritte nella documentazione dei singoli pacchetti e di Web2C stesso. Tuttavia, conoscere alcuni principi che governano l’intera famiglia di programmi ti aiuterà a trarre vantaggio dalla tua installazione Web2C.

Tutti i programmi rispettano queste opzioni GNU standard:

--help

stampa un semplice sommario d’uso.

--verbose

stampa un rapporto dettagliato sull’avanzamento.

--version

stampa le informazioni sulla versione, quindi esce.

Per cercare i file, i programmi Web2C usano la libreria di ricerca dei percorsi Kpathsea (http://tug.org/kpathsea). Questa libreria usa una combinazione di variabili d’ambiente e file di configurazione per ottimizzare la ricerca nella (enorme) raccolta di file di TEX. Web2C può guardare simultaneamente all’interno di molti percorsi e questa caratteristica è utile per poter mantenere la distribuzione standard TEX, le estensioni locali e quelle personali in directory distinte. Per velocizzare le ricerche dei file, all’inizio di ogni gerarchia c’è un file ls-R che contiene una voce che mostra il nome ed il percorso relativo per tutti i file all’interno di quella gerarchia.

8.1 Ricerca dei percorsi con Kpathsea

Per prima cosa descriviamo il generico meccanismo di ricerca dei percorsi usati dalla libreria Kpathsea.

Chiameremo percorso di ricerca una lista separata da due punti o punto e virgola di elementi di percorso, che sono fondamentalmente nomi di directory. Un percorso di ricerca può provendire da una combinazione di molte fonti. Per cercare un file ‘my-file’ lungo il percorso ‘.:/dir’, Kpathsea controlla a turno ogni elemento del percorso: prima ./my-file, poi /dir/my-file, restituendo la prima corrispondenza (o, eventualmente, tutte quelle trovate).

Al fine di adattarsi al meglio alle convenzioni di tutti i sistemi operativi, sui sistemi non Unix Kpathsea può usare separatori di nomi di file diversi dai due punti (‘:’) e barra (slash, ‘/’).

Per controllare un particolare elemento p di un percorso, Kpathsea per prima cosa controlla se un archivio precostruito si applica a p (consulta “Archivi di file” a pagina 62), cioè se l’archivio è in una directory che è prefisso di p. Se è così, la specifica del percorso è confrontata con il contenuto dell’archivio.

Se l’archivio non esiste o non si applica a questo elemento del percorso, oppure se non contiene corrispondenze, viene eseguita una ricerca sul disco (se non è stata proibita da una specifica che comincia con ‘!!’ e il file cercato deve esistere). Kpathsea costruisce una lista di directory che corrispondono a questo elemento del percorso e verifica all’interno di ciascuna se può individuare il file.

La condizione “il file deve esistere” entra in gioco con i file ‘.vf’ e i file letti tramite il comando \openin di TEX. Questi file potrebbero non esistere (ad esempio cmr10.vf) e dunque sarebbe sbagliato cercarli sul disco. Quindi, se non sei riuscito ad aggiornare correttamente il file ls-R quando hai installato un nuovo file ‘.vf’, ques’ultimo non sarà mai trovato. A turno, ogni elemento del percorso è controllato: prima l’archivio, poiil disco. Se viene trovata una corrispondenza, la ricerca si interrompe e il risultato è restituito.

Per quanto l’elemento di un percorso più semplice e comune sia il nome di una directory, Kpathsea supporta caratteristiche aggiuntive per la ricerca di percorsi: valori predefiniti stratificati, nomi di variabili d’ambiente, valori di file di configurazione, directory personali degli utenti e ricerca ricorsiva di sotto directory. Dunque, diciamo che Kpathsea espande un elemento di percorso, intendendo che trasforma tutte le specifiche in semplici nomi di directory. Questa trasformazione è descritta nelle seguenti sezioni nello stesso ordine in cui avviene.

Nota che se il nome del file cercato è assoluto o esplicitamente relativo, ossia se comincia con ‘/’ o ‘./’ o ‘../’, Kpathsea controlla semplicemente se quel file esiste.

8.1.1 Fonti dei percorsi

Un percorso di ricerca può provenire da molte fonti. Nell’ordine in cui Kpathsea le usa:

  1. Una variabile d’ambiente impostata dall’utente, per esempio TEXINPUTS. Le variabili d’ambiente a cui è stato aggiunto un punto ed il nome di un programma hanno la precedenza; per esempio, se ‘latex’ è il nome del programma in esecuzione, allora TEXINPUTS.latex avrà la precedenza su TEXINPUTS.
  2. Il file di configurazione specifico per un programma, per esempio, una linea ‘S /a:/b’ nel file di configurazione config.ps di dvips.
  3. Un file di configurazione texmf.cnf di Kpathsea, contenente una linea del tipo ‘TEXINPUTS=/c:/d’ (vedi più avanti).
  4. Il valore predefinito alla compilazione del programma.

Puoi vedere ciascuno di questi valori per un dato percorso di ricerca usando le opzioni di debug (vedi “Risoluzione dei problemi” a pagina 66).

8.1.2 File di configurazione

Kpathsea legge i file di configurazione a tempo di esecuzione chiamati texmf.cnf per i percorsi di ricerca ed altre definizioni. Il percorso di ricerca usato per cercare questi file è chiamato TEXMFCNF (di base questo file si trova nella sotto directory texmf/web2c). Tutti i file texmf.cnf nel percorso di ricerca saranno letti e le definizioni presenti nei file trovati per primi avranno la precedenza nei confronti di quelle presenti nei file trovati per ultimi. Quindi, con un percorso di ricerca .:$TEXMF, i valori provenienti da ./texmf.cnf hanno la precedenza su quelli provenienti da $TEXMF/texmf.cnf.

Un frammento di file di configurazione che mostra la maggior parte di questi punti è mostrato sotto:

  TEXMF              = {$TEXMFLOCAL,!!$TEXMFMAIN}
  TEXINPUTS.latex    = .;$TEXMF/tex/{latex,generic;}//
  TEXINPUTS.fontinst = .;$TEXMF/tex//;$TEXMF/fonts/afm//
  % e-TeX related files
  TEXINPUTS.elatex   = .;$TEXMF/{etex,tex}/{latex,generic;}//
  TEXINPUTS.etex     = .;$TEXMF/{etex,tex}/{eplain,plain,generic;}//

8.1.3 Espansione dei percorsi

Kpathsea riconosce nei percorsi di ricerca alcuni caratteri speciali e costrutti simili a quelli disponibili nelle shell di Unix. Come esempio generale, il percorso complesso ~$USER/{foo,bar}//baz viene espanso in tutte le sotto directory, contenute dentro foo e bar nella home dell’utente $USER, che contengono una directory o un file di nome baz. Queste espansioni sono spiegate nelle prossime sezioni.

8.1.4 Espansione predefinita

Se il percorso di ricerca a più alta priorità (consulta “Origini dei percorsi” a pagina 57) contiene un due punti di troppo (cioè all’inizio, alla fine oppure una coppia due punti), Kpathsea inserisce in quel punto il percorso di ricerca con la seconda più alta priorità che sia stato definito. Se questo percorso inserito ha a sua vuolta un due punti aggiuntivo, accade lo stesso con il successivo in ordine di priorità. Per esempio, data l’impostazione di una variabile d’ambiente

> setenv TEXINPUTS /home/karl:
e un valore di TEXINPUTS proveniente da texmf.cnf di

  .:$TEXMF//tex
allora il valore finale usato nella ricerca sarà:

  /home/karl:.:$TEXMF//tex

Dato che sarebbe inutile inserire lo stesso valore predefinito in più di un posto, Kpathsea cambia solo uno dei ‘:’ di troppo e lascia gli altri al loro posto. Per prima cosa cerca un ‘:’ all’inizio, quindi cerca un ‘:’ alla fine, per ultimo cerca un ‘:’ doppio.

8.1.5 Espansione delle parentesi graffe

Una caratteristica utile è l’espansione delle parentesi graffe, che significa che, per esempio, v{a,b}w viene espanso in vaw:vbw. L’annidamento delle parentesi è permesso. Tale caratteristica è usata per implementare gerarchie TEX multiple, assegnando una lista tra graffe a $TEXMF. Ad esempio, in texmf.cnf, è fatta la seguente definizione (approssimativamente; in pratica ci sono molte più gerarchie):

    TEXMF = {$TEXMFHOME,$TEXMFLOCAL,!!$TEXMFVAR,!!$TEXMFMAIN}

Usando questa variabile, puoi scrivere qualcosa come

    TEXINPUTS = .;$TEXMF/tex//

che vuol dire che, dopo aver guardato nella directory attuale, la ricerca proseguirà (soltanto) nelle gerarchie $TEXMFHOME/tex, $TEXMFLOCAL/tex, $TEXMFVAR/tex e $TEXMFMAIN/tex (le ultime due usando gli archivi ls-R). È una maniera conveniente per adoperare due strutture TEX parallele, una “congelata” (ad esempio su un CD) e l’altra aggiornata di continuo con nuove versioni non appena diventino disponibili. Usando la variabile $TEXMF in tutte le definizion, si è sicuri di cercare innanzitutto nella gerarchia aggiornata.

8.1.6 Subdirectory expansion

Due o più barre (slash) consecutivi in un elemento di percorso alla fine di una directory d sono sostituite da tutte le sotto directory di d: prima quelle che si trovano direttamente sotto d, quindi quelle all’interno delle prime e così via. Ad ogni livello, l’ordine in cui le directory sono cercate non è specificato.

Se specifichi il nome di un file dopo il ‘//’, solo le sotto directory che lo conengono saranno incluse. Ad esempio, ‘/a//b’ si espande nelle directory /a/1/b, /a/2/b, /a/1/1/b e così via, ma non in /a/b/c o /a/1.

Costrutti ‘//’ multipli in un percorso sono possibili, ma ogni ‘//’ posto all’inizio viene ignorato.

8.1.7 Elenco dei caratteri speciali e loro significato: un riepilogo

Il seguente elenco riassume i caratteri speciali nei file di configurazione di Kpathsea.

:

Separatore nella specifica di un percorso; all’inizio o alla fine viene sostituito con l’espansione predefinita.

;

Separatore nei sistemi non Unix (si comporta come :).

$

Espansione di una variabile.

~

Rappresenta la directory di home di un utente.

{...}

Espansione di parentesi graffe.

//

Espansione di sotto directory (può trovarsi ovunque in un percorso tranne che al suo inizio).

%

Inizio di un commento.

\

Carattere di continuazione (consente alle voci di espandersi su più linee).

!!

Cerca solo negli archivi per individuare un file, non cerca sul disco.

8.2 Archivi di nomi di file

Kpathsea si sforza di minimizzare gli accessi al disco per le ricerche. Ad ogni modo, in installazioni con abbastanza directory, cercare un dato file in ognuna di esse può richiedere una quantità di tempo eccessiva (vero in special modo se devono essere attraversate molte centinaia di directory di font). Quindi, Kpathsea può usare un file di “archivio” testuale costruito esternamente, chiamato ls-R, che associa file a directory, evitando in questo modo di cercare esaustivamente sul disco.

Un secondo file di archivio aliases ti permette di dare nomi aggiuntivi ai file elencati in ls-R. Questa caratteristica può essere utile per conformare i file sorgenti alla convenzione DOS di nomi 8.3 (8 caratteri di nome, più 3 per l’estensione).

8.2.1 L’archivio di nomi dei file

8.2.2 The filename database

Come spiegato in precedenza, il nome dell’archivio di nomi deil file principale deve essere ls-R. Puoi metterne uno alla radice di ogni gerarchia TEX nella tua installazione che vuoi che sia oggetto di ricerca ($TEXMF di base). Kpathsea cerca i file ls-R nel percorso TEXMFDBS.

Il modo raccomandato per creare e mantenere ‘ls-R’ è quello di eseguire lo script mktexlsr incluso nella distribuzione. Esso è invocato da vari script ‘mktex’…. In teoria, questo script esegue semplicemente il comando

cd /your/texmf/root && \ls -1LAR ./ >ls-R
assumendo che il comando ls di sistema produca il giusto formato di output (ls del progetto GNU lo fa). Per garantire che l’archivio sia sempre aggiornato, la cosa più semplice è rigenerarlo regolarmente tramite cron, così che sia automaticamente ricostruito quando i file installati cambiano, ad esempio dopo aver installato o aggiornato un pacchetto LATEX.

Se un file non è trovato nell’archivio, di ripiego Kpathsea va avanti e cerca sul disco. Se un particolare elemento di percorso comincia con ‘!!’, però, solo l’archivo sarà cercato per quell’elemento, mai il disco.

8.2.3 kpsewhich: ricerca indipendente di percorsi

Il programma kpsewhich compie la ricerca di percorsi indipendentemente da una particolare applicazione. Può essere utile come una sorta di programma find per individuare file nelle gerarchie TEX (è usato pesantemente negli script distribuiti ‘mktex’…).

> kpsewhich opzioni nomefile
%> kpsewhich option filename
Le opzioni specificate in option cominciano con ‘-’ oppure con ‘--’ ed è accettata qualunque abbreviazione non ambigua.

Kpathsea ricerca ogni argomento su riga di comando che non sia un’opzione come se fosse il nome di un file e ritorna il primo trovato. Non ci sono opzioni per restituire tutti i file con un particolare nome (per fare ciò, puoi eseguire il programma Unix ‘find’).

Le opzioni più comuni sono descritte in seguito.

--dpi=num

Imposta la risoluzione a num; questa opzione ha effetto solo nelle ricerche dei file ‘gf’ e ‘pk’. ‘-D’ è un sinonimo, per compatibilità con dvips. Il valore preimpostato è 600.

--format=nome


Imposta il formato da cercare a nome. Di base, il formato è ipotizzato a partire dal nome del file. Per i formati che non hanno associato un suffisso non ambiguo, come i file di supporto di MetaPost e i file di configurazione di dvips, devi specificare il nome come è noto da Kpathsea, come tex o enc files. Esegui kpsewhich --help per un elenco.

--mode=stringa


Imposta il nome della modalità a string; questa opzione ha effetto solo sulle ricerche dei file ‘gf’ e ‘pk’. Non c’è un valore predefinito: sarà trovata qualunque modalità.

--must-exist


Fa tutto ciò che è possibile per trovare il file, inclusa nello specifico la ricerca sul disco. Di base, solo l’archivio ls-R è controllato, per questioni di efficienza.

--path=stringa


Cerca nel percorso stringa (separata da due punti, come al solito), invece di indovinarlo dal nome del file. ‘//’ e tutte le solite espansioni sono supportate. Le opzioni ‘--path’ e ‘--format’ si escludono a vicenda.

--progname=nome


Imposta il nome del programma a nome. Questa opzione può modificare i percorsi di ricerca per mezzo della funzionalità .nomeprogramma. Il valore predefinito è kpsewhich.

--show-path=nome


Mostra il percorso usato per la ricerca dei file il cui tipo sia nome. Può essere usata sia un’estensione (.pk, .vf, ecc.) che un nome, proprio come per l’opzione ‘--format’.

--debug=num


Imposta le opzioni per la ricerca degli errori a num.

8.2.4 Esempi d’uso

Diamo uno sguardo a Kpathsea in azione. Ecco una ricerca semplice:

> kpsewhich article.cls
   /usr/local/texmf-dist/tex/latex/base/article.cls
Stiamo cercando il file article.cls. Dato che il suffisso ‘.cls’ non è ambiguo, non abbiamo bisogno di specificare che vogliamo cercare un file di tipo tex (file sorgente TEX). Lo troviamo nella sotto directory tex/latex/base sotto la directory di TEX Live ‘texmf-dist’. In modo simile, tutti i file seguenti sono trovati senza problemi grazia all’univocità dei loro suffissi.

> kpsewhich array.sty
   /usr/local/texmf-dist/tex/latex/tools/array.sty
> kpsewhich latin1.def
   /usr/local/texmf-dist/tex/latex/base/latin1.def
> kpsewhich size10.clo
   /usr/local/texmf-dist/tex/latex/base/size10.clo
> kpsewhich small2e.tex
   /usr/local/texmf-dist/tex/latex/base/small2e.tex
> kpsewhich tugboat.bib
   /usr/local/texmf-dist/bibtex/bib/beebe/tugboat.bib

Ad ogni modo, quest’ultimo è un registro bibliografico in formato BibTeX per gli articoli di TUGboat.

> kpsewhich cmr10.pk
I file di glifi dei font bitmat di tipo .pk sono usati dai programmi di visualizzazione come dvips e xdvi. Non viene restituito nulla in questo caso dato che in TEX Live non ci sono file ‘.pk’ pregenerati per il carattere tipografico Computer Modern — come predefinite sono usate le varianti Type 1.

> kpsewhich wsuipa10.pk
   /usr/local/texmf-var/fonts/pk/ljfour/public/wsuipa/wsuipa10.600pk
Per questi font (un alfabeto fonetico creato dall’Università di Washington) dobbiamo generare i file ‘.pk’ e dato che la modalità predefinita di Metafont nella nostra installazione è ljfour con una risoluzione di base di 600dpi (dots per inch, punti per pollice), viene restituito questo valore.

> kpsewhich -dpi=300 wsuipa10.pk
In questo caso, quando specifichiamo di essere interessati ad una risoluzione di 300dpi (-dpi=300) osserviamo che questo font non è disponibile nel sistema. Un programma come dvips o xdvi andrebbe avanti e genererebbe i file .pk richiesti usando lo script mktexpk.

Adesso spostiamo la nostra attenzione sui file di intestazione e di configurazione di dvips. Cercheremo innanzitutto un file tra quelli usati comunemente, il prologo generale tex.pro per il supporto a TEX, prima di spostare l’attenzione sul generico file di configurazione (config.ps) e la mappa dei font PostScript psfonts.map —  a partire dal 2004, i file di mappatura e di codifica hanno i propri percorsi di ricerca e una nuova posizione nelle gerarchie texmf. Dato che il suffisso ‘.ps’ è ambiguo, dobbiamo specificare esplicitamente quale tipo stiamo considerando (dvips config) per il file config.ps. config.ps.

> kpsewhich tex.pro
   /usr/local/texmf/dvips/base/tex.pro
> kpsewhich --format="dvips config" config.ps
   /usr/local/texmf/dvips/config/config.ps
> kpsewhich psfonts.map
   /usr/local/texmf/fonts/map/dvips/updmap/psfonts.map

Diamo ora uno sguardo ravvicinato ai file di supporto per il carattere PostScript URW Times. Il prefisso per questi file nello schema dei nomi dei font è ‘utm’. Il primo file che cerchiamo è quello di configurazione, che contiene il nome del file di mappatura:

> kpsewhich --format="dvips config" config.utm
   /usr/local/texmf-dist/dvips/psnfss/config.utm
Il contenuto di questo file è

  p +utm.map
che punta al file utm.map, che sarà il prossimo che cercheremo.

> kpsewhich utm.map
   /usr/local/texmf-dist/fonts/map/dvips/times/utm.map
Questo file di mappatura definisce i nomi dei file dei font PostScript Type 1 nella collezione URW. Il suo contenuto è simile al seguente (mostriamo solo una parte delle righe):

utmb8r  NimbusRomNo9L-Medi    ... <utmb8a.pfb
utmbi8r NimbusRomNo9L-MediItal... <utmbi8a.pfb
utmr8r  NimbusRomNo9L-Regu    ... <utmr8a.pfb
utmri8r NimbusRomNo9L-ReguItal... <utmri8a.pfb
utmbo8r NimbusRomNo9L-Medi    ... <utmb8a.pfb
utmro8r NimbusRomNo9L-Regu    ... <utmr8a.pfb
Prendiamo, ad esempio, il file per il Times Roman utmr8a.pfb e cerchiamo la sua posizione nella gerarchia delle directory texmf con una ricerca dei file di font Type 1:

> kpsewhich utmr8a.pfb
   /usr/local/texmf-dist/fonts/type1/urw/times/utmr8a.pfb

Dovrebbe essere chiaro da questi esempi come puoi individuare facilmente dove sia un dato file. Tutto ciò è particolarmente importante se sospetti che in qualche modo sia prelevata la versione sbagliata di un file, in quanto kpsewhich mostrerà il primo file incontrato.

8.2.5 Risoluzione dei problemi

A volte è necessario investigare sul come un programma risolva i riferimenti ad un file. Affinché sia pratico fare ciò, Kpathsea offre vari livelli di messaggi diagnostici:

 1

accessi al disco. Quando si compie una ricerca avendo a disposizione un archivio ls-R aggiornato, questo livello non dovrebbe mostrare quasi nessun messaggio.

 2

Riferimenti alle tabelle dei dati (come gli archivi ls-R, i file di mappatura, quelli di configurazione).

 4

Operazioni di apertura e chiusura dei file.

 8

Informazioni generali sui percorsi per i tipi di file cercati da Kpathsea. Utile per scoprire dove è stato definito un particolare percorso per un file.

16

Elenco delle directory per ogni elemento di un percorso (rilevante solo per le ricerche su disco).

32

Ricerche di file.

64

Valori delle variabili.

Un valore di -1 attiverà tutte le opzioni precedenti; nell’uso pratico, questo valore è di solito il più conveniente.

Analogamente, con il programma dvips, impostando una combinazione di opzioni di risoluzione dei problemi, è possibile seguire in dettaglio le posizioni da cui i file sono prelevati. In alternativa, quando un file non è trovato, la traccia dei messaggi mostra in quali directory il programma ha cercato il file, così che si possa ottenere un’indicazione sull’origine del problema.

In termini generali, dato che la maggior parte dei programmi invoca la libreria Kpathsea internamente, è possibile selezionare il livello della diagnostica usando la variabile d’ambiente KPATHSEA_DEBUG ed impostandola ad una combinazione dei valori descritti nell’elenco di cui sopra.

(Nota per gli utenti Windows: non è semplice redirigere tutti i messaggi verso un file in questo sistema. Per scopi di diagnostica puoi impostare temporaneamente SET KPATHSEA_DEBUG_OUTPUT=err.log).

Consideriamo, come esempio, un piccolo file sorgente di LATEX, hello-world.tex, che contiene il seguente testo.

    \documentclass{article}
    \begin{document}
    Ciao Mondo!
    \end{document}

Questo piccolo file usa solo il font cmr10, quindi vediamo come dvips prepara il file PostScript (vogliamo usare la versione Type 1 dei font Computer Modern, da qui l’opzione -Pcms).

> dvips -d4100 hello-world -Pcms -o
In questo caso abbiamo combinato la classe di diagnostica 4 di dvips (percorsi dei font) con l’espansione degli elementi di percorso di Kpathsea (vedi il Manuale di Riferimento di dvips, texmf/doc/dvips/dvips.pdf). Il risultato (leggermente riorganizzato) appare in figura 12.


debug:start search(file=texmf.cnf, must_exist=1, find_all=1,
  path=.:/usr/local/bin/texlive:/usr/local/bin:
       /usr/local/bin/texmf/web2c:/usr/local:
       /usr/local/texmf/web2c:/.:/./teTeX/TeX/texmf/web2c:).
kdebug:start search(file=ls-R, must_exist=1, find_all=1,
  path=~/tex:/usr/local/texmf).
kdebug:search(ls-R) =>/usr/local/texmf/ls-R
kdebug:start search(file=aliases, must_exist=1, find_all=1,
  path=~/tex:/usr/local/texmf).
kdebug:search(aliases) => /usr/local/texmf/aliases
kdebug:start search(file=config.ps, must_exist=0, find_all=0,
  path=.:~/tex:!!/usr/local/texmf/dvips//).
kdebug:search(config.ps) => /usr/local/texmf/dvips/config/config.ps
kdebug:start search(file=/root/.dvipsrc, must_exist=0, find_all=0,
  path=.:~/tex:!!/usr/local/texmf/dvips//).
search(file=/home/goossens/.dvipsrc, must_exist=1, find_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//).
kdebug:search($HOME/.dvipsrc) =>
kdebug:start search(file=config.cms, must_exist=0, find_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//).
kdebug:search(config.cms)
=>/usr/local/texmf/dvips/cms/config.cms
Figura 12: Ricerca dei file di configurazione
kdebug:start search(file=texc.pro, must\_exist=0, find\_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(texc.pro) => /usr/local/texmf/dvips/base/texc.pro
Figura 13: Ricerca del file di prologo
kdebug:start search(file=cmr10.tfm, must\_exist=1, find\_all=0,
  path=.:~/tex/fonts/tfm//:!!/usr/local/texmf/fonts/tfm//:
       /var/tex/fonts/tfm//).
kdebug:search(cmr10.tfm) => /usr/local/texmf/fonts/tfm/public/cm/cmr10.tfm
kdebug:start search(file=texps.pro, must\_exist=0, find\_all=0,
   ...
<texps.pro>
kdebug:start search(file=cmr10.pfb, must\_exist=0, find\_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(cmr10.pfb) => /usr/local/texmf/fonts/type1/public/cm/cmr10.pfb
<cmr10.pfb>[1]
Figura 14: Ricerca del file del font

dvips inizia individuando i file di lavoro. Per primo, viene trovato texmf.cnf, che fornisce le definizioni dei percorsi di ricerca per gli altri file, quindi il file di archivio ls-R (per ottimizzare la ricerca) e il file aliases, che rende possibile dichiarare diversi nomi (ad esempio, una versione breve in formato DOS 8.3 e una più lunga e più naturale) per lo stesso file. Quindi dvips va avanti nel cercare il file di configurazione generico config.ps prima di guardare al file di personalizzazione .dvipsrc (che, in questo caso non è trovato). Infine, dvips individua il file di configurazione config.cms per il font PostScript Computer Modern (questo passo è stato attivato con l’opzione -Pcms passata al comando dvips). Questo file contiene la lista delle mappature che definiscono la relazione tra il modo di chiamare i font in TEX, in PostScript e sul disco.

> more /usr/local/texmf/dvips/cms/config.cms
   p +ams.map
   p +cms.map
   p +cmbkm.map
   p +amsbkm.map
dvips, quindi, procede nel trovare tutti questi file, più il generico file di mappatura psfonts.map, che è caricato sempre (contiene le dichiarazioni per font PostScript usati comunemente; consulta la parte finale della sezione 8.2.4 per ulteriori dettagli sulla gestione delle mappature PostScript).

A questo punto, dvips si presenta all’utente:

This is dvips(k) 5.92b Copyright 2002 Radical Eye Software (www.radicaleye.com)
Quindi prosegue nel cercare il file di prologo texc.pro:


kdebug:start search(file=texc.pro, must_exist=0, find_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(texc.pro) => /usr/local/texmf/dvips/base/texc.pro

Dopo aver trovato il file in questione, dvips stampa la data e l’ora, ci informa che genererà il file hello-world.ps, quindi che avrà bisogno del file del font cmr10 e che quest’ultimo è dichiarato “residente” (non sono necessarie bitmap):


TeX output 1998.02.26:1204’ -> hello-world.ps
Defining font () cmr10 at 10.0pt
Font cmr10 <CMR10> is resident.
Adesso la ricerca prosegue con il file cmr10.tfm, che viene trovato, quindi viene fatto riferimento ad alcuni ulteriori file di prologo (non mostrati) e, infine, l’istanza Type 1 del font, cmr10.pfb, è individuata ed inclusa del file in uscita (vedi l’ultima linea).


kdebug:start search(file=cmr10.tfm, must_exist=1, find_all=0,
  path=.:~/tex/fonts/tfm//:!!/usr/local/texmf/fonts/tfm//:
       /var/tex/fonts/tfm//).
kdebug:search(cmr10.tfm) => /usr/local/texmf/fonts/tfm/public/cm/cmr10.tfm
kdebug:start search(file=texps.pro, must_exist=0, find_all=0,
   ...
<texps.pro>
kdebug:start search(file=cmr10.pfb, must_exist=0, find_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(cmr10.pfb) => /usr/local/texmf/fonts/type1/public/cm/cmr10.pfb
<cmr10.pfb>[1]

8.3 Opzioni di esecuzione

Un’altra funzionalità utile di Web2C è la sua possibilità di controllare un certo numero di parametri relativi alla memoria (nello specifico la dimensione dei registri) tramite il file texmf.cnf letto da Kpathsea durante l’esecuzione. Le impostazioni della memoria possono essere trovate nella Parte 3 di quel file nella distribuzione TEX Live. Le più importanti sono:

main_memory

La quantità complessiva di memoria disponibile per TEX, Metafont e MetaPost. Devi creare un nuovo file di formato per ogni impostazione differente. Per esempio, potresti generare una versione “enorme” di TEX e chiamare il formato hugetex.fmt. Usando il modo normale di specificare il nome del programma usato da Kpathsea, l’opportuno valore della variabile main_memory sarà letto da texmf.cnf.

extra_mem_bot

Spazio aggiuntivo per le strutture dati “grandi” di TEX: scatole, colle, interruzioni, ecc. Utile specialmente se usi PI CTEX.

font_mem_size

Numero di registri per le informazioni sui font disponibile in TEX. Questo valore è più o meno pari alla dimensione totale di tutti i file TFM che vengono letti.

hash_extra

Spazio aggiuntivo per la tabella con i nomi delle sequenze di controllo. Nella tabella principale possono essere memorizzate solo approssimativamente 10.000 sequenze di controllo; se lavori su un libro di grandi dimensioni con numerosi riferimenti incrociati, questo valore potrebbe non essere sufficiente. Il valore predefinito per hash_extra è 50000.

Ovviamente questa funzionalità non è un sostituto per una vera allocazione di memoria e tabelle dinamici, ma dato che questi sono estremamente difficili da implementare negli attuali sorgenti di TEX, questi parametri di esecuzione forniscono un compromesso pratico che offre un minimo di flessibilità.

9 Ringraziamenti

10 Acknowledgements

TEX Live è un lavoro congiunto di praticamente tutti i gruppi utenti TEX. Questa edizione di TEX Live è stata supervisionata da Karl Berry. Gli altri contributori principali, passati e presenti, sono elencati qui sotto.

Preparatori degli eseguibili: Peter Breitenlohner (x86_64-linux), Karl Berry (i386-linux, sparc-linux), Ken Brown (i386-cygwin), Akira Kakuto (win32), Dick Koch (universal-darwin), Norbert Preining (alpha-linux), Jukka Salmi (i386-netbsd), Thomas Schmitz (powerpc-linux), Apostolos Syropoulos (i386-solaris), Vladimir Volovich (powerpc-aix, sparc-solaris), Olaf Weber (mips-irix). Per informazioni sul processo di compilazione di TEX Live, visitate http://tug.org/texlive/build.html.

Attuali traduttori della documentazione: Jjgod Jiang, Jinsong Zhao, Yue Wang, & Helin Gai (Cinese), Klaus Höppner (Tedesco), Manuel Pégourié-Gonnard (Francese), Marco Pallante (Italiano), Petr Sojka & Jan Busa (Ceco/Slovacco), Boris Veytsman (Russo), Staszek Wawrykiewicz (Polacco). La pagina web della documentazione di TEX Live è http://tug.org/texlive/doc.html.

Ovviamente il più importante ringraziamento deve andare a Donald Knuth, innanzitutto per aver inventato TEX e poi per averlo donato al mondo.

11 Storia delle edizioni

11.1 Passato

La discussione iniziò nel tardo 1993 quando il gruppo utenti TEX olandese stava iniziando a lavorare al proprio CD 4AllTEX per gli utenti MS-DOS e si sperava a quel tempo di rilasciare un solo razionale CD per tutti i sistemi. Questo era un obiettivo troppo ambizioso per il tempo, ma non solo diede vita al CD di grande successo 4AllTEX, ma spinse il gruppo di lavoro del TUG Technical Council verso una Struttura delle Directory TEX (TDS, TEX Directory Structure, http://tug.org/tds), che specificò come creare collezioni consistenti e gestibili di file di supporto a TEX. Una bozza completa della TDS fu pubblicata nel numero di dicembre 1995 di TUGboat e fu chiaro dalle fasi iniziali che un prodotto desiderabile sarebbe stata una struttura di modello su CD. La distribuzione che hai ora è il risultato diretto delle decisioni del gruppo di lavoro. Fu anche chiaro dal successo del CD 4AllTEX che gli utenti Unix avrebbero beneficiato da un simile semplice sistema e questa è l’altro filone principale di TEX Live.

Per prima cosa ci mettemmo all’opera per realizare un nuovo CD della TDS basato su Unix nell’autunno del 1995 e rapidamente identificammo il teTEX di Thomas Esser come l’impianto ideale, dato che già aveva il supporto per più fiattaforme ed era costruito con la portabilità tra diversi file system in mente. Thomas acconsentì ad aiutarci e il lavoro cominciò seriamente all’inizio del 1996. La prima edizione fu rilasciata nel maggio 1996. All’inizio del 1996, Karl Berry completò una nuova versione di Web2c, che includeva praticamente tutte le funzionalità che Thomas Esser aveva aggiunto in teTEX e decidemmo di basare la seconda edizione del CD sul Web2C standard, con l’inclusione dello script texconfig proveniente da teTEX. La terza edizione del CD fu basata su una nuova grande revisione di Web2C, la 7.2, realizzata da Olaf Weber; allo stesso tempo, era stata fatta una nuova revisione di teTEX e TEX Live incluse quasi tutte le sue funzionalità. La quarta edizione seguì lo stesso modello, usando una nuova versione di teTEX e di Web2C (7.3). Il sistema adesso includeva anche un completo allestimento per Windows.

Per la quinta edizione (marzo 2000) furono riviste e controllate molte parti del CD, aggiornando centinaia di pacchetti. I dettagli sui pacchetti furono memorizzati in file XML. Ma il cambiamento maggiore per TEX Live 5 fu che tutto il software non libero fu rimosso. Tutto in TEX Live era pensato per essere compatibile con le Debian Free Software Guidelines (linee guida Debian sul software libero, http://www.debian.org/intro/free); abbiamo fatto del nostro meglio per controllare le condizioni di licenza di tutti i pacchetti, ma apprezzeremo tantissimo ogni segnalazione di errori.

La sesta edizione (luglio 2001) aveva aggiornato ancora più materiale. Il cambiamento più grande fu un nuovo concetto di installazione: l’utente poteva selezionare un insieme più esatto delle collezioni desiderate. Le collezioni relative alle lingue furono completamente riorganizzate, così che, selezionandone una qualunque, non solo venissero installati le macro, i font, ecc., ma fosse anche preparato un opportuno file language.dat.

La settima edizione del 2002 ebbe la notevole aggiunta del supporto per Mac OS X e la solita miriade di aggiornamenti ad ogni genere di pacchetto e programma. Un traguardo importante fu l’integrazione dei sorgenti con quelli di teTEX per correggere l’allontanamento l’uno dall’altro avvenuto nelle versioni 5 e 6.

11.1.1 2003

Nel 2003, con il continuo flusso di aggiornamenti ed aggiunte, trovammo che TEX Live era cresciuta così tanto che non poteva più essere contenutoa in un singolo CD, quindi la dividemmo in tre diverse distribuzioni (consulta la sezione 2.1, p. 7). In più:

11.1.2 2004

Il 2004 vide molti cambiamenti:

11.1.3 2005

L’edizione del 2005 ha visto il solito enorme numero di aggiornamenti ai pacchetti ed ai programmi. L’infrastruttura è rimasta sostanzialmente invariata dal 2004, ma inevitabilmente ci sono comunque stati dei cambiamenti:

11.1.4 2006–2007

Nell’edizione 2006–2007, la nuova più grande aggiunta a TEX Live è stato il programma XeTEX, disponibile tramite i comandi xetex e xelatex; visita il sito http://scripts.sil.org/xetex.

Anche MetaPost ha ricevuto un notevole aggiornamento, mentre altri ne sono stati pianificati per il futuro (http://tug.org/metapost/articles), così come per pdfTEX (http://tug.org/applications/pdftex).

I .fmt di TEX (formati ad alta velocità) e i file simili per MetaPost e Metafont adesso sono posizionati in sotto directory di texmf/web2c, invece che nella directory stessa (sebbene la directory è ancora visitata durante la ricerca, per motivi relativi ai .fmt esisitenti). Le sotto directory sono chiamate in base al “motore” usato, come tex o pdftex o xetex. Questo cambiamento dovrebbe essere invisibile nell’uso normale.

Il programma (plain) tex non legge più le prime linee identificate da %& per determinare quale formato adoperare; è il puro TEX Knuthiano (LATEX e tutto il resto leggono ancora le linee %&).

Ovviamente anche quest’anno ha visto (i soliti) centinaia di altri aggiornamenti ai pacchetti ed ai programmi. Come sempre, visita CTAN (http://www.ctan.org) per tutti gli aggiornamenti.

Internamente, i sorgenti sono memorizzato tramite Subversion, con un’interfaccia web standard per visitarli; il collegamento è sulla nostra pagina home. Sebbene invisibile nella distribuzione finale, ci aspettiamo che questo fornisca un fondamento stabile per lo sviluppo negli anni a venire.

Infine, nel maggio 2006 Thomas Esser ha annunciato che non avrebbe più aggiornato teTEX (http://tug.org/tetex). Come risultato, c’è stata una nascita di interesse verso TEX Live, specialmente tra i distributori di GNU/Linux (c’è un nuovo schema di installazione in TEX Live chiamato tetex, che fornisce approssimativamente qualcosa di equivalente). Speriamo che questo evento si trasformi alla fine in miglioramenti per tutti all’ambiente TEX.

11.1.5 2008

Nell’edizione del 2008, l’intera infrastruttura di TEX Live è stata riprogettata e reimplementata. Le informazioni complete su un’installazione sono adesso memorizzate in un file di testo puro tlpkg/texlive.tlpdb.

Tra le altre cose, ciò rende finalmente possibile aggiornare un’installazione TEX Live tramite Internet dopo l’installazione iniziale, una caratteristica che MikTEX ha offerto per anni. Ci attendiamo di aggiornare regolarmente i nuovi pacchetti così come diventano disponibili su CTAN.

È stato incluso LuaTEX (http://luatex.org) il nuovo maggior motore; affianco ad un nuovo livello di flessibilità nella composizione tipografica, questo fornisce un eccellente linguaggio di scripting da usare sia dentro che fuori i documenti TEX.

Il supporto tra le piattaforme Windows e basate su Unix è ora molto più uniforme. In particolare, la maggior parte degli script Perl e Lua sono ora disponibili sotto Windows tramite l’interprete Perl distribuito all’interno di TEX Live.

Il nuovo script tlmgr (sezione 6) è l’interfaccia generale per amministrare TEX Live dopo l’installazione iniziale. Esso gestice l’aggiornamento dei pacchetti e la conseguente rigenerazione dei formati, dei file di mappatura e dei file delle lingue, incluse opzionalmente le aggiunte locali.

Con l’avvento di tlmgr, è ora disabilitata l’azione di modifica dei file di configurazione dei formati e delle sillabazioni operata da texconfig.

Il programma per la creazione degli indici xindy (http://xindy.sourceforge.net/) è ora incluso nella maggior parte delle piattaforme.

Lo strumento kpsewhich può ora riportare tutte le corrispondenze per un dato file (opzione –all) oppure limitarle ad una data sotto directory (opzione –subdir).

Il programma dvipdfmx adesso include la funzionalità di estrarre le informazioni sulla bounding box attraverso il comando extractbb; si tratta di una delle ultime caratteristiche che erano fornite da dvipdfm ma non ancora incluse in dvipdfmx.

Gli alias dei font Times-Roman, Helvetica e così via sono stati rimossi. Diversi pacchetti si aspettavano che funzionassero in modo diverso (in particolare, che avessero codifiche differenti) e non c’era un buon modo per risolvere il problema.

Il formato platex è stato rimosso per risolvere un conflitto di nome con un completamente diverso platex giapponese; il pacchetto polski contiene ora il principale supporto per la lingua polacca.

Internamente, i file con le riserve di stringhe di WEB sono compilati dentro gli eseguibili, per semplificare gli aggiornamenti.

Infine, in questa edizione sono stati inclusi i cambiamenti fatti da Donald Knuth nella sua “messa a punto di TEX del 2008”. Consulta http://tug.org/TUGboat/Articles/tb29-2/tb92knut.pdf.

11.2 Presente

Il formato di output predefinito per Lua(LA )TEX è ora il PDF, in modo tale da avvalersi del supporto OpenType di LuaTEX, ecc. I nuovi eseguibili chiamati dviluatex e dvilualatex eseguono LuaTEX abilitando la generazione del DVI. La pagina web di LuaTEX è http://luatex.org.

L’originale motore Omega e il formato Lambda sono stati rimossi, dopo averne discusso con gli autori di Omega. Restano gli aggiornati Aleph e Lamed, così come le utilità di Omega.

È stata inclusa una nuova versione dei font AMS Type 1, incluso il Computer Modern: sono stati integrati alcuni cambiamenti nelle forme fatti da Knuth nei sorgenti Metafont nel corso degli anni e l’hinting è stato aggiornato. I font Euler sono stati ridisegnati a fondo da Hermann Zapf (visita http://tug.org/TUGboat/Articles/tb29-2/tb92hagen-euler.pdf). In ogni caso, le metriche non hanno subito modifiche. La pagina dei font AMS è http://www.ams.org/tex/amsfonts.html.

È stato incluso, anche in MacTEX, il nuovo editor per Windows TEXworks. Per le altre piattaforme, e per ulteriori informazioni, visita il sito di TEXworks, http://tug.org/texworks. Si tratta di un programma multi piattaforma ispirato al TeXShop per Mac OS X, che ha come obiettivo la facilità d’uso.

È stato incluso il programma per la grafica Asymptote per diverse piattaforme. Questo programma implementa un linguaggio testuale descrittivo per la grafica vagamente simile a MetaPost, ma con il supporto avanzato per il 3D ed altre caratteristiche. Il suo sito web è http://asymptote.sourceforge.net.

Il programma dvipdfm è stato sostituito da dvipdfmx, che opera in una speciale modalità di compatibilità quando viene invocato con il primo dei due nomi. dvipdfmx include il supporto per CJK (Chinese-Japanese-Korean, Cinese-Giapponese-Coreano) ed ha accumulato molte correzione negli anni passati dall’ultima versione di dvipdfm. Il sito di DVIPDFMx è http://project.ktug.or.kr/dvipdfmx.

Sono stati inclusi gli eseguibili per le piattaforme cygwin e i386-netbsd, mentre sono state abbandonate le altre distribuzioni BSD. Siamo stati avvisati che gli utenti di OpenBSD e FreeBSD ottengono TEX tramite i propri sistemi di pacchetti, e in più c’erano difficoltà nel compilare degli eseguibili che avevano la possibilità di lavorare su più di una versione.

Una varietà di cambiamenti più piccoli: adesso usiamo la compressione xz, un rimpiazzo stabile per lzma (http://tukaani.org/xz/); un carattere $ è ammesso nei nomi dei file quando non introduce un nome di variabile noto; la libreria Kpathsea è ora multi-thread (lo sfrutta in MetaPost); l’intera compilazione di TEX Live è ora basata su Automake.

Nota finale sul passato: tutte le edizioni di TEX Live, assiame al materiale ausiliario come le etichette dei CD, sono disponibili all’indirizzo ftp://tug.org/historic/systems/texlive.

11.3 Futuro

TEX Live non è perfetto! (e mai lo sarà). Intendiamo di continuare a fornire nuove versione e vorremmo fornire ulteriore materiale d’aiuto, più programmi di utilità, più programmi di installazione e (ovviamente) un ancor più migliorato e meglio controllato insieme di macro e font. Questo lavoro è fatto completamente da volontari sovraccaricati nel loro limitato tempo libero e resta ancora tanto da fare. Visita il sito http://tug.org/texlive/contribute.html.

Puoi inviare correzioni, suggerimenti e offerte d’aiuto a:

tex-live@tug.org
http://tug.org/texlive

Buon lavoro con TEX!