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.
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).
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.
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:
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:
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.
Questa sezione descrive i contenuti di TEX Live e della TEX Collection di cui è parte.
Il DVD TEX Collection include quanto segue:
CTAN, protext e texmf-extra non seguono necessariamente le stesse condizioni di copia di TEX Live, per cui fai attento nel ridistribuirli o modificarli.
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.
I programmi del sistema TEX, organizzati per piattaforma.
Rapida panoramica e collegamenti utili per TEX Live, in varie lingue, sia in HTML che in formato testo.
I sorgenti di tutti i programmi inclusi, comprese le distribuzioni Web2C, TEX e Metafont.
Vedi TEXMFMAIN sotto.
Vedi TEXMFDIST sotto.
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:
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.
Il percorso che contiene le parti vitali del sistema come i file di configurazione, gli script di aiuto e la documentazione dei programmi.
Il percorso che contiene il gruppo principale di pacchetti di macro, font, ecc.
Il percorso che un amministratore può usare per l’installazione nell’intero sistema di macro, font, ecc., aggiuntivi o aggiornati.
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.
Il percorso usato dai programmi texconfig, updmap e fmtutil per memorizzare i dati di configurazione modificati. Normalmente si trova sotto TEXMFHOME.
Il percoros usato dai programmi texconfig-sys, updmap-sys e fmtutil-sys per memorizzare i dati di configurazione modificati.
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.
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 è:
Un’edizione precedente.
L’attuale edizione.
Esebuibili per GNU/Linux
Eseguibili per Mac OS X
Eseguibili per Windows
This is TEXMFMAIN.
TEXMFDIST
TEXMFSYSVAR
TEXMFSYSCONFIG
TEXMFLOCAL, pensato per essere mantenuto tra diverse edizioni.
Dati privati generati e di configurazione per un’edizione precedente.
Dati privati generati e di configurazione per l’attuale edizione.
TEXMFVAR
TEXMFCONFIG
TEXMFHOME Macro personali, ecc.
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:
Seguono alcuni altri programmi di uso comune inclusi in TEX Live:
supporto per la bibliografia.
supporto per gli indici.
converte i DVI in PostScript.
programma di anteprima dei DVI per l’X Window System.
convertitore di DVI per la famiglia di stampanti HP LaserJet.
tagliano ed incollano le pagine contenute nei file DVI.
converte i DVI in PDF, un approccio alternativo a pdfTEX (citato in precedenza). Consulta i pacchetti ps4pdf e pdftricks per ulteriori alternative.
programmi di manipolazione dei PostScript.
processore ConTEXt e PDF.
convertitore da TEX a HTML (e a XML ed altro ancora).
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.
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.
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.
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:
Per eseguire l’installazione nella modalità GUI avanzata (figura 2; hai bisogno del modulo Perl/TK), usa:
Per un elenco completo delle diverse opzioni:
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.
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.
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:
In aternativa puoi invocarlo con un percorso assoluto, come:
Per installare in modalità testuale, usa:
Per un elenco completo delle varie opzioni:
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:
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.
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
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
L’installatore è pensato per essere quasi del tutto ovvio, ma seguono alcune note riguardo varie opzioni e sottomenu.
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.
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.
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.
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.
La figura 7 mostra il menu delle opzioni in modalità testuale. Ulteriori informazioni:
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.
Digita “V” per selezionare questa opzione. Il menu principale cambia in qualcosa di simile alla figura 8.
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.
Digita
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.
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.
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.
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.
Specifica l’archivio dei pacchetti da cui installare; vedi più avanti.
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).
Potrebbe essere necessario compiere alcune azioni dopo l’installazione.
Ma sotto Windows, l’installatore si prende cura di tutto.
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.
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:
Per csh o tcsh, il file da modificare tipicamente è $HOME/.cshrc e le linee da aggiungere potrebbero essere come:
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.
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
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.
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:
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:
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
oppure, per csh/tcsh:
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.
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.
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.
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à.
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.
Un documento più semplice di sample2e, per ridurre la dimensione dell’input qualora si riscontrino problemi.
Verifica se la tua stampante introduce un qualche margine.
Per stampare tabelle e prove di font.
Ancora per le tabelle dei font, ma usando plain TEX.
Il più canonico dei file di prova per (plain) TEX. Devi digitale ‘\bye’ al prompt * dopo aver lanciato ‘tex story.tex’.
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:
Per un elenco molto più lungo di pacchetti e programmi, visita http://tug.org/interest.html.
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
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.
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.
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.
tlmgr può essere avviato in modalità GUI con
La figura 10 mostra la pagina di configurazione.
Dopo l’installazione iniziale, puoi aggiornare il tuo sistema alle ultime versioni disponibili con:
Questo esempio più complesso aggiunge una collezione, per il motore XeTEX, da una directory locale:
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):
Ultimo e più importante, per ottenere la documentazione completa, visita http://tug.org/texlive/tlmgr.html oppure esegui:
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.
Sotto Windows, l’installatore fa alcune cose in più:
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:
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.
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.
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”.
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:
Per mantenere le bibliografie.
Espande i riferimenti ai font virtuali nei file DVI.
Converte da DVI a MPX (MetaPost picture).
Converte i DVI in testo leggibile
Bozze dei font generici.
Converte da font generici ad impacchettati.
Converte i font generici in testo leggibile.
Crea famiglie di caratteri tipografici.
Abbellisce la forma dei sorgenti Metafont.
Crea diagrammi tecnici.
Crea modelli di sillabazione.
Converte da font impacchettati a generici.
Converte i font impacchettati in testo leggibile.
Converte le liste di proprietà da testo leggibile in TFM.
Mostra le riserve dei file di WEB.
Converte da WEB al Pascal.
Compone tipograficamente i documenti.
Converte le liste di proprietà da TFM in testo leggibile
Converte da font virtuali a liste di proprietà virtuali.
Converte da liste di proprietà virtuali a font virtuali.
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:
stampa un semplice sommario d’uso.
stampa un rapporto dettagliato sull’avanzamento.
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.
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.
Un percorso di ricerca può provenire da molte fonti. Nell’ordine in cui Kpathsea le usa:
Puoi vedere ciascuno di questi valori per un dato percorso di ricerca usando le opzioni di debug (vedi “Risoluzione dei problemi” a pagina 66).
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:
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.
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
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.
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):
Usando questa variabile, puoi scrivere qualcosa come
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.
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.
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.
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).
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
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.
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’…).
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.
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.
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.
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à.
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.
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.
Imposta il nome del programma a nome. Questa opzione può modificare i percorsi di ricerca per
mezzo della funzionalità .nomeprogramma. Il valore predefinito è kpsewhich.
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’.
Imposta le opzioni per la ricerca degli errori a num.
Diamo uno sguardo a Kpathsea in azione. Ecco una ricerca semplice:
Ad ogni modo, quest’ultimo è un registro bibliografico in formato BibTeX per gli articoli di TUGboat.
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.
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:
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.
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:
accessi al disco. Quando si compie una ricerca avendo a disposizione un archivio ls-R aggiornato, questo livello non dovrebbe mostrare quasi nessun messaggio.
Riferimenti alle tabelle dei dati (come gli archivi ls-R, i file di mappatura, quelli di configurazione).
Operazioni di apertura e chiusura dei file.
Informazioni generali sui percorsi per i tipi di file cercati da Kpathsea. Utile per scoprire dove è stato definito un particolare percorso per un file.
Elenco delle directory per ogni elemento di un percorso (rilevante solo per le ricerche su disco).
Ricerche di file.
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.
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 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.
A questo punto, dvips si presenta all’utente:
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):
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:
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.
Spazio aggiuntivo per le strutture dati “grandi” di TEX: scatole, colle, interruzioni, ecc. Utile specialmente se usi PI CTEX.
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.
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à.
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.
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.
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ù:
Il 2004 vide molti cambiamenti:
I file .map adesso sono cercati soltanto in sotto directory di fonts/map (per ciascuna gerarchia texmf, lungo il percorso TEXFONTMAPS. In modo simile, i file .enc sono cercati soltanto nelle sottodirectory di font/enc, lungo il percorso ENCFONTS. updmap tenterà di avvisarti su file che possono provocare problemi.
Per i metodi per gestire questa ed altre informazioni, visita la pagina http://tug.org/texlive/mapenc.html.
Significa anche che è più importante che mai usare il pacchetto ifpdf (funziona sia con plain TEX, che con LATEX) o del codice equivalente, perché verificare semplicemente se \pdfoutput o qualche altra primitiva sono definiti non è un modo affidabile per determinare se si sta generando un file PDF. Per quest’anno abbiamo cercato di rendere questo aspetto compatibile con le edizioni passate al meglio delle nostra capacità, ma a partire dal prossimo anno \pdfoutput potrebbe essere definito anche se il file generato è un DVI.
Consulta il manuale di Web2C per saperne di più: texmf/doc/web2c.
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:
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.
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.
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.
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:
Buon lavoro con TEX!