Guida a TeX Live—2021

## Guida a TE X Live—2021

Karl Berry
https://tug.org/texlive/
Marzo 2021

### Indice

1 Introduzione
1.1 TE X Live e la TE X Collection
1.2 Supporto per i sistemi operativi
1.3 Installazione base di TE X Live
1.4 Considerazioni sulla sicurezza
1.5 Ottenere aiuto
2 Panoramica su TE X Live
2.1 La TE X Collection: TE X Live, proTE Xt, MacTE X
2.2 Directory primarie di TE X Live
2.3 Panoramica dei percorsi predeﬁniti in texmf
2.4 Estensioni di TE X
2.5 Altri programmi rilevanti inclusi in TE X 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 graﬁco
3.2 Eseguire l’installatore
3.2.1 Menu delle architetture (solo Unix)
3.2.2 Selezionare cosa deve essere installato
3.2.3 Directory
3.2.4 Opzioni
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 Variabili d’ambiente per Unix
3.4.2 Variabili d’ambiente: conﬁgurazione globale
3.4.3 Aggiornamenti da Internet dopo l’installazione del DVD
3.4.4 Conﬁgurazione dei font di sistema per XeTE X e LuaTE X
3.4.5 ConTE Xt Mark IV
3.4.6 Integrare macro locali e personali
3.4.7 Integrare font di terze parti
3.5 Collaudare l’installazione
3.6 Collegamenti ad ulteriori software scaricabili
4 Installazione specializzate
4.1 Installazioni condivise tra utenti o macchine
4.2 Installazioni portabili (USB)
5 tlmgr: gestire la vostra installazione
5.1 Interfacce GUI per tlmgr
5.2 Esempi di invocazioni di tlmgr dalla riga di comando
6 Note relative a Windows
6.1 Funzionalità speciﬁche per Windows
6.2 Software aggiuntivo incluso sotto Windows
6.3 Il proﬁlo utente è “home”
6.4 Il registro di conﬁgurazione di Windows
6.5 Permessi di Windows
6.6 Incrementare la memoria massima sotto Windows e Cygwin
7 Una guida a Web2C
7.1 Ricerca dei percorsi con Kpathsea
7.1.1 Fonti dei percorsi
7.1.2 File di conﬁgurazione
7.1.3 Espansione dei percorsi
7.1.4 Espansione predeﬁnita
7.1.5 Espansione delle parentesi graﬀe
7.1.6 Espansione delle sotto directory
7.1.7 Riepilogo dei caratteri speciali in texmf.cnf
7.2 Database di nomi di ﬁle
7.2.1 Il database di nomi
7.2.2 kpsewhich: ricerca indipendente di percorsi
7.2.3 Esempi d’uso
7.2.4 Risoluzione dei problemi
7.3 Opzioni di esecuzione
7.4 $TEXMFDOTDIR
8 Ringraziamenti
9 Storia delle edizioni
9.1 Passato
9.1.1 2003
9.1.2 2004
9.1.3 2005
9.1.4 2006–2007
9.1.5 2008
9.1.6 2009
9.1.7 2010
9.1.8 2011
9.1.9 2012
9.1.10 2013
9.1.11 2014
9.1.12 2015
9.1.13 2016
9.1.14 2017
9.2 2018
9.3 2019
9.3.1 2020
9.4 Presente: 2021
9.5 Futuro

### Note all’edizione italiana

Dopo tanti anni, ﬁnalmente abbiamo anche un’edizione italiana di questa guida alla distribuzione TE X Live. Vorrei premettere che, per garantirne il completamento entro l’uscita di TE X 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.

Purtroppo, ho mancato l’appuntamento con TE X Live 2010 e la guida lì presente era la stessa del 2009, con tutti i suoi difetti. Questa volta, per l’edizione 2011, mi sono impegnato un po’ di più, ho ripreso l’intero lavoro, l’ho aggiornato prima con le modiﬁche del 2010 e quindi con quelle del 2011, ho corretto una valanga di errori e ritradotto frasi che con l’italiano avevano davvero poco a che vedere.

Ovviamente ci saranno ancora tanti errori, frasi incomprensibili, incoerenze e chi più ne ha più ne metta, ma spero nuovamente che il mio piccolo contributo a TE X 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, 20 giugno 2011.

### 1 Introduzione

#### 1.1 TE X Live e la TE X Collection

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

Potete ottenere TE X Live scaricandola, oppure sul DVD TE X Collection, che i gruppi di utenti TE X distribuiscono ai propri membri, o in altri modi. La sezione 2.1 descrive brevemente il contenuto del DVD. Sia TE X Live che TE X Collection sono progetti cooperativi dei gruppi di utenti TE X. Questo descrive principalmente TE X Live.

TE X Live include gli eseguibili per TE X, LaTeX2e, ConTE Xt, Metafont, MetaPost, BibTeX e molti altri programmi, una vasta collezione di macro, font e documentazione e il supporto per la composizione tipograﬁca in molti diversi alfabeti provenienti da tutte le parti del mondo.

Per un breve riassunto dei principali cambiamenti in questa edizione di TE X Live, consultate la ﬁne di questo documento, sezione 9 (p. 77).

#### 1.2 Supporto per i sistemi operativi

TE X Live contiene gli eseguibili per molte piattaforme basate su Unix, inclusi GNU/Linux, Mac OS X e Cygwin. I sorgenti inclusi possono essere compilati per quelle piattaforme per le quali non forniamo i binari.

Per quanto riguarda Windows: Windows 7 e successivi sono supportati. Windows Vista probabilmente continuerà a funzionare quasi del tutto, ma TE X Live non sarà più neppure installato su Windows XP e precedenti. TE X Live non include speciﬁci eseguibili a 64-bit per Windows, ma gli eseguibili a 32-bit dovrebbero funzionare sui sistemi a 64-bit. Ma consultate https://tug.org/texlive/windows.html per le opzioni per aggiungere gli eseguibili a 64 bit.

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

#### 1.3 Installazione base di TE X Live

È possibile installare TE X Live dal DVD oppure attraverso Internet (https://tug.org/texlive/acquire.html). Il programma di installazione via rete è piccolo e scarica tutto ciò che è necessario da Internet.

Il programma di installazione nel DVD vi permette l’installazione su un disco locale. Non è possibile eseguire TE X Live direttamente dal DVD TE X Collection (o dalla sua immagine .iso), ma potete preparare un’installazione pronta per l’uso su, per esempio, una pennetta USB (consultate la sezione 4.2). L’installazione è descritta nelle prossime sezioni (p. 12), ma eccone un rapido accenno:

- Per Unix, lo script di installazione è install-tl; su Windows, bisogna invece lanciare install-tl-windows. L’installatore opererà in modalità graﬁca dando l’opzione -gui (predeﬁnita per Windows e Mac OS X), o in modalità testuale -gui=text (predeﬁnita per tutto il resto).
- Uno degli elementi installati è il programma “TE X Live Manager”, chiamato tlmgr. Così come l’installatore, può essere usato sia in modalità GUI che in modalità testuale. Lo si può usare per installare e disinstallare i pacchetti e per compiere varie operazioni di conﬁgurazione.

#### 1.4 Considerazioni sulla sicurezza

Sulla base delle nostre conoscenze, i programmi centrali di TE X sono (e sono sempre stati) estremamente robusti. Tuttavia, gli altri programmi in TE X Live potrebbero non raggiungere lo stesso livello, nonostante il massimo impegno di tutti. Come sempre, dovreste essere cauti nell’eseguire i programmi su documenti di origine inaﬃdabile; per aumentare la sicurezza, eseguiteli in una nuova sotto directory o in chroot.

Questo bisogno di attenzione è particolarmente pressante sotto Windows, dato che generalmente Windows cerca i programmi nella directory attuale prima che in qualunque altra posizione, indipendentemente dal percorso di ricerca. Questo comportamento crea un’ampia varietà di possibili attacchi. Abbiamo chiuso molte falle, ma indubbiamente alcune ne rimangono, soprattutto con i programmi di terze parti. Perciò raccomandiamo di controllare la presenza di ﬁle sospetti, soprattutto eseguibili (binari o script), nella directory attuale. Normalmente questi non dovrebbero essere presenti e senza alcun dubbio normalmente non dovrebbero essere creati semplicemente elaborando un documento.

Inﬁne, TE X (e i programmi che lo accompagnano) è capace di creare nuovi ﬁle quando elabora i documento, una funzionalità che può anche essere abusata in una grande quantità di modi. Di nuovo, elaborare documenti sconosciuti in una nuova sotto directory è la scelta più sicura.

Un altro aspetto della sicurezza è assicurarsi che il materiale scaricato non sia stato modiﬁcato rispetto a quanto creato. Il programma tlmgr (sezione 5) eseguirà automaticamente una veriﬁcca criptograﬁca sui ﬁle scaricati se il programma gpg (GNU Privacy Guard) è disponibile. Non è distribuito come parte di TE X Live, ma visitate https://texlive.info/tlpgp/ per informazioni su pgp se è necessario.

#### 1.5 Ottenere aiuto

La comunità TE X è attiva ed amichevole e le domande più importanti ﬁniscono per ricevere una risposta. Tuttavia il supporto è informale, oﬀerto da volontari e utenti casuali, per cui è particolarmente importante fare la propria parte prima di chiedere (se preferite un supporto commerciale garantito, potete rinunciare del tutto a TE X Live e ordinare il sistema di un fornitore; alla pagina https://tug.org/interest.html#vendors trovate un elenco).

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

Per cominciare
  Se siete nuovi di TE X, alla pagina web https://tug.org/begin.html troverete una breve introduzione al sistema.
TE X FAQ
  Le TE X FAQ sono un enorme compendio di risposte ad ogni genere di domanda, dalle più elementari alle più oscure. Sono incluse in TE X Live in texmf-dist/doc/generic/FAQ-en e sono disponibili su Internet alla pagina https://www.tex.ac.uk/faq. Controllate prima qui.
TE X Catalogue
  Se state cercando un pacchetto, un font, un programma o altro in particolare, il TE X Catalogue è il luogo dove guardare. È un enorme catalogo con tutte le voci relative a TE X. Visitate https://ctan.org/pkg/catalogue.
Risorse Web per TE X
  La pagina web https://tug.org/interest.html ha molti collegamenti relativi a TE X, in particolare a numerosi libri, manuali ed articoli su tutti gli aspetti del sistema.
archivi di supporto
  I principali forum di supporto per TE X includono il sito della comunità LATE X su https://latex.org, il sito di domande e risposte https://tex.stackexchange.com, il gruppo Usenet news:comp.text.tex e la mailing list texhax@tug.org. I loro archivi raccolgono anni di domande e risposte per il vostro piacere di ricerca tramite, per gli ultimi due, https://groups.google.com/group/comp.text.tex/topics e https://tug.org/mail-archives/texhax. E una generica ricerca su web non fa mai male.
porre domande
  Se non riuscite a trovare una risposta, potete formulare la vostra domanda su https://latex-community.org/ e https://tex.stackexchange.com/ tramite le loro interfacce web, su comp.text.tex tramite Google o un programma per Usenet, oppure tramite posta elettronica su texhax@tug.org. Ma prima di scrivere in qualunque posto, leggete questa voce delle FAQ, al ﬁne di massimizzare le probabilità di ottenere una risposta utile: https://texfaq.org/FAQ-askquestion.
supporto TE X Live
  Se volete segnalare un bug o avete dei suggerimenti o commenti sulla distribuzione TE X Live, sull’installazione o la documentazione, la mailing list è tex-live@tug. org. Tuttavia, se la vostra domanda è relativa all’uso di un particolare programma incluso in TE X Live, scrivete 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. Tutte le risorse indicate sopra sono aperte a chiunque, quindi sentevi liberi di iscrivervi, di iniziare a leggere e dare una mano dove potete.

### 2 Panoramica su TE X Live

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

#### 2.1 La TE X Collection: TE X Live, proTE Xt, MacTE X

Il DVD TE X Collection include quanto segue:

TE X Live
  Un sistema TE X completo da installare sul proprio disco. Home page: https://tug.org/texlive/.
MacTE X
  per Mac OS X (chiamato attualmente macOS da Apple, ma noi continuiamo ad usare il vecchio nome in questo documento), aggiunge a TE X Live un installatore nativo per Mac OS X ed altre applicazioni Mac. Home page: https://tug.org/mactex/.
proTE Xt
  Un miglioramento della distribuzione MiKTE X per Windows, proTE Xt aggiunge alcuni strumenti supplementari a MiKTE X e sempliﬁca l’installazione. È interamente indipendente da TE X Live e ha le proprie istruzioni per l’installazione. Home page: https://tug.org/protext.
CTAN
  Un’instantanea dell’archivio CTAN (https://ctan.org/).

CTAN e protext non seguono le stesse condizioni di licenza di TE X Live, per cui fate attenzione nel ridistribuirli o modiﬁcarli.

#### 2.2 Directory primarie di TE X Live

Segue un breve elenco e una descrizione delle directory primarie di un’installazione di TE X Live.

bin

  I programmi del sistema TE X, raggruppati per piattaforma.

readme-*.dir

  Una rapida panoramica ed alcuni collegamenti utili per TE X Live, in varie lingue, sia in HTML che in formato testuale.

source

  I sorgenti di tutti i programmi inclusi, comprese le distribuzioni TE X basate su Web2C.

texmf-dist

  Il percorso principale; vedi TEXMFDIST sotto.

tlpkg

  Script, programmi e dati per la gestione dell’installazione e per il supporto speciﬁco per Windows.

Per quanto riguarda la documentazione, i collegamenti nel ﬁle doc.html possono risultare utili. La documentazione per quasi tutto (pacchetti, formati, font, manuali dei programmi, pagine di manuali in linea, ﬁle Info) si trova in texmf-dist/doc. Potete usare il programma texdoc per trovare la documentazione, ovunque sia collocata.

Questa stessa documentazione di TE X Live si trova in texmf-dist/doc/texlive, disponibile in varie lingue:

- Ceco/Slovacco: texmf-dist/doc/texlive/texlive-cz
- Cinese Sempliﬁcato: texmf-dist/doc/texlive/texlive-zh-cn
- Francese: texmf-dist/doc/texlive/texlive-fr
- Giapponese: texmf-dist/doc/texlive/texlive-ja
- Inglese: texmf-dist/doc/texlive/texlive-en
- Italiano: texmf-dist/doc/texlive/texlive-it
- Polacco: texmf-dist/doc/texlive/texlive-pl
- Russo: texmf-dist/doc/texlive/texlive-ru
- Serbo: texmf-dist/doc/texlive/texlive-sr
- Tedesco: texmf-dist/doc/texlive/texlive-de

#### 2.3 Panoramica dei percorsi predeﬁniti in texmf

Questa sezione elenca le variabili predeﬁnite che speciﬁcano i percorsi all’interno di texmf usati dal sistema, il loro scopo e la strutturazione predeﬁnita di TE X Live. Il comando tlmgr conf mostra i valori di queste variabili, così che sia possibile scoprire con facilità come queste mappino le speciﬁche directory nella propria installazione.

Tutti i percorsi, inclusi quelli personali, dovrebbero seguire la Struttura delle Directory di TE X (TE X Directory Structure, TDS, https://tug.org/tds) con tutta la sua miriade di sotto directory, altrimenti i ﬁle potrebbero non essere trovati. La sezione 3.4.6 (p. 41) descrive ciò con maggior dettaglio. L’ordine che trovate qui è l’ordine opposto con cui sono esplorati i percorsi, ossia, gli ultimi percorsi nella lista hanno priorità rispetto ai primi.

TEXMFDIST

  Il percorso che contiene quasi tutti i ﬁle nella distribuzione originale — ﬁle di conﬁgurazione, script, pacchetti, font, ecc (l’eccezione principale sono gli eseguibili relativi a ciascuna piattaforma, che sono contenuti in un percorso gemello bin/).

TEXMFSYSVAR

  Il percorso (a livello di sistema) usato da texconfig-sys, updmap-sys, fmtutil-sys ed anche da tlmgr per memorizzare (nella cache) i dati generati durante l’esecuzione, come i ﬁle dei formati e le mappe per i font.

TEXMFSYSCONFIG

  Il percorso (a livello di sistema) usato dai programmi texconfig-sys, updmap-sys e fmtutil-sys per memorizzare i dati di conﬁgurazione modiﬁcati.

TEXMFLOCAL

  Il percorso che un amministratore può usare per l’installazione di macro, di font, ecc., aggiuntivi o aggiornati a livello di sistema, in modo che siano disponibili per tutti gli utenti.

TEXMFHOME

  Il percorso che ciascun utente può usare per la propria installazione personale di macro, font, ecc., aggiuntivi o aggiornati. L’espansione di questa variabile si adatta dinamicamente per ciascun utente alla directory individuale dell’utente stesso.

TEXMFVAR

  Il percorso (a livello di ciascun utente) usato da texconfig, updmap-user e fmtutil-user per memorizzare (nella cache) i dati generati durante l’esecuzione, come i ﬁle dei formati e le mappe per i font generati.

TEXMFCONFIG

  Il percorso (a livello di ciascun utente) usato dai programmi texconfig, updmap-sys e fmtutil-sys per memorizzare i dati di conﬁgurazione modiﬁcati.

TEXMFCACHE

  I percorsi usati da ConTE Xt MkIV e LuaLATE X per memorizzare (nella cache) i dati generati durante l’esecuzione; il valore predeﬁnito è TEXMFSYSVAR, oppure (se non si hanno i permessi di scrittura) TEXMFVAR.

La strutturazione predeﬁnita è:

percorso a livello di sistema
  può contenere diverse edizioni di TE X Live (in Unix di default è /url/local/texlive):
  2020

    Un’edizione precedente.

  2021

    L’attuale edizione.

    bin

      i386-linux

        Esebuibili per GNU/Linux (32 bit)

      ...

      universal-darwin

        Eseguibili per Mac OS X

      x86_64-linux

        Eseguibili per GNU/Linux (64 bit)

      win32

        Eseguibili per Windows

    texmf-dist

      TEXMFDIST e TEXMFMAIN

    texmf-var

      TEXMFSYSVAR, TEXMFCACHE

    texmf-config

      TEXMFSYSCONFIG

  texmf-local

    TEXMFLOCAL, pensato per essere mantenuto tra diverse edizioni.

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

    Dati privati generati e di conﬁgurazione relativi ad un’edizione precedente.

  .texlive2021

    Dati privati generati e di conﬁgurazione relativi all’attuale edizione.

    texmf-var

      TEXMFVAR, TEXMFCACHE

    texmf-config

      TEXMFCONFIG

  texmf

    TEXMFHOME Macro personali, ecc.

#### 2.4 Estensioni di TE X

Lo sviluppo dell’originale TE X di Knuth è congelato, se si escludono rare correzioni di bug. È presente in TE X Live come tex e si prevede che non sarà modiﬁcato nel prossimo futuro. TE X Live contiene anche diverse versioni estese di TE X (note anche come motori TE X):

e-TE X
  aggiunge un insieme di nuove primitive (riguardanti l’espansione delle macro, la scansione dei caratteri, le classi di segnaposto, funzionalità di debug aggiuntive ed altro ancora) e le estensioni TE X--XE T per la scrittura bidirezionale. Nella modalità di base, e-TE X è compatibile al 100% con il TE X ordinario. Consultate texmf-dist/doc/etex/base/etex_man.pdf.
pdfTE X
  parte dalle estensioni di e-TE X, aggiunge il supporto per la generazione di ﬁle PDF oltre che dei DVI e molte estensioni che non sono legate alla generazione dell’output. Questo programma è invocato per molti formati comuni, come etex, latex, pdﬂatex. Il suo sito web è http://www.pdftex.org/. Consultate texmf-dist/doc/pdftex/manual/pdftex-a.pdf per il manuale e texmf-dist/doc/pdftex/samplepdftex/samplepdf.tex per gli esempi d’uso di alcune delle sue funzionalità.
LuaTE X
  aggiunge il supporto per l’input Unicode e per i font OpenType/ TrueType e di sistema. Incorpora anche un inteprete Lua (https://lua.org/), permettendo soluzioni a molti problemi spinosi di TE X. Quando è invocato come luatex, si comporta come un interprete Lua autonomo. Il suo sito web è http://www.luatex.org/ e il manuale di riferimento è texmf-dist/doc/luatex/base/luatexref.pdf.
(e)(u)pTE X
  ha il supporto nativo per i requisiti dell’impaginazione del giapponese; pTE X è il motore di base, mentre le varianti e- aggiungono le funzionalità di e-TE X e u- aggiunge il supporto per l’Unicode.
XeTE X
  aggiunge il supporto per l’input in Unicode e per i font OpenType e di sistema, implementato usando librerie di terze parti standard. Visitate https://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 TE X Live come programma separato; soltanto Aleph è fornito.
Aleph
  combina le estensioni Omega ed e-TE X. Consultate texmf-dist/doc/aleph/base.

#### 2.5 Altri programmi rilevanti inclusi in TE X Live

Seguono alcuni ulteriori programmi di uso comune inclusi in TE X Live:

bibtex, biber

  supporto per la bibliograﬁa.

makeindex, xindy

  supporto per gli indici.

dvips

  converte i DVI in PostScript.

xdvi

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

dviconcat, dviselect

  tagliano ed incollano le pagine contenute nei ﬁle DVI.

dvipdfmx

  converte i DVI in PDF, un approccio alternativo a pdfTE X (citato in precedenza).

psselect, psnup, …

  programmi per il trattamento dei PostScript.

pdfjam, pdfjoin, …

  programmi per il trattamento dei PDF.

context, mtxrun

  processore ConTE Xt e PDF.

htlatex, …

  tex4ht: convertitore da (LA )TE X ad HTML (e ad XML ed altro ancora).

### 3 Installazione

#### 3.1 Avviare l’installatore

Per cominciare, procuratevi il DVD TE X Collection oppure scaricate l’installatore di rete di TE X Live. Consulate https://tug.org/texlive/acquire.html per maggiori informazioni ed altri metodi per ottenere il software.

Installatore di rete, .zip o .tar.gz:
  Scaricatelo da CTAN, dal percorso systems/texlive/tlnet; l’indirizzo http://mirror.ctan.org/systems/texlive/tlnet dovrebbe reindirizzare ad un vicino mirror aggiornato. Potete 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-windows.bat si troveranno nella sotto directory install-tl.
Installatore di rete, .exe per Windows:
  Scaricatelo da CTAN come sopra e fate doppio clic su di esso. Questo avvierà una prima fase di decompressione e installazione; fate riferimento alla ﬁgura 1. Vi dà due scelte: “Intalla” e “Decomprimi soltanto”.
DVD TE X Collection:
  aprite la sotto directory texlive del DVD. Sotto Windows, il programma di installazione dovrebbe avviarsi automaticamente quando inserite il DVD. Potete ottenere il DVD diventando membri di un gruppo utenti TE X (caldamente consigliato, https://tug.org/usergroups.html) oppure acquistandolo separatamente (https://tug.org/store) o ancora masterizzandolo a partire dall’immagine ISO. Sulla maggior parte dei sistemi potete anche montare direttamente l’ISO. Dopo l’installazione dal DVD o dall’immagine ISO, se volete ottenere gli aggiornamenti da Internet, consulate 3.4.3.

Figura 1: Prima fase dell’installatore .exe per Windows

Indipendentemente dall’origine, viene eseguito lo stesso programma di installazione. La diﬀerenza più evidente tra i due è che con l’installatore di rete riceverete i pacchetti che sono disponibili al momento. Invece le immagini DVD e ISO non vengono aggiornate tra una versione pricipale pubblicata e l’altra.

Se avete la necessità di usare un proxy, usate un ﬁle ~/.wgetrc o le variabili d’ambiente con le impostazioni proxy per Wget (https://www.gnu.org/software/wget/manual/html_node/Proxies.html), o l’equivalente per qualsiasi programma di download usiate. Questo non conta se state installando dal DVD o da un’immagine ISO.

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:

> perl /percorso/verso/il/programma/install-tl
In alternativa potete invocare /percorso/verso/il/programma/install-lt se è rimasto eseguibile, oppure spostarvi con cd nella directory, ecc.; non staremo a ripetere tutte queste varianti. Potreste dover ingrandire la ﬁnestra di terminale (prompt dei comandi, per gli utenti Windows) aﬃnché mostri l’intera schermata dell’installatore testuale (ﬁgura 2).

Per installare in modalità GUI (ﬁgura 4), dovete avere installato Tcl/Tk. In questo caso, potete eseguire

> perl install-tl -gui

Le vecchie opzioni wizard e perltk/expert sono ancora disponibili, ma ora fanno le stesse cose di -gui. Per un elenco completo delle varie opzioni:

> perl install-tl -help

Sui permessi Unix: Al momento dell’installazione, la tua umask sarà rispettata dall’installatore di TE X Live. Quindi, se vuoi che l’installazione sia usabile da altri utenti oltre che da te, sii sicuro che le tue impostazioni siano permissive a suﬃcienza, 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 TE X Live ha bisogno. Consulta la sezione 3.1.4.

##### 3.1.2 MacOSX

Come accennato nella sezione 2.1, abbiamo preparato una distribuzione separata per Mac OS X chiamata MacTE X (https://tug.org/mactex). Su Mac OS X raccomandiamo di usare l’installatore nativo di MacTE X al posto dell’installatore di TE X Live, in quanto quello nativo esegue alcuni aggiustamenti speciﬁci per il Mac, in particolare per consentire con semplicità il passaggio tra le varie distribuzioni TE X per Mac OS X (MacTE X, Fink, MacPorts, …) usando la cosiddetta struttura dati TE XDist.

MacTE X è strettamente basato su TE X Live, le principali strutture delle directory e gli eseguibili sono esattamente gli stessi, ma sono aggiunte alcune ulteriori cartelle con documentazione e applicazioni speciﬁci per il Mac.

##### 3.1.3 Windows

Se state usando il ﬁle zip scaricato e decompresso, oppure se l’installatore su DVD non si avvia automaticamente, fate doppio clic su install-tl-windows.bat.

Potete avviare l’installatore anche dal prompt dei comandi. Qui sotto, > denota il prompt; l’input dell’utente è in grassetto. Se vi trovate nella cartella dell’installatore, eseguite semplicemente:

> install-tl-windows

In alternativa potete lanciarlo con un percorso assoluto, come:

> D:\texlive\install-tl-windows
per il DVD TE X Collection, supponendo che D: sia l’unità del lettore DVD. La ﬁgura 3 mostra la schermata base dell’installazione GUI, che è quella predeﬁnita per Windows.

Per installare in modalità testuale, usate:

> install-tl-windows -no-gui

Per un elenco completo delle diverse opzioni:

> install-tl-windows -help
Installing TeX Live 2021 from: ...
Platform: x86_64-linux => ’GNU/Linux on Intel x86_64’
Distribution: inst (compressed)
Directory for temporary files: /tmp
...
Detected platform: GNU/Linux on Intel x86_64
<B> binary platforms: 1 out of 16
<S> set installation scheme: scheme-full
<C> customizing installation collections
40 collections out of 41, disk space required: 7172 MB
<D> directories:
TEXDIR (the main TeX directory):
/usr/local/texlive/2021
...
<O> options:
[ ] use letter size instead of A4 by default
...
<V> set up for portable installation
Actions:
<I> start installation to hard disk
<P> save installation profile to ’texlive.profile’ and exit
<H> help
<Q> quit
Figura 2: Schermata principale dell’installatore testuale (GNU/Linux)

Figura 3: Schermata dell’installazione (Windows); il pulsante Avanzate darà qualcosa di simile alla ﬁgura 4

Figura 4: Schermata dell’installazione GUI avanzata (GNU/Linux)

##### 3.1.4 Cygwin

Prima di iniziare l’installazione, usate il programma setup.exe di Cygwin per installare i pacchetti perl e wget, a meno che non lo abbiate già fatto. I seguenti pacchetti aggiuntivi sono raccomandati:

- fontconfig [richiesto da XeTE X e LuaTE X]
- ghostscript [richiesto da vari programmi]
- libXaw7 [richiesto da xdvi]
- ncurses [fornisce il comando clear usato dall’installatore]

##### 3.1.5 L’installatore testuale

La ﬁgura 2 mostra la schermata principale della modalità testuale sotto Unix. L’installatore testuale è quello predeﬁnito, in ambiente Unix.

Questo è soltanto un installatore a riga di comando; non c’è alcun supporto per il movimento del cursore. Ad esempio, non potete muovervi tra le caselle di spunta o i campi di inserimento. Voi semplicemente digitate qualcosa al prompt (MAIUSCOLE e minuscole sono diﬀerenti), premete il tasto Invio e l’intera schermata del terminale sarà aggiornata, con il contenuto modiﬁcato.

L’interfaccia di installazione testuale è così primitiva per farla funzionare sul maggior numero possibile di piattaforme, anche con un Perl minimale.

##### 3.1.6 L’installatore graﬁco

L’installatore graﬁco predeﬁnito parte semplice, giusto con poche opzioni; vedi la ﬁgura 3. Può essere avviato con

> install-tl -gui
Il pulsante Avanzato dà accesso alla maggior parte delle opzioni dell’installazione testuale; vedi la ﬁgura 4.

Le opzioni GUI perltk/expert e wizard ora chiamano il normale installatore graﬁco.

#### 3.2 Eseguire l’installatore

L’installatore è pensato per essere perlopiù autoesplicativo, comunque seguono alcune note riguardo a varie opzioni e sottomenu.

##### 3.2.1 Menu delle architetture (solo Unix)

Available platforms:
===============================================================================
a [ ] Cygwin on Intel x86 (i386-cygwin)
b [ ] Cygwin on x86_64 (x86_64-cygwin)
c [ ] MacOSX current (10.14-) on ARM/x86_64 (universal-darwin)
d [ ] MacOSX legacy (10.6-) on x86_64 (x86_64-darwinlegacy)
e [ ] FreeBSD on x86_64 (amd64-freebsd)
f [ ] FreeBSD on Intel x86 (i386-freebsd)
g [ ] GNU/Linux on ARM64 (aarch64-linux)
h [ ] GNU/Linux on ARMv6/RPi (armhf-linux)
i [ ] GNU/Linux on Intel x86 (i386-linux)
j [X] GNU/Linux on x86_64 (x86_64-linux)
k [ ] GNU/Linux on x86_64 with musl (x86_64-linuxmusl)
l [ ] NetBSD on x86_64 (amd64-netbsd)
m [ ] NetBSD on Intel x86 (i386-netbsd)
o [ ] Solaris on Intel x86 (i386-solaris)
p [ ] Solaris on x86_64 (x86_64-solaris)
s [ ] Windows (win32)
Figura 5: Menu delle architetture

La ﬁgura 5 mostra il menu delle architetture in modalità testuale. Di base, saranno installati solo gli eseguibili per la propria piattaforma attuale. Da questo menu si può selezionare l’installazione dei binari anche per altre piattaforme. Questa opzione è utile se si condivide un’installazione di TE X in una rete di macchine eterogenee, oppure per una macchina con due sistemi operativi.

##### 3.2.2 Selezionare cosa deve essere installato

Select scheme:
===============================================================================
a [X] full scheme (everything)
b [ ] medium scheme (small + more packages and languages)
c [ ] small scheme (basic + xetex, metapost, a few languages)
d [ ] basic scheme (plain and latex)
e [ ] minimal scheme (plain only)
f [ ] ConTeXt scheme
g [ ] GUST TeX Live scheme
h [ ] infrastructure-only scheme (no TeX at all)
i [ ] teTeX scheme (more than medium, but nowhere near full)
j [ ] custom selection of collections
Figura 6: Menu degli schemi

La ﬁgura 6 mostra il menu degli schemi di TE X Live; da qui potete scegliere uno “schema”, che è un insieme di collezioni di pacchetti. Lo schema full installa tutto quanto disponibile. Questo è lo schema raccomandato, ma potete anche scegliere basic per avere solo plain e LATE X, small per quache programma in più (equvallente alla cosiddetta installazione BasicTE X di MacTE X), minimal per scopi di prova e medium o teTeX per una via di mezzo. Ci sono anche ulteriori schemi specializzati e speciﬁci per particolari paesi.

Figura 7: Menu delle collezioni

Potete riﬁnire la vostra scelta dello schema con i menu “Collezioni” (ﬁgura 7, mostrati, per cambiare, in modalità GUI).

Le collezioni stanno ad un livello di dettaglio maggiore rispetto agli schemi — in pratica, uno schema consiste in varie collezioni, una collezione consiste in uno o più pacchetti e un pacchetto (la più piccola forma di raggruppamento in TE X Live) contiene i ﬁle con le macro TE X, i font e così via.

Se desiderate un controllo maggiore di quello fornito dal menu delle collezioni, potete usare il programma TE X Live Manager (tlmgr) dopo l’installazione (cfr. la sezione 5); tramite tale programma, potete controllare l’installazione al livello di dettaglio dei singoli pacchetti.

##### 3.2.3 Directory

La strutturazione predeﬁnita è descritta nella sezione 2.3, p. 9. La directory predeﬁnita di installazione è /usr/local/texlive/2021 sotto Unix e %SystemDrive%\texlive\2021 sotto Windows. Questa conﬁgurazione permette di avere molte installazioni parallele di TE X Live, ad esempio una per ogni edizione (tipicamente per anno, come qui) e di passare tra di loro semplicemente modiﬁcando il vostro percorso di ricerca.

La directory di installazione può essere modiﬁcata impostando la cosiddetta TEXDIR nel programma di installazione. La schermata GUI per questa ed altre opzioni è mostrata nella ﬁgura 4. Tra le ragioni più comuni per cambiarla ci sono la mancanza di suﬃciente spazio su disco in quella partizione (l’intera TE X Live richiede diversi gigabyte) o la mancanza di permessi di scrittura per la posizione predeﬁnita (non è necessario essere root o amministratori per installare TE X Live, ma è necessario disporre dei permessi di scrittura sulla directory di destinazione).

Le directory di installazione possono essere modiﬁcate anche impostando alcune variabili d’ambiente prima di eseguire il programma di installazione (molto probabilmente TEXLIVE_INSTALL_PREFIX o TEXLIVE_INSTALL_TEXDIR); consultate la documentazione tramite install-tl --help (disponibile online su https://tug.org/texlive/doc/install-tl.html) per la lista completa e per maggiori dettagli.

Una ragionevole scelta alternativa è una directory all’interno della vostra home, soprattutto se sarete gli unici utilizzatori. Usate ‘~’ per speciﬁcare la vostra home, come ad esempio in ‘~/texlive/2021’.

Raccomandiamo di includere l’anno nel percorso, così da poter tenere diverse edizioni di TE X Live ﬁanco a ﬁanco (potete anche mantenere un nome indipendente dall’edizione, come /usr/local/texlive-cur, sotto forma di collegamento simbolico, di cui modiﬁcare la destinazione dopo aver provato la nuova edizione).

Modiﬁcare TEXDIR durante l’installazione causerà anche la modiﬁca di TEXMFLOCAL, TEXMFSYSVAR e TEXMFSYSCONFIG.

TEXMFHOME è la posizione raccomandata per le macro e i pacchetti personali. Il suo valore predeﬁnito è ~/texmf (~/Library/texmf su Mac). A diﬀerenza di TEXDIR, qui il carattere ~ viene mantenuto all’interno dei ﬁle di conﬁgurazione creati, dato che è utile che si riferisca alla home dell’utente che esegue TE X. Si espande in $HOME sotto Unix e %USERPROFILE% sotto Windows. Nota speciale ridondante: TEXMFHOME, come tutti gli altri percorsi, deve essere organizzata secondo il TDS, o i ﬁle potrebbero non essere trovati.

TEXMFVAR è la posizione in cui vengono memorizzati la maggior parte dei dati generati durante l’esecuzione speciﬁci per ciascun utente. TEXMFCACHE è il nome della variabile usata per lo stesso scopo da LuaLATE X e ConTE Xt MkIV (consultate la sezione 3.4.5, p. 41); il suo valore predeﬁnito è TEXMFSYSVAR, oppure (se non si hanno i permessi di scrittura per quel percorso) TEXMFVAR.

##### 3.2.4 Opzioni

Options setup:
===============================================================================
<P> use letter size instead of A4 by default: [ ]
<E> execution of restricted list of programs: [X]
<F> create all 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:
<Y> after install, set CTAN as source for package updates: [X]
Figura 8: Menu delle opzioni (Unix)

La ﬁgura 8 mostra il menu delle opzioni in modalità testuale. Ulteriori informazioni su ciascuna opzione:

use letter size instead of A4 by default:
  Questa è la selezione del formato di carta predeﬁnito. Ovviamente, se lo si desidera, si potrà e si dovrebbe speciﬁcare il formato della carta in ogni singolo documento.
execution of restricted list of programs:
  A partire da TE X Live 2010, è consentita l’esecuzione da parte di TE X di pochi programmi esterni. La (molto breve) lista di questi programmi è data nel ﬁle texmf.cnf. Consultate le novità 2010 (sezione 9.1.7) per maggiori dettagli.
create all format ﬁles:
  Per quanto i ﬁle di formato non strettamente necessari richiedano tempo per essere generati e spazio su disco per essere memorizzati, è comunque raccomandato di lasciare questa opzione attiva: se non lo fate, allora i ﬁle di formato saranno generati, quando necessari, all’interno delle directory private TEXMFVAR di ciascun utente. In tali posizioni, non saranno aggiornati automaticamente se lo sono (ad esempio) gli eseguibili o i modelli di sillabazione nell’installazione, e così potreste trovarvi ad avere formati incompatibili.
install font/macro … tree:
  Scaricano/installano la documentazione e i ﬁle sorgenti inclusi nella maggior parte dei pacchetti. Non è raccomandato disattivarle.
create symlinks in standard directories:
  Questa opzione (solo Unix) evita di dover modiﬁcare le variabili di ambiente. Senza di essa, le directory di TE X Live devono solitamente essere aggiunte alle variabili PATH, MANPATH e INFOPATH. Avete bisogno dei permessi di scrittura nelle directory di destinazione. Questa opzione serve ad accedere al sistema TE X tramite directory che sono già note agli utenti, come /usr/local/bin, che già non contengono alcun ﬁle di TE X. State attenti a non sovrascrivere i ﬁle esistenti sul vostro sistema, ad esempio, non fate l’errore di indicare directory di sistema. L’approccio più sicuro e raccomandato è quello di lasciare questa opzione disattivata.
after install, set CTAN as source for package updates:
  Quando si esegue l’installazione da DVD, questa opzione è abilitata di default, dato che di solito si vuole prendere ogni successivo aggiornamento di pacchetti dall’area CTAN che è aggiornata durante l’anno. L’unica ragione plausibile per disabilitarla è quando si vuole installare solo un sottoinsieme dal DVD e si ha intenzione di estendere l’installazione successivamente. In ogni caso, l’archivio dei pacchetti per l’installatore e per gli aggiornamenti successivi all’installazione può essere impostato in modo indipendente secondo le necessità; consultate le sezioni 3.3.1 e 3.4.3.

Opzioni speciﬁche di Windows, come mostrate dall’interfaccia GUI avanzata:

regola il percorso di ricerca
  Questa assicura che tutti i programmi vedranno la directory degli esebuibili di TE X Live nel loro percorso di ricerca.
aggiungi scorciatoie al menu
  Se attiva, ci sarà un sottomenu TE X Live del menu Start. C’è una terza opzione ‘Voce nel launcher’ oltre a ‘TeX Live menu’ e ‘Nessuna scorciatoia’. Questa opzione è descritta nella sezione 4.1.
associazioni dei ﬁle
  Le opzioni sono solo ‘Solo nuovi’ (crea le associazioni dei ﬁle, ma non sovrascrive quelle esistenti), ‘Tutti’ e ‘Nessuno’.
installa il programma TE Xworks

Quando tutte le impostazioni sono come le desiderate, potete digitare “I” nell’interfaccia testuale, oppure potete premere il pulsante ‘Installa’ nella GUI, per avviare il processo di installazione. Quando questo è completo, passate alla sezione 3.4 per leggere cos’altro dovete fare, se ce n’è bisogno.

#### 3.3 Opzioni della riga di comando di install-tl

Digitate

> 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

  Usa l’installatore GUI se è possibile. Questo richiede Tcl/Tk versione 8.5 o superiore. Vale per Mac OS X ed è distribuito con TE X Live su Windows. Le opzoni obsolete -gui=perltk e -gui=wizard sono ancora disponibili ma richiamano la stessa interfaccia GUI; se Tcl/Tk non sono disponibili, l’installazione prosegue in modalità testuale.

-no-gui

  Costringe all’uso dell’installatore testuale.

-lang LL

  Speciﬁca la lingua dell’interfaccia dell’installatore sotto forma di un codice standard (di solito di due lettere). L’installatore cerca di determinare automaticamente la lingua corretta, ma se fallisce o se la lingua corretta non è disponibile, allora usa l’inglese come ripiego. Lanciate install-tl --help per la lista delle lingue disponibili.

-portable

  Installa per un uso portabile su una chiavetta USB. Questa opzione è anche selezionabile dall’installatore testuale con il comando V e dall’installatore graﬁco. Consultate la sezione 4.2.

-profile ﬁle

  Carica il proﬁlo di installazione ﬁle ed esegue l’installazione senza interazione con l’utente. Il programma di installazione scrive sempre un ﬁle texlive.profile nella sotto directory tlpkg della vostra installazione. Ad esempio, quel ﬁle può essere passato come argomento per ripetere esattamente la stessa installazione su un sistema diﬀerente. In alternativa, potete usare un proﬁlo personalizzato, creato facilmente partendo da uno generato automaticamente e modiﬁcandone i valori, oppure potete usare un ﬁle vuoto, che prenderà come valori tutti quelli predeﬁniti.

-repository url-o-directory

  Speciﬁca l’archivio dei pacchetti da cui installare; vedi più avanti.

-in-place

  (Documentato solo per completezza: non usate questa opzione a meno che non sappiate cosa state facendo.) Se avete già una copia di TE X Live, anche ottenuta tramite rsync o svn (consultate https://tug.org/texlive/acquire-mirror.html), allora questa opzione userà ciò che avete ottenuto, così com’è, ed eseguirà solo le necessarie procedure di post installazione. Siete avvisati che il ﬁle tlpkg/texlive.tlpdb potrebbe venire sovrascritto; salvarne una copia è vostra responsabilità. Inoltre, la rimozione dei pacchetti deve essere eseguita manualmente. Questa opzione non può essere attivata dall’interfaccia dell’installatore.

##### 3.3.1 L’opzione -repository

L’archivio dei pacchetti di rete predeﬁnito è uno dei mirror di CTAN scelto automaticamente tramite http://mirror.ctan.org.

Per rimpiazzare questa scelta, potete speciﬁcare un url che comincia per ftp:, http:, https: o file:/, oppure il semplice nome di una directory (quando speciﬁcate un indirizzo http:, https: o ftp:, l’eventuale carattere ﬁnale “/” e l’eventuale “/tlpkg” conclusivo saranno ignorati).

Per esempio, potete scegliere uno speciﬁco mirror di CTAN con qualcosa del tipo: http://ctan.example.org/tex-archive/systems/texlive/tlnet/, indicando un vero nome di un sito e il suo speciﬁco percorso che ospita CTAN al posto di ctan.example.org/tex-archive. L’elenco dei mirror di CTAN si trova alla pagina https://ctan.org/mirrors.

Se il valore speciﬁcato è locale (sia tramite percorso che tramite un url file:/), saranno usati i ﬁle compressi contenuti in una sotto directory archive del percorso (anche se sono disponibili anche ﬁle non compressi).

#### 3.4 Azioni successive all’installazione

Potrebbero essere necessarie alcune azioni successivie all’installazione.

##### 3.4.1 Variabili d’ambiente per Unix

Se avete deciso di creare i collegamenti simbolici nelle directory standard (come descritto nella sezione 3.2.4), allora non c’è bisogno di modiﬁcare le variabili d’ambiente. Altrimenti, nei sistemi Unix, la directory degli eseguibili per la vostra piattaforma deve essere aggiunta al percorso di ricerca (sotto Windows, è l’installatore ad occuparsene).

Ogni piattaforma supportata ha la propria sotto directory all’interno di TEXDIR/bin. Consultate la ﬁgura 5 per la lista delle sotto directory e delle corrispondenti piattaforme.

Facoltativamente potete anche aggiungere le directory della documentazione man e Info ai propri rispettivi percorsi di ricerca, se volete che gli strumenti di sistema la trovino. Le pagine di manuale potrebbero essere trovate magicamente dopo l’aggiunta al PATH.

Per le shell compatibili con la Bourne, come bash, e usando GNU/Linux per Intel x86 e le directory predeﬁnite come esempio, il ﬁle da modiﬁcare dovrebbe essere $HOME/.profile (o un qualunque altro ﬁle aperto da .profile), e le linee da aggiungere sarebbero simili alle seguenti:

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

Per csh o tcsh, il ﬁle da modiﬁcare tipicamente è $HOME/.cshrc e le linee da aggiungere sarebbero del tipo:

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

Se già avete delle impostazioni del genere in uno dei ﬁle citati, naturalmente dovete unirvi le directory di TE X Live come è più opportuno.

##### 3.4.2 Variabili d’ambiente: conﬁgurazione globale

Se volete che questi cambiamenti siano globali oppure che si applichino a ciascun nuovo utente aggiunto nel sistema, allora dovete cavarvela da soli; c’è semplicemente troppa varietà tra i diversi sistemi nel come e nel dove queste cose siano conﬁgurate.

I nostri due suggerimenti sono: 1) potete controllare il ﬁle /etc/manpath.config e, se esiste, aggiungere linee come

MANPATH_MAP /usr/local/texlive/2021/bin/x86_64-linux \
/usr/local/texlive/2021/texmf/doc/man

E 2) veriﬁcate la presenza di un ﬁle /etc/environment che potrebbe deﬁnire il percorso di ricerca ed altre variabili di ambiente predeﬁnite.

In ciascuna directory contenente eseguibili (per Unix), noi creiamo anche un collegamento simbolico chiamato man alla directory texmf-dist/doc/man. Alcuni programmi man, come quello di Mac OS X, lo individueranno automaticamente, ovviando alla necessità di qualunque conﬁgurazione per le pagine di manuale.

##### 3.4.3 Aggiornamenti da Internet dopo l’installazione del DVD

Se avete installato TE X Live dal DVD e successivamente volete ottenere gli aggiornamenti da Internet, dovete eseguire questo comando—dopo aver aggiornato il vostro percorso di ricerca (come descritto nella sezione precedente):

> tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet

Questo dice a tlmgr di usare un mirror di CTAN nelle vicinanze per gli aggiornamenti futuri. È l’azione predeﬁnita quando si installa dal DVD, tramite l’opzione descritta nella sezione 3.2.4.

Se ci sono problemi con la selezione automatica di un mirror, potete speciﬁcarne uno in particolare dall’elenco alla pagina https://ctan.org/mirrors. Usate il percorso esatto alla sotto directory tlnet su quel mirror, come mostrato in precedenza.

##### 3.4.4 Conﬁgurazione dei font di sistema per XeTE X e LuaTE X

XeTE X e LuaTE X possono usare qualsiasi font installato nel sistema, non solo quelli nelle directory di TE X. Fanno questo tramite metodi correlati, ma non identici.

Su Windows, i font distribuiti con TE X Live sono resi automaticmanete disponibili a XeTE X tramite il loro nome. Su Mac OS X, il supporto alla ricerca per nome dei font richiede del passi aggiuntivi; visitate le pagine dedicate a MacTE X (https://tug.org/mactex). Per altri sistemi Unix, segue la procedura per trovare i font forniti con TE X Live tramite il loro nome.

Per facilitare il compito, quando il pacchetto xetex è installato (sia durante l’installazione iniziale che in seguito), viene creato il ﬁle di conﬁgurazione necessario in TEXMFSYSVAR/fonts/conf/texlive-fontconfig.conf.

Per impostare i font di TE X Live per l’uso nell’intero sistema (assumendo che abbiate gli opportuni privilegi), procedete come segue:

1. Copiate il ﬁle texlive-fontconfig.conf in /etc/fonts/conf.d/09-texlive.conf.
2. Eseguite fc-cache -fsv.

Se non avete privilegi suﬃcienti per completare i passi precedenti, o se volete rendere disponibili i font di TE X Live ad un solo utente, fate quello che segue:

1. Copiate il ﬁle texlive-fontconfig.conf in ~/.fonts.conf, dove ~ è la vostra directory di home.
2. Eseguite fc-cache -fv.

Potete eseguire fc-list per vedere i nomi dei font di sistema. L’incantesimo fc-list : family style file spacing (dove tutti gli argomenti sono esattamente come mostrati) generalmente fornisce alcune informazioni interessanti.

##### 3.4.5 ConTE Xt Mark IV

Sia il “vecchio” ConTE Xt (Mark II) che il “nuovo” ConTE Xt (Mark IV) dovrebbero funzionare così come sono dopo l’installazione di TE X Live e non dovrebbero richiedere alcuna attenzione particolare ﬁnché restate fedeli a tlmgr per gli aggiornamenti.

Comunque, dato che ConTE Xt MkIV non usa la libreria kpathsea, sarà richiesta un po’ di conﬁgurazione ogni qual volta installate nuovi ﬁle manualmente (senza usare tlmgr). Dopo ogni installazione del genere, ogni utente di MkIV deve eseguire:

context --generate

per aggiornare i dati della cache di ConTE Xt sul disco. I ﬁle risultanti sono memorizzati in TEXMFCACHE, il cui valore predeﬁnito in TE X Live è TEXMFSYSVAR;TEXMFVAR.

ConTE Xt MkIV leggerà da tutti i percorsi menzionati in TEXMFCACHE e scriverà nel primo percorso che sia scrivibile. Durante la lettura, in caso di dati di cache duplicati avrà la precedenza l’ultima corrispondenza trovata.

Per ulteriori informazioni, consultate le pagine https://wiki.contextgarden.net/Running_Mark_IV.

##### 3.4.6 Integrare macro locali e personali

Questa questione è già stata citata implicitamente nella sezione 2.3: TEXMFLOCAL (/usr/local/texlive/texmf-local o %SystemDrive%\texlive\texmf-local su Windows, di default) è pensato per i font e le macro locali, ma disponibili per l’intero sistema; mentre TEXMFHOME ($HOME/texmf o %USERPROFILE%\texmf, come predeﬁniti) è per le macro e i font personali. Queste directory sono pensate per rimanere ﬁsse da un’edizione all’altra ed il loro contenuto per essere visto automaticamente da una nuova versione di TE X Live. Quindi, è meglio trattenersi dal modiﬁcare la deﬁnizione di TEXMFLOCAL in modo che punti ad una directory troppo diversa da quella principale di TE X Live, oppure potreste doverla modiﬁcare manualmente nelle future edizioni.

In entrambe le posizioni, i ﬁle dovrebbero essere posti ognuno nella propria sotto directory secondo la Struttura delle Directory di TE X (TDS); visitate https://tug.org/tds o consultate texmf-dist/web2c/texmf.cnf. Ad esempio, il ﬁle di una classe o di un pacchetto LATE X andrebbero posizionati in TEXMFLOCAL/tex/latex o in TEXMFHOME/tex/latex, oppure in una sotto directory di una delle due.

TEXMFLOCAL richiede un database dei nomi dei ﬁle aggiornato, altrimenti i ﬁle non saranno trovati. Potete aggiornarlo con il comando mktexlsr o utilizzando il pulsante “Aggiorna il database dei nomi dei ﬁle” nel pannello di conﬁgurazione della GUI di TE X Live Manager.

Di default, ciascuna di queste variabili è deﬁnita come una directory singola, come mostrato. Questo non è un requisito rigido. Se dovete passare facilmente tra diverse versioni di grandi pacchetti, ad esempio, potete mantenere directory multiple per i vostri scopi. Questo è ottenuto impostando TEXMFHOME alla lista delle directory, tra parentesi graﬀe, separate da virgole:

TEXMFHOME = {/mia/dir1,/miadir2,/una/terza/dir}

La sezione 7.1.5 descrive ulteriormente l’espansione delle graﬀe.

##### 3.4.7 Integrare font di terze parti

Sfortunatamente, si tratta di un argomento ingarbugliato per TE X e pdfTE X. Dimenticatevene a meno che non vogliate addentrarvi nei numerosi dettagli dell’installazione di TE X. Molti font sono già inclusi in TE X Live, quindi dategli uno sguardo se ne avete voglia; le pagine web all’interno di https://tug.org/FontCatalogue mostrano praticamente tutti i font testuali inclusi nelle distribuzioni principali di TE X, cagorizzati secondo vari criteri.

Se volete installare i vostri font, visitate la pagina https://tug.org/fonts/fontinstall.html dove abbiamo fatto del nostro meglio per descrivere la procedura.

Prendete anche in considerazione l’uso di XeTE X o LuaTE X (consultate la sezione 2.4), che vi consentono di usare i font del sistema operativo senza alcuna installazione in TE X (ma fate attenzione che usare i font di sistema rende i vostri documenti istantaneamente non utilizzabili da chiunque in un ambiente diﬀerente).

#### 3.5 Collaudare l’installazione

Dopo aver installato TE X Live, naturalmente vorrete provarlo, così da poter iniziare a creare bellissimi documenti e/o font.

Una cosa che vorrete immediatamente cercare è un programma con cui elaborare i ﬁle. TE X Live installa TE Xworks su Windows (https://tug.org/texworks) e MacTE X installa TeXShop (https://pages.uoregon.edu/koch/texshop). Su altri sistemi Unix spetta a voi scegliere un editor. Ci sono molte scelte disponibili, alcune delle quali sono elencate nella prossima sezione; consultate anche https://tug.org/interest.html#editors. Qualsiasi editor di testo funzionerà; non è necessario qualcosa speciﬁco per TE X.

Il resto di questa sezione fornisce alcune procedure elementari per veriﬁcare che il nuovo sistema funzioni. Qui daremo i comandi per Unix; è più facile che sotto Mac OS X e Windows eseguiate le prove tramite un’interfaccia graﬁca, ma i principi sono gli stessi.

1. Assicuratevi per prima cosa di poter eseguire il programma tex:
   > tex --version
   TeX 3.14159265 (TeX Live ...)
   Copyright ... D.E. Knuth.
   ...
   Se questo restituisce “comando non trovato” al posto delle informazioni sulla versione e sul copyright, oppure una versione più vecchia, verosimilmente non avete la giusta directory bin nel vostro PATH. Consultate le informazioni sull’impostazione delle variabili d’ambiente a p. 39.
2. Elaborate un ﬁle LATE X elementare, generando un PDF:
   > pdflatex sample2e.tex
   This is pdfTeX 3.14...
   ...
   Output written on sample2e.pdf (3 pages, 142120 bytes).
   Transcript written on sample2e.log.
   Se questo non riesce a trovare sample2e.tex o altri ﬁle, potreste avere qualche interferenza proveniente da vecchie variabili d’ambiente o vecchi ﬁle di conﬁgurazione; noi raccomandiamo, tanto per iniziare, di eliminare tutte le variabili d’ambiente relative a TE X (per un’analisi approfondita, potete chiedere a TE X di fare un resoconto su ciò che esattamente stia cercando e che trovi; consultate “Risoluzione dei problemi” a pagina 69).
3. Mostrate un’anteprima del ﬁle PDF, ad esempio:
   > xpdf sample2e.pdf
   Dovreste vedere una nuova ﬁnestra con un bel documento che spiega alcuni dei fondamenti di LATE X (che vale la pena leggere se siete nuovi a TE X).

   Ovviamente ci sono molti altri visualizzatori di PDF; nei sistemi Unix, evince e okular sono comunemente usati. Per Windows, raccomandiamo di provare Sumatra PDF (https://www.sumatrapdfreader.org/free-pdf-reader.html). Non ci sono visualizzatori di PDF incusi in TE X Live, quindi dovete installare separatamente qualunque vogliate usare.

4. Ovviamente potete ancora generare il formato originale di TE X DVI:
   > latex sample2e.tex
5. E mostrare un’anteprima del DVI:
   > xdvi sample2e.dvi # Unix
   > dviout sample2e.dvi # Windows
   Dovete avere X in esecuzione aﬃnché xdvi funzioni; se non è così, oppure se la vostra variabile d’ambiente DISPLAY non è impostata correttamente, otterrete un errore ‘Can’t open display’.
6. Per creare un ﬁle PostScript dal DVI:
   > dvips sample2e.dvi -o sample2e.ps
7. Oppure per creare un ﬁle PDF dal DVI, una strada alternativa all’uo di pdfTE X (o di XeTE X o LuaTE X) che può essere utile qualche volta è:
   > dvipdfmx sample2e.dvi -o sample2e.pdf
8. Altri ﬁle di prova che potreste trovare utili in aggiunta a sample2e.tex sono:

   small2e.tex

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

   testpage.tex

     Veriﬁca se la vostra stampante introduce qualche margine.

   nfssfont.tex

     Per stampare tabelle e prove riguardanti i font.

   testfont.tex

     Anche questo per le tabelle dei font, ma usando plain TE X.

   story.tex

     Il più canonico tra tutti ﬁle di prova per (plain) TE X. Dovete digitare ‘\bye’ al prompt * dopo ‘tex story.tex’.

9. Se avete installato il pacchetto xetex, potete veriﬁcare che riesca ad accedere ai font di sistema in questo modo:
   > xetex opentype-info.tex
   This is XeTeX, Version 3.14…
   ...
   Output written on opentype-info.pdf (1 page).
   Transcript written on opentype-info.log.

   Se ricevete un messaggio di errore che riporta “Invalid fontname ‘Latin Modern Roman/ICU…”, allora dovete conﬁgurare il vostro sistema in modo che i font distribuiti con TE X Live possano essere trovati. Consultate la sezione 3.4.4.

#### 3.6 Collegamenti ad ulteriori software scaricabili

Se siete nuovi utilizzatori di TE X o comunque avete bisogno di aiuto nella scrittura di documenti TE X o LATE X, visitate la pagina https://tug.org/begin.html per alcune risorse introduttive.

Ecco i collegamenti ad alcuni altri strumenti che potete prendere in considerazione per l’installazione:

Ghostscript
  https://ghostscript.com/
Perl
  https://perl.org/ con i pacchetti supplementari da CPAN, https://cpan.org/
ImageMagick
  https://imagemagick.org, per l’elaborazione e la conversione di immagini
NetPBM
  http://netpbm.sourceforge.net/, anch’esso per le immagini.
Editor orientati a TE X
  C’è un’ampia scelta ed è una questione di gusto dell’utente. Eccone una selezione in ordine alfabetico (alcuni sono solo per Windows).
  - GNU Emacs è disponibile anche per Windows, visita https://www.gnu.org/software/emacs/emacs.html.
  - Emacs con AucTE X per Windows è disponibile su CTAN. La home page di AucTE X è https://www.gnu.org/software/auctex.
  - SciTE è disponibile su https://www.scintilla.org/SciTE.html.
  - Texmaker è un software libero disponibile su https://www.xm1math.net/texmaker/.
  - TeXstudio è nato come un fork di Texmaker e sono state poi aggiunge altre funzionalità; disponibile su https://texstudio.org/ e nella distribuzione proTE Xt.
  - TeXnicCenter è un software libero, disponibile su https://www.texniccenter.org.
  - TeXworks è un software libero disponibile su https://tug.org/texworks e installato come parte di TE X Live solo su Windows.
  - Vim è un software libero disponibile su https://www.vim.org.
  - WinEdt è un software shareware disponibile su https://tug.org/winedt o https://www.winedt.com.
  - WinShell è disponibile su https://www.winshell.de.

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

### 4 Installazione specializzate

Le sezioni precedenti hanno descritto il processo di installazione di base. Ora passiamo ad alcuni casi particolari.

#### 4.1 Installazioni condivise tra utenti o macchine

TE X Live è stato progettato per essere condiviso tra diversi sistemi in una rete. Con l’organizzazione predeﬁnita delle directory, nessun percorso assoluto viene conﬁgurato: le posizioni dei ﬁle necessari ai programmi di TE X Live sono relative ai programmi stessi. Potete vederlo nel ﬁle di conﬁgurazione principale $TEXMFDIST/web2c/texmf.cnf, che contiene linee come:

TEXMFROOT = $SELFAUTOPARENT
...
TEXMFDIST = $TEXMFROOT/texmf-dist
...
TEXMFLOCAL = $SELFAUTOGRANDPARENT/../texmf-local

Questo signiﬁca che aggiungere la directory degli eseguibili di TE X Live appropriati alla piattaforma al loro percorso di ricerca è suﬃciente per ottenere una conﬁgurazione funzionante.

Per la stessa ragione, potete anche installare TE X Live localmente e successivamente muovere l’intera struttura verso un percorso di rete.

Per Windows, TE X Live include un programma tlaunch. La sua ﬁnestra principale contiene voci di menu e pulsanti per i vari programmi e documentazione relativi a TE X, personalizzabili tramite un ﬁle ini. Al primo utilizzo, il programma replica le tipiche operazioni post-installazione speciﬁche per Windows, ossia la modiﬁca dei percorsi e le associazioni dei ﬁle, ma soltanto per l’utente corrente Quindi, i computer che accedono a TE X Live nella rete locale hanno solo bisogno di una scorciatoia di menu per questo programma. Consultate il manuale di tlaunch (texdoc tlaunch, o https://ctan.org/pkg/tlaunch).

#### 4.2 Installazioni portabili (USB)

L’opzione -portable dell’installazione (o il comando V nell’installatore testuale o la corrispondente opzione della GUI) crea un’installazione di TE X Live contenuta completamente in sé stessa all’interno di una radice comune e rinuncia all’integrazione con il sistema. Potete creare una tale installazione direttamente su una penna USB o copiarla su una penna USB successivamente.

Tecnicamente, l’installazione portabile è resa auto contenuta impostando i valori predeﬁniti di TEXMFHOME, TEXMFVAR e TEXMFCONFIG pari rispettivamente a TEXMFLOCAL, TEXMFSYSVAR e TEXMFSYSCONFIG; di conseguenza la conﬁgurazione e le cache per ogni utente non saranno crete.

Per eseguire TE X usando l’installazione portabile, avete bisogno di aggiungere la directory degli eseguibili appropriata al percorso di ricerca durante la sessione di terminale, come al solito.

Su Windows, potete fare doppio click su tl-tray-menu alla radice dell’installazione e creare un ‘menu tray’ temporaneo che permette di scegliere tra alcuni compiti comuni, come indicato in questa schermata: La voce “More…” spiega come potete personalizzare questo menu.

### 5 tlmgr: gestire la vostra installazione

Figura 9: GUI tlshell che mostra il menu Azioni (Mac OS X)

Figura 10: GUI tlcockpit per tlmgr

Figura 11: Modalità GUI obsoleta di tlmgr: ﬁnestra principlae dopo aver premuto il pulsante ‘Carica’

TE X Live include un programma chiamato tlmgr per gestire TE X Live dopo l’installazione iniziale. Le sue funzionalità includono:

- installare, aggiornare, archiviare, ripristinare e disinstallare i singoli pacchetti, eventualmente tenendo conto delle dipendenze;
- cercare ed elencare pacchetti e le loro descrizioni;
- elencare, aggiungere e rimuovere le piattaforme disponibili;
- cambiare le opzioni di installazione come la dimensione del foglio e il percorso di installazione (consultate la sezione 3.3.1).

Le funzionalità di tlmgr incorporano completamente quelle del programma texconﬁg. Distribuiamo e manteniamo ancora texconﬁg per tutti quelli abituati alla sua interfaccia, ma attualmente raccomandiamo di usare tlmgr.

#### 5.1 Interfacce GUI per tlmgr

TE X Live contiene diverse interfacce GUI per tlmgr. Due degne di nota: (1) la ﬁgura 9 mostra tlshell, che è scritto in Tcl/Tk e funziona così com’è sotto Windows e Mac OS X; (2) la ﬁgura 10 mostra tlcockpit, che richiede Java versione 8 o superiore e JavaFX. Entrambi sono pacchetti separati.

tlmgr ha anche una GUI nativa (mostrata in ﬁgura 11), che è avviata con:

> tlmgr -gui
Tuttavia questa estensione GUI richiede Perl/Tk, il cui modulo non è più incluso nella distribuzione Perl di TE X Live per Windows.

#### 5.2 Esempi di invocazioni di tlmgr dalla riga di comando

Dopo l’installazione iniziale, potete aggiornare il vostro sistema alle ultime versioni disponibili con:

> tlmgr update -all
Se questo vi rende ansiosi, provate prima
> tlmgr update -all -dry-run
o (meno prolisso):
> tlmgr update -list

Questo esempio più complesso aggiunge una collezione, per il motore XeTE X, 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/2021/texmf-dist/ls-R...
...
running fmtutil-sys --missing
...
Transcript written on xelatex.log.
fmtutil: /usr/local/texlive/2021/texmf-var/web2c/xetex/xelatex.fmt installed.

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

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

> tlmgr show collection-latexextra
che produce un output simile a questo:
package: collection-latexextra
category: Collection
shortdesc: LaTeX supplementary packages
longdesc: A very large collection of add-on packages for LaTeX.
installed: Yes
revision: 46963
sizes: 657941k

Inﬁne, cosa più importante, per ottenere la documentazione completa, visitate https://tug.org/texlive/tlmgr.html oppure eseguite:

> tlmgr -help

### 6 Note relative a Windows

#### 6.1 Funzionalità speciﬁche per Windows

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

Menu e collegamenti.
  Viene creato nel menu Start un nuovo sotto menu “TE X Live” che contiene le voci per alcuni programmi graﬁci (tlmgr, texdoctk) e per un po’ di documentazione.
Associazioni dei ﬁle.
  Se abilitati, TeXworks, Dviout e PS_view diventano ciascuno il programma predeﬁnito per i loro rispettivi tipi di ﬁle, oppure ottengono una voce nei menu contestuali “Apri con” per quei tipi di ﬁle.
Convertitore da bitmap ad eps.
  I vari formati bitmap ricevono una voce bitmap2eps nei loro menu contestuali “Apri con”. Bitmap2eps è un semplice script che permette a sam2p o bmeps di compiere il vero lavoro.
Impostazione automatica delle variabili di ambiente.
  Non sono richiesti interventi manuali per la loro conﬁgurazione.
Disinstallatore.
  Il programma di installazione crea una voce per TE X Live in “Installazione Applicazioni”. La pagina di disinstallazione della GUI TE X Live Manager fa riferimento a questo. Nel caso di installazione per singolo utente, il programma crea anche una voce di disinstallazione nel menu Start.
Protezione dalla scrittura.
  Nel caso dell’installazione da parte di un amministratore, le directory di TE X Live sono protette dalla scrittura, per lo meno se TE X Live è installato su un normale disco non removibile formattato con NTFS.

Inoltre, per un approccio diverso, date un’occhiata al comando tlaunch, descritto nella sezione 4.1.

#### 6.2 Software aggiuntivo incluso sotto Windows

Per essere completa, un’installazione di TE X Live ha bisogno di alcuni pacchetti di supporto che di solito non sono presenti su una macchina Windows. TE X Live fornisce questi pezzi mancanti. Questi programmi sono installati come parte di TE X Live solo su Windows.

Perl e Ghostscript.
  A causa dell’importanza di Perl e Ghostscript, TE X Live include una copia “nascosta” di questi programmi. I programmi di TE X 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.
dviout.
  Viene installato anche dviout, un visualizzatore di DVI. All’inizio, quando visualizzate i ﬁle con dviout, questo creerà i font in quanto quelli per la visione su schermo non sono installati. Dopo un po’, avrete creato la maggior parte dei font che usate e raramente vedrete la ﬁnestra di creazione dei font. Maggiori informazioni possono essere trovate nell’aiuto del programma (altamente raccomandato).
TE Xworks.
  TE Xworks è un editor orientato a TE X con un visualizzatore per PDF incorporato.
Strumenti a riga di comando.
  Assieme ai soliti programmi di TE X Live vengono installate alcune versioni per Windows di tipici programmi Unix a riga di comando. Questi programmi includono gzip, zip, unzip e gli strumenti della suite poppler (pdﬁnfo, pdﬀonts, …); non è incluso nessun visualizzatore di PDF per Windows. Una possibilità è Sumatra PDF, disponibile su https://www.sumatrapdfreader.org/.
fc-list, fc-cache, …
  Gli strumenti dalla libreria fontconﬁg consentono a XeTE X di gestire i font di sistema sotto Windows. Potete usare fc-list per trovare i nomi dei font da passare al comando esteso di XeTE X \font. Se è necessario, eseguite prima fc-cache per aggiornare le informazioni sui font.

#### 6.3 Il proﬁlo utente è “home”

La controparte Windows di una directory di home di Unix è la directory %USERPROFILE%. Sotto Windows Vista e successivi è C:\Users\<nomeutente>. Nel ﬁle texmf.cnf e in generale in Kpathsea, ~ verrà interpretato in modo appropriato sia sotto Windows che sotto Unix.

#### 6.4 Il registro di conﬁgurazione di Windows

Windows memorizza quasi tutti i dati di conﬁgurazione nel suo registro. Il registro contiene un insieme di chiavi organizzate gerarchicamente, con varie gerarchie. Le più importanti per i programmi di installazione sono HKEY_CURRENT_USER e HKEY_LOCAL_MACHINE, abbreviate in HKCU e HKLM. La porzione HKCU del registro si trova nella directory di home dell’utente (vedi sezione 6.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.

#### 6.5 Permessi di Windows

Nelle ultime versioni di Windows si fa distinzione tra utenti normali ed amministratori e solo questi ultimi hanno libero accesso quasi l’intero sistema operativo. Ci siamo sforzati di rendere TE X Live installabile senza i privilegi di amministratore.

Se il programma di installazione è eseguito con i privilegi di amministratore, c’è un’opzione per rendere l’installazione disponibile a tutti gli utenti. Se questa opzione è selezionata, i collegamenti sono creati per tutti gli utenti e il percorso di ricerca di sistema è modiﬁcato. Altrimenti, i collegamenti e le voci nel menu sono creati solo per l’utente corrente e viene modiﬁcato il percorso di ricerca dell’utente.

Indipendentemente dallo stato di amministratore, la cartella predeﬁnita di TE X Live proposta dal programma di installazione si trova sempre sotto %SystemDrive%. L’installatore veriﬁca sempre se l’utente corrente ha i permessi di scrittura in tale cartella.

Possono sorgere dei problemi se l’utente non è un amministratore e TE X già esiste nel percorso di ricerca. Dato che nel percorso di ricerca vengono prima le impostazioni di sistema e poi quelle dell’utente, la nuova TE X Live non avrebbe mai la precedenza. Come ripiego, il programma di installazione crea un collegamento ad un prompt dei comandi in cui la nuova directory degli eseguibili di TE X Live è anteposta al percorso di ricerca locale. La nuova TE X Live sarà sempre accessibile usando questo prompt. Anche il collegamento a TE Xworks, se è installato, antepone TE X Live al percorso di ricerca, quindi dovrebbe essere immune a questo problema.

Siate consapevoli che anche se avete eseguito l’accesso come amministratori, dovete chiedere esplicitamente i privilegi di amministrazione. In pratica, non serve a molto entrare come amministratore. Invece, facendo clic con il tasto destro sul programma o sul collegamento che volete eseguire, solitamente appare anche la voce “Esegui come amministratore”.

#### 6.6 Incrementare la memoria massima sotto Windows e Cygwin

Gli utenti di Windows e Cygwin (consulta la sezione 3.1.4 per i dettagli sull’installazione con Cygwin) possono ritrovarsi con la memoria esaurita durante l’esecuzione di alcuni dei programmi forniti con TE X Live. Ad esempio, asy potrebbe esaurire la memoria se tentate di allocare un array di 25.000.000 numeri reali e LuaTE X potrebbe esaurirla se tentate di elaborare un documento con un gran numero di font grandi.

Per Cygwin, potete incrementare la quantità di memoria disponibile seguendo le istruzioni nella Guida dell’Utente di Cygwin (https://cygwin.com/cygwin-ug-net/setup-maxmem.html).

Per Windows, dovete creare un ﬁle, ad esempio moremem.reg, con le seguenti quattro righe:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\Cygwin]
"heap_chunk_in_mb"=dword:ffffff00

e poi eseguire il comando regedit /s moremem.reg come amministratore (se volete cambiare la memoria unicamente per l’utente corrente invece che per l’intero sistema, usate HKEY_CURRENT_USER).

### 7 Una guida a Web2C

Web2C è una collezione integrata di programmi legati a TE X: TE X stesso, Metafont, MetaPost, BibTeX, ecc. È il cuore di TE X Live. Il sito web di Web2C, con il manuale più recente e molto altro, è https://tug.org/web2c.

Ecco un po’ di storia: l’implementazione originale fu realizzata da Tomas Rokicki il quale, nel 1987, sviluppò un primo sistema TE X-to-C cambiando dei ﬁle sotto Unix, che erano principalmente un lavoro originale di Howard Trickey e Pavel Curtis. Tim Morgan divenne il manutentore del sistema 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 gira sotto Unix, sotto i sistemi Windows a 32 bit, sotto MacOSX e sotto altri sistemi operativi. Usa i sorgenti originali di Knuth per TE X e per altri programmi scritti nel sistema di programmazione letterata WEB e li traduce in codice C. I programmi basilari di TE X gestiti in questo modo sono:

bibtex

  Gestisce le bibliograﬁe.

dvicopy

  Espande i riferimenti ai font virtuali nei ﬁle DVI.

dvitomp

  Converte da DVI a MPX (immagini MetaPost).

dvitype

  Converte i DVI in testo leggibile

gftodvi

  Provini dei font generici.

gftopk

  Converte da font generici ad impacchettati.

gftype

  Converte i font generici in testo leggibile.

mf

  Crea famiglie di caratteri tipograﬁci.

mft

  Formatta i 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 i ﬁle delle riserve di WEB.

tangle

  Converte da WEB al Pascal.

tex

  Compone tipograﬁcamente 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 TE X.

Le esatte funzioni e la sintassi 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 vi aiuterà a trarre vantaggio dalla vostra installazione Web2C.

Tutti i programmi rispettano queste opzioni GNU standard:

--help

  visualizza una guida sintetica all’utilizzo.

--verbose

  visualizza un rapporto dettagliato sull’avanzamento.

--version

  visualizza le informazioni sulla versione, poi esce.

E molti rispettano anche:

--verbose

  stampa un rapporto dettagliato dell’avanzamento

Per individuare i ﬁle, i programmi Web2C usano la libreria di ricerca dei percorsi Kpathsea (https://tug.org/kpathsea). Questa libreria usa una combinazione di variabili d’ambiente e un ﬁle di conﬁgurazione per ottimizzare la ricerca nella (enorme) raccolta di ﬁle di TE X. Web2C può controllare simultaneamente molte directory, cosa utile per mantenere la distribuzione standard TE X, le estensioni locali e quelle personali in directory distinte. Per velocizzare le ricerche dei ﬁle, alla radice di ogni albero di directory c’è un ﬁle ls-R contenente una voce con il nome ed il percorso relativo per ciascun ﬁle all’interno di quell’albero.

#### 7.1 Ricerca dei percorsi con Kpathsea

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

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

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

Per controllare un particolare elemento p di un percorso, Kpathsea per prima cosa veriﬁca se può applicare a p un database precostruito (consulta “Database di ﬁle” a pagina 66), cioè se il database è in una directory che è preﬁsso di p. Se è così, la speciﬁca del percorso è abbinata al contenuto del database.

Per quanto il più semplice e comune elemento di un percorso sia il nome di una directory, Kpathsea supporta caratteristiche aggiuntive nei percorsi di ricerca: valori predeﬁniti stratiﬁcati, nomi di variabili d’ambiente, valori di ﬁle di conﬁgurazione, directory personali degli utenti e ricerca ricorsiva di sotto directory. Dunque, diciamo che Kpathsea espande un elemento di percorso, intendendo che trasforma tutte le speciﬁche in semplici nomi di directory. Questa trasformazione è descritta nelle seguenti sezioni nello stesso ordine in cui avviene.

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

##### 7.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 ﬁle di conﬁgurazione speciﬁco per un programma, per esempio una riga ‘S /a:/b’ nel ﬁle di conﬁgurazione config.ps di dvips.
3. Un ﬁle di conﬁgurazione texmf.cnf di Kpathsea, contenente una riga del tipo ‘TEXINPUTS=/c:/d’ (vedi più avanti).
4. Il valore predeﬁnito in essere al momento della compilazione del programma.

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

##### 7.1.2 File di conﬁgurazione

Kpathsea legge i percorsi di ricerca ed altre deﬁnizioni nei ﬁle di conﬁgurazione al momento dell’esecuzione chiamati texmf.cnf. Il percorso di ricerca TEXMFCNF è usato per cercare questi ﬁle, ma non raccomandiamo di impostare questa (o qualunque altra) variabile d’ambiente per scavalcare le directory di sistema.

Invece, l’installazione normale dà luogo ad un ﬁle .../2021/texmf.cnf. Se dovete apportare delle modiﬁche ai valori predeﬁniti (di norma non è necessario), questo è il posto in cui piazzarle. Il ﬁle di conﬁgurazione principale è .../2021/texmf-dist/web2c/texmf.cnf. Non dovreste modiﬁcare quest’ultimo ﬁle, dato che le vostre modiﬁche andrebbero perdute quando la versione distribuita viene aggiornata.

Per inciso, se avete semplicemente bisogno di aggiungere una directory personale ad un particolare percorso di ricerca, impostare una variabile d’ambiente è un metodo ragionevole:

TEXINPUTS=.:/my/macro/dir:

Aﬃnché l’impostazione resti mantenibile e portable negli anni, usate un ‘:’ come terminatore (‘;’ su Windows) per inserire i percorsi di sistema, invece di provare a scriverli tutti esplicitamente (consultate la sezione 7.1.4). Un’altra possibilità è quella di usare l’alberatura TREEMFHOME (cfr. sezione 3.2.3).

Tutti i ﬁle texmf.cnf nel percorso di ricerca saranno letti e le deﬁnizioni in quelli che appaiono per primi sostituiranno quelle nei ﬁle che appaiono per ultimi. Ad esempio, con un percorso di ricerca di .:$TEXMF, i valori provenienti da ./texmf.cnf sostituiranno quelli provenienti da $TEXMF/texmf.cnf.

- I commenti iniziano con il carattere %, sia all’inizio di una riga che preceduto da uno spazio bianco, e continuano ﬁno alla ﬁne della riga.
- Le righe vuote sono ignorate.
- Una \ alla ﬁne di una riga funziona come un carattere di continuazione, cioè la linea successiva viene aggiunta di seguito alla precedente. Gli spazi bianchi all’inizio delle righe di continuazione non sono ignorati.
- Ogni riga rimanente ha la forma:
  variabile [.nomeprogramma] [=] valore
  dove il carattere ‘=’ e gli spazi che lo circondano sono opzionali (ma se valore inizia con ‘.’, è più semplice usare il ‘=’ per evitare che il punto sia interpretato come qualiﬁcatore del nome del programma).
- Il nome variabile può contenere un qualunque carattere diverso dallo spazio, da ‘=’ e da ‘.’, ma usare solo i caratteri ‘A-Za-z_’ è più sicuro.
- Se la parte ‘.nomeprogramma’ è presente, la deﬁnizione si applica solo se il programma che è in esecuzione ha il nome nomeprogramma oppure nomeprogramma.exe. Questo consente, ad esempio, alle diverse varianti di TE X di avere diversi percorsi di ricerca.
- Trattato come stringa, valore può contentere qualunque carattere. Tuttavia in pratica la maggior parte dei valori in texmf.cnf sono correlati all’espansione dei percorsi e dato che diversi caratteri speciali sono usati nell’espansione (cfr. sezione 7.1.7), come parentesi e virgole, questi non possono essere usati nei nomi delle directory.

  Un ‘;’ in valore è tradotto in ‘:’ se state usando Unix, in modo da avere un singolo texmf.cnf che può supportare sia i sistemi Unix che Windows. Questa traduzione avviene con qualsiasi valore, non solo con i percorsi di ricerca, ma fortunatamente in pratica ‘;’ non è necessario in altri valori.

  La forma $variabile.programma non è disponibile sul lato destro dell’espressione; al suo posto dovete usare una variabile aggiuntiva.

- Tutte le deﬁnizioni vengono lette prima che qualunque cosa sia espansa, quindi si può fare riferimento alle variabili prima che siano deﬁnite.

Un frammento di ﬁle di conﬁgurazione che mostra la maggior parte di questi punti è riportato 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;}//

##### 7.1.3 Espansione dei percorsi

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

##### 7.1.4 Espansione predeﬁnita

Se il percorso di ricerca a più alta priorità (consultate “Fonti dei percorsi” a pagina 61) contiene un carattere due punti in più (all’inizio, alla ﬁne oppure una coppia di due punti), Kpathsea inserisce in quel punto il percorso di ricerca con la seconda più alta priorità che sia stato deﬁnito. 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 ﬁnale usato nella ricerca sarà:
/home/karl:.:$TEXMF//tex

Dato che sarebbe inutile inserire lo stesso valore predeﬁnito 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 ﬁne, per ultimo cerca un ‘:’ doppio.

##### 7.1.5 Espansione delle parentesi graﬀe

Una caratteristica utile è l’espansione delle parentesi graﬀe, che signiﬁca che, per esempio, v{a,b}w viene espanso in vaw:vbw. L’annidamento delle parentesi è permesso. Tale caratteristica è usata per implementare gerarchie TE X multiple, assegnando una lista di nomi tra graﬀe a $TEXMF. Nel texmf.cnf distribuito, viene fatta una deﬁnizione (sempliﬁcata per questo esempio) di questo tipo:

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

Quindi la usiamo per deﬁnire, ad esempio, il percorso di input per TE X:

TEXINPUTS = .;$TEXMF/tex//

che vuol dire che, dopo aver guardato nella directory attuale, saranno esaminati i percorsi $TEXMFVAR/tex, $TEXMFHOME/tex, $TEXMFLOCAL/tex e $TEXMFDIST/tex (gli ultimi due usando i database ls-R).

##### 7.1.6 Espansione delle sotto directory

In un elemento di percorso, due o più barre (slash) consecutive alla ﬁne 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 è speciﬁcato.

Se speciﬁcate il nome di un ﬁle dopo il ‘//’, saranno incluse solo le sotto directory che lo contengono. 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.

È possibile usare più volte il costrutto ‘//’ in un percorso, ma ogni ‘//’ all’inizio di un percorso viene ignorato.

##### 7.1.7 Riepilogo dei caratteri speciali in texmf.cnf

Il seguente elenco riassume i caratteri speciali e i costrutti nei ﬁle di conﬁgurazione di Kpathsea.

:

  Separatore nella speciﬁca di un percorso; all’inizio o alla ﬁne di un percorso, o doppio nel mezzo, sostituisce l’espansione di percorso predeﬁnita.

;

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

$

  Espansione di una variabile.

~

  Rappresenta la directory di home di un utente.

{...}

  Espansione di parentesi graﬀe.

//

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

%

  Inizio di un commento.

\

  Alla ﬁne di una linea, carattere di continuazione per permettere voci di più linee.

!!

  Cerca solo nei database per individuare un ﬁle, non cerca sul disco.

Quando esattamente un carattere sarà considerato speciale o si comporterà come sé stesso dipende dal contesto in cui è usato. Le regole sono intrinseche nei livelli multipli di interpretazione della conﬁgurazione (parsing, espansione, ricerca, …) e quindi, sfortunatamente, non possono essere espresse in modo conciso. Non esiste un meccanismo di escape generale; in particolare, ‘\’ non è un “carattere di escape” nei ﬁle texmf.cnf.

Quando è il momento di scegliere i nomi delle directory per l’istallazione, è più sicuro saltarli completamente.

#### 7.2 Database di nomi di ﬁle

Kpathsea si sforza di minimizzare gli accessi al disco per le ricerche. Nonostante ciò, nella TE X Live standard o in qualunque installazione con un numero suﬃciente di directory, esplorare qualunque possibile directory per un dato ﬁle richiederebbe un tempo eccessivamente lungo. Per questo Kpathsea può usare un ﬁle di “database” testuale costruito esternamente, chiamato ls-R, che mappa ﬁle a directory, evitando così la necessità di esplorare esaustivamente il disco.

Un secondo ﬁle di database, aliases, permette di dare nomi aggiuntivi ai ﬁle elencati in ls-R.

##### 7.2.1 Il database di nomi

Come spiegato in precedenza, il nome del database principale di nomi di ﬁle deve essere ls-R. Potete metterne uno alla radice di ogni ramo TE X della vostra installazione nel quale volete che si eﬀettuino le ricerche ($TEXMF di base). Kpathsea cerca i ﬁle ls-R nel percorso TEXMFDBS.

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

cd /la/vostra/radice/texmf && \ls -1LAR ./ >ls-R
assumendo che il comando ls del vostro 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 ﬁle installati cambiano, ad esempio dopo aver installato o aggiornato un pacchetto LATE X.

Se un ﬁle non è trovato nel database, per default Kpathsea va avanti e cerca sul disco. Se un particolare elemento di percorso comincia con ‘!!’, però, la ricerca per quell’elemento sarà eﬀettuata solo nel database, mai sul disco.

##### 7.2.2 kpsewhich: ricerca indipendente di percorsi

Il programma kpsewhich compie la ricerca di percorsi indipendentemente da qualunque particolare applicazione. Esso può essere utile come una sorta di programma find per individuare i ﬁle nelle gerarchie TE X (è ampiamente usato negli script ‘mktex’… distribuiti).

> kpsewhich opzioni… nomeﬁle…
Le opzioni speciﬁcate in opzioni cominciano con ‘-’ oppure con ‘--’ ed è accettata qualunque abbreviazione non ambigua.

Kpathsea cerca ogni argomento sulla riga di comando che non sia un’opzione come se fosse il nome di un ﬁle e restituisce il primo trovato. Non ci sono opzioni per restituire tutti i ﬁle con un particolare nome (per fare questo, potete eseguire il programma Unix ‘find’).

Le opzioni più comuni sono descritte in seguito.

--dpi=num

  Imposta la risoluzione a num; questa opzione ha eﬀetto solo nelle ricerche dei ﬁle ‘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 ﬁle. Per i formati che non hanno associato un suﬃsso non ambiguo, come i ﬁle di supporto di MetaPost e i ﬁle di conﬁgurazione di dvips, dovete speciﬁcare il nome così come è conosciuto da Kpathsea, come tex o enc files. Eseguite kpsewhich --help-formats per un elenco.

--mode=stringa

  Imposta il nome della modalità a stringa; questa opzione ha eﬀetto solo sulle ricerche dei ﬁle ‘gf’ e ‘pk’. Non esiste un valore preimpostato: sarà trovata qualunque tipo di modalità.

--must-exist

  Fa tutto ciò che è possibile per trovare il ﬁle, inclusa nello speciﬁco la ricerca sul disco. Di base, per questioni di eﬃcienza, è controllato solo l’archivio ls-R.

--path=stringa

  Cerca nel percorso di ricerca stringa (separata da due punti, come al solito), invece di ricavarlo dal nome del ﬁle. ‘//’ 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ò modiﬁcare i percorsi di ricerca per mezzo della funzionalità .nomeprogramma. Il valore predeﬁnito è kpsewhich.

--show-path=nome

  Mostra il percorso usato per la ricerca dei ﬁle 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.

##### 7.2.3 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 ﬁle article.cls. Dato che il suﬃsso ‘.cls’ non è ambiguo, non abbiamo bisogno di speciﬁcare che vogliamo cercare un ﬁle di tipo tex (directory dei ﬁle sorgente TE X). Lo troviamo nella sotto directory tex/latex/base sotto la directory di TE X Live ‘texmf-dist’. In modo simile, tutti i ﬁle seguenti sono trovati senza problemi grazie alla non ambiguità dei loro suﬃssi.
> 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

A proposito, quest’ultimo è un database bibliograﬁco in formato BibTeX per gli articoli di TUGboat.

> kpsewhich cmr10.pk
I ﬁle di gliﬁ 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 TE X Live non ci sono ﬁle ‘.pk’ pregenerati per il carattere tipograﬁco Computer Modern — come predeﬁnite 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 ﬁle ‘.pk’ e dato che la modalità predeﬁnita 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 speciﬁchiamo 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 ﬁle .pk richiesti usando lo script mktexpk.

Adesso spostiamo la nostra attenzione sui ﬁle di intestazione e di conﬁgurazione di dvips. Cercheremo innanzitutto un ﬁle tra quelli usati comunemente, il prologo generale tex.pro per il supporto a TE X, prima di spostare l’attenzione sul generico ﬁle di conﬁgurazione (config.ps) e la mappa dei font PostScript psfonts.map — a partire dal 2004, i ﬁle di mappatura e di codiﬁca hanno i propri percorsi di ricerca e una nuova posizione negli alberi texmf. Dato che il suﬃsso ‘.ps’ è ambiguo, dobbiamo speciﬁcare esplicitamente quale tipo stiamo considerando (dvips config) per il ﬁle 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 ﬁle di supporto per il carattere PostScript URW Times. Il preﬁsso per questi ﬁle nello schema standard dei nomi dei font è ‘utm’. Il primo ﬁle che cerchiamo è quello di conﬁgurazione, che contiene il nome del ﬁle di mappatura:

> kpsewhich --format="dvips config" config.utm
/usr/local/texmf-dist/dvips/psnfss/config.utm
Il contenuto di questo ﬁle è
p +utm.map
che punta al ﬁle utm.map, che sarà il prossimo che cercheremo.
> kpsewhich utm.map
/usr/local/texmf-dist/fonts/map/dvips/times/utm.map
Questo ﬁle di mappatura deﬁnisce i nomi dei ﬁle 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 ﬁle per il Times Roman utmr8a.pfb e cerchiamo la sua posizione nell’albero delle directory texmf con una ricerca dei ﬁle di font Type 1:
> kpsewhich utmr8a.pfb
/usr/local/texmf-dist/fonts/type1/urw/times/utmr8a.pfb

Dovrebbe essere chiaro da questi esempi come potete individuare facilmente dove si trovi un dato ﬁle. Tutto ciò è particolarmente importante se sospettate che in qualche modo venga prelevata la versione sbagliata di un ﬁle, in quanto kpsewhich mostrerà il primo ﬁle incontrato.

##### 7.2.4 Risoluzione dei problemi

A volte è necessario investigare sul come un programma determina i riferimenti ad un ﬁle. Per rendere pratico ciò, Kpathsea oﬀre vari livelli di messaggi diagnostici:

1

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

2

  Riferimenti alle tabelle dei dati (come i database ls-R, i ﬁle di mappatura, quelli di conﬁgurazione).

4

  Operazioni di apertura e chiusura dei ﬁle.

8

  Informazioni generali sui percorsi per i tipi di ﬁle cercati da Kpathsea. Utile per scoprire dove è stato deﬁnito un particolare percorso per un ﬁle.

16

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

32

  Ricerche di ﬁle.

64

  Valori delle variabili.

Il valore -1 attiverà tutte le opzioni precedenti; in pratica, questo valore è di solito il più comodo.

Analogamente, con il programma dvips, impostando una combinazione di opzioni di diagnostica, è possibile seguire in dettaglio le posizioni da cui i ﬁle sono prelevati. In alternativa, quando un ﬁle non viene trovato, la traccia dei messaggi mostra in quali directory il programma ha cercato il ﬁle, 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 di 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: in questo sistema non è semplice redirigere tutti i messaggi verso un ﬁle. Per scopi di diagnostica potete impostare temporaneamente SET KPATHSEA_DEBUG_OUTPUT=err.log).

Consideriamo, come esempio, un piccolo ﬁle sorgente di LATE X, hello-world.tex, che contiene il seguente testo.

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

Questo piccolo ﬁle usa solo il font cmr10, quindi vediamo come dvips prepara il ﬁle 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). Il risultato (leggermente riorganizzato) appare in ﬁgura 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 ﬁle di conﬁgurazione

dvips inizia individuando i propri ﬁle di lavoro. Per primo viene trovato texmf.cnf, che fornisce le deﬁnizioni dei percorsi di ricerca per gli altri ﬁle, quindi il database di ﬁle ls-R (per ottimizzare la ricerca) e il ﬁle 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 ﬁle. Quindi dvips prosegue nel cercare il ﬁle di conﬁgurazione generico config.ps prima di guardare al ﬁle per le personalizzazioni .dvipsrc (che in questo caso non viene trovato). Inﬁne, dvips individua il ﬁle di conﬁgurazione config.cms per il font PostScript Computer Modern (questo passo è stato attivato con l’opzione -Pcms data al comando dvips). Questo ﬁle contiene la lista delle mappature che deﬁniscono la relazione tra il modo di chiamare i font in TE X, 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 ﬁle, più il generico ﬁle di mappatura psfonts.map, che è caricato sempre (contiene le dichiarazioni per i font PostScript usati comunemente; consultate la parte ﬁnale della sezione 7.2.3 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 ﬁle 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 ﬁle in questione, dvips mostra la data e l’ora, ci informa che genererà il ﬁle hello-world.ps, poi che avrà bisogno del ﬁle 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 ﬁle cmr10.tfm, che viene trovato, quindi viene fatto riferimento ad alcuni ulteriori ﬁle di prologo (non mostrati) e, inﬁne, l’istanza Type 1 del font, cmr10.pfb, è individuata ed inclusa del ﬁle in uscita (vedi l’ultima riga).
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]

#### 7.3 Opzioni di esecuzione

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

main_memory

  La quantità complessiva di memoria disponibile per TE X, Metafont e MetaPost. Dovete creare un nuovo ﬁle di formato per ogni impostazione diﬀerente. Per esempio, potreste generare una versione “enorme” di TE X e chiamare il ﬁle di formato hugetex.fmt. Usando il modo normale di indicare il nome del programma usato da Kpathsea, lo speciﬁco valore della variabile main_memory sarà letto da texmf.cnf.

extra_mem_bot

  Spazio aggiuntivo per le strutture dati “grandi” di TE X: scatole, colle, interruzioni, ecc. Utile specialmente se usate PI CTE X.

font_mem_size

  Numero di registri per le informazioni sui font disponibili in TE X. Questo valore è più o meno pari alla dimensione totale di tutti i ﬁle TFM che vengono letti.

hash_extra

  Spazio aggiuntivo per la tabella con i nomi delle sequenze di controllo; il suo valore predeﬁnito è 600000.

Questa funzionalità non è un sostituto per una vera allocazione dinamica di memoria e array, ma dato che questi sono estremamente diﬃcili da implementare negli attuali sorgenti di TE X, questi parametri di esecuzione forniscono un pratico compromesso per oﬀrire un minimo di ﬂessibilità.

#### 7.4 $TEXMFDOTDIR

Nei vari posti qui sopra, abbiamo dato diversi percorsi di ricerca che iniziano per . (per cercarre prima nella directory corrente), come in

TEXINPUTS=.;$TEXMF/tex//

Questa è una sempliﬁcazione. Il ﬁle texmf.cnf che distribuiamo in TE X Live usa $TEXMFDOTDIR al posto del semplice ‘.’, come in:

TEXINPUTS=$TEXMFDOTDIR;$TEXMF/tex//
(nel ﬁle distribuito, anche il secondo elemento del percorso è leggermente più complesso di $TEXMF/tex//, ma è un dettaglio; qui vogliamo parlare di $TEXMFDOTDIR).

Il motivo per usare la variabile $TEXMFDOTDIR nelle deﬁnizioni dei percorsi invece del semplice ‘.’ è soltanto per poterla rideﬁnire. Ad esempio, un documento commplesso potrebbe avere molti ﬁle sorgente organizzati in molte sotto directory. Per gestire questo, potete impostare TEXMFDOTDIR a .// (ad esempio nell’ambiente in cui compilate il documento) e saranno esplorate tutte (attenzione: non usate .// automaticamente; di solito è fortemente indesiderato e potenzialmente insicuro cercare tra tutte le sotto directory per un documento qualunque).

Come altro esempio, potreste non voler cercare per nulla nella directory attuale, per esempio se avete organizzato i vostri ﬁle per essere individuati tramite percorsi espliciti. Potete impostare $TEXMFDOTDIR a, per dire, /nonesuch o qualunque directory non esistente per questo.

Il valore predeﬁnito di $TEXMFDOTDIR è semplicemente ‘.’, come impostato nel nostro texmf.cnf.

### 8 Ringraziamenti

TE X Live è il risultato dello sforzo congiunto di praticamente tutti i gruppi utenti TE X. Questa edizione di TE X Live è stata supervisionata da Karl Berry. Gli altri contributori principali, passati e presenti, sono elencati qui sotto.

- I gruppi utenti TE X Inglese, Tedesco, Olandese e Polacco (TUG, DANTE e.V., NTG e GUST, rispettivamente), che forniscono la necessaria infrastruttura tecnica ed amministrativa. Unitevi al gruppo utenti TE X più vicino a voi (consultate la pagina https://tug.org/usergroups.html)!
- Il team di CTAN (https://ctan.org), che distribuisce le immagini di TE X Live e fornisce l’infrastruttura comune per gli aggiornamenti dei pacchetti, dalla quale dipende TE X Live.
- Nelson Beebe per aver reso disponibili molte piattaforme agli sviluppatori di TE X Live, per i suoi esaustivi collaudi e per gli impareggiabili sforzi bibliograﬁci.
- John Bowman per aver fatto molti cambiamenti al suo programma di graﬁca avanzata Asymptote aﬃnché funzionasse in TE X Live.
- Peter Breitenlohner ed il team di e-TE X per le stabili fondamenta del TE X del futuro e Peter in particolare per gli anni di aiuto stellare con gli autotool di GNU e per aver mantenuto i sorgenti aggiornati. Peter è venuto a mancare nell’ottobre 2015 e noi dedichiamo il lavoro che va avanti alla sua memoria.
- Jin-Hwan Cho e tutti i membri del team di DVIPDFMx per il loro eccellente driver e la velocità di risposta ai problemi di conﬁgurazione.
- Thomas Esser, senza il cui meraviglioso pacchetto teTE X TE X Live non sarebbe mai esistito.
- Michel Goossens, che è stato coautore della documentazione originale.
- Eitan Gurari, il cui TE X4ht è stato usato per creare la versione HTML di questa documentazione e che ha lavorato instancabilmente per migliorarlo con brevi preavvisi ogni anno. Eitan è scomparso prematuramente nel giugno 2009 e dedichiamo questa documentazione alla sua memoria.
- Hans Hagen per la grande quantità di collaudi e per aver permesso al suo pacchetto ConTE Xt (https://pragma-ade.com) di lavorare nell’infrastruttura di TE X Live e per guidare continuamente lo sviluppo di TE X.
- Hàn Thế Thành, Martin Schröder e il team di pdfTE X (http://pdftex.prg) per i continui miglioramenti delle capacità di TE X.
- Hartmut Henkel per i signiﬁcativi contributi allo sviluppo di pdfTE X, LuaTE X e molto ancora.
- Shunshaku Hirata, per i contributi originalissimi e per continuare il lavoro su DVIPDFMx.
- Taco Hoekwater per gli importanti forzi nel rinnovato sviluppo di MetaPost e (Lua)TE X (http://luatex.org) stesso, per aver incorporato ConTE Xt in TE X Live, per aver dato a Kpathsea le funzionalità multi-thread e per molto altro ancora.
- Khaled Hosny, per il considerevole lavoro su XeTE X, DVIPDFMx, e per gli sforzi con i font, arabi ed altri.
- Paweł Jackowski per l’installatore Windows tlpm e Tomasz Łuczak per tlpmgui, usati nelle edizioni passate.
- Akira Kakuto per aver fornito gli eseguibili per Windows a partire dalle sue distribuzioni per il TE X giapponese W32TEX e W64TEX (http://w32tex.org) e per molti altri contributi allo sviluppo.
- Jonathan Kew per aver sviluppato il notevole motore XeTE X e per aver investito tempo e fatica per integrarlo in TE X Live, così come per la versione iniziale dell’installatore di MacTE X e per l’editor TE Xworks, che raccomandiamo.
- Hironori Kitagawa, per la manutenzione di (e)pTE X e il relativo supporto.
- Dick Koch per mantenere MacTE X (https://tug.org/mactex) a distanza molto ravvicinata da TE X Live e per il suo gran buon umore nel farlo.
- Reinhard Kotucha per i suoi considerevoli contributi all’infrastruttura e all’installatore di TE X Live 2008, così come per gli sforzi di ricerca sotto Windows, lo script getnonfreefonts e molto altro.
- Siep Kroonenberg, anche lui per importanti contributi all’infrastruttura e all’installatore di TE X Live 2008, specialmente sotto Windows, e il grosso del lavoro di aggiornamento di questo manuale per descrivere queste funzionalità.
- Clerk Ma, per la correzione dei bug e le estensioni nel motore.
- Mojca Miklavec, per il grande aiuto con ConTE Xt, per aver fornito gli eseguibili per molte piattaforme e per tanto altro ancora.
- Heiko Oberdiek per il pacchetto epstopdf e molti altri, per aver compresso gli enormi ﬁle di dati di pst-geo così che potessimo includerli e, soprattutto, per il suo notevole lavoro su hyperref.
- Phelype Oleinik, per l’\input conﬁnato nel gruppo tra i motori nel 2020, e molto altro.
- Petr Okšak che ha coordinato e controllato con grande attenzione tutto il materiale in ceco e in slovacco.
- Toshio Oshima per il suo visualizzatore per Windows dviout.
- Manuel Pégourié-Gonnard per aver aiutato con gli aggiornamenti dei pacchetti, con i miglioramenti alla documentazione e con lo sviluppo di texdoc.
- Fabrice Popineau per l’originale supporto per Windows in TE X Live e per il lavoro sulla documentazione in francese.
- Norbert Preining, l’architetto principale dell’attuale infrastruttura e installatore di TE X Live, anche per aver coordinato la versione Debian di TE X Live (insieme con Frank Küster) e per l’enorme lavoro svolto lungo il percorso.
- Sebastian Rahtz per aver originariamente creato TE X Live ed averne curato la manutenzione per molti anni. Sebastian è venuto a mancare nel marzo 2016 e noi dedichiamo il lavoro che va avanti alla sua memoria.
- Luigi Scarso, per aver continuato lo sviluppo di Metapost, LuaTE X e molto altro ancora.
- Andreas Scherer per cwebbit, l’implementazione di CWEB usata in TE X Live, e per continuare la manutenzione del CWEB originale.
- Takuji Tanaka per la manutenzione di (e)(u)pTE X e il relativo supporto.
- Tomasz Trzeciak per aiuti su vasta scala con Windows.
- Vladimir Volovich per il sostanziale aiuto nel porting e in altre problemi di manutenzione e specialmente per aver reso possibile includere xindy.
- Staszek Wawrykiewicz, un collaudatore principale di tutta TE X Live e coordinatore di molti dei più importanti contributi polacchi: font, installazione sotto Windows e molto altro. Staszek è venuto a mancare nel febbraio 2018 e noi dedichiamo il lavoro che va avanti alla sua memoria.
- Olaf Weber per la sua paziente manutenzione di Web2C negli anni passati.
- Gerben Wierda per aver creato e fatto manutenzione all’originale supporto per Mac OS X.
- Graham Williams, l’arteﬁce del Catalogo TE X dei pacchetti.
- Joseph Wright, per il tanto lavoro sul rendere le stesse funzionalità primitive disponibili su tutti i motori.
- Hironobu Yamashita, per il tanto lavoro su pTE X e il relativo supporto.

Preparatori degli eseguibili: Marc Baudoin (amd64-netbsd, i386-netbsd), Ken Brown (i386-cygwin, x86_64-cygwin), Simon Dales (armhf-linux), Johannes Hielscher (aarch64-linux), Akira Kakuto (win32), Dick Koch (universal-darwin), Mojca Miklavec (amd64-freebsd, i386-freebsd, x86_64-darwinlegacy, i386-solaris, x86_64-solaris, sparc-solaris), Norbert Preining (i386-linux, x86_64-linux x86_64-linuxmusl). Per informazioni sul processo di compilazione di TE X Live, visitate https://tug.org/texlive/build.html.

Attuali traduttori della documentazione: Takuto Asakura (giapponese), Denis Bitouzé & Patrick Bideault (francese), Carlos Enriquez Figueras (spagnolo), Jjgod Jiang, Jinsong Zhao, Yue Wang & Helin Gai (cinese), Nikola Lečić (serbo), Marco Pallante & Carla Maggi (italiano), Petr Sojka & Jan Busa (ceco/slovacco), Boris Veytsman (russo), Zoﬁa Walczak (polacco), Uwe Ziegenhagen (tedesco), La pagina web della documentazione di TE X Live è https://tug.org/texlive/doc.html.

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

### 9 Storia delle edizioni

#### 9.1 Passato

La discussione iniziò nel tardo 1993 quando il gruppo utenti TE X olandese stava iniziando a lavorare al proprio CD 4AllTE X 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 a quel tempo, ma non solo diede origine al CD di grande successo 4AllTE X, ma altresì spinse il gruppo di lavoro del TUG Technical Council verso una Struttura delle Directory TE X (TDS, TE X Directory Structure, https://tug.org/tds), che speciﬁcò come creare collezioni coerenti e gestibili di ﬁle di supporto a TE X. 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 4AllTE X che gli utenti Unix avrebbero beneﬁciato da un simile semplice sistema e questo è l’altro ﬁlone principale di TE X Live.

Per prima cosa ci mettemmo all’opera per realizzare un nuovo CD della TDS basato su Unix nell’autunno del 1995 e rapidamente identiﬁcammo il teTE X di Thomas Esser come l’impianto ideale, dato che già aveva il supporto per più piattaforme ed era costruito con la portabilità tra diversi ﬁle 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 teTE X e decidemmo di basare la seconda edizione del CD sul Web2C standard, con l’inclusione dello script texconfig proveniente da teTE X. La terza edizione del CD fu basata su una nuova importante revisione di Web2C, la 7.2, realizzata da Olaf Weber; allo stesso tempo, era stata fatta una nuova revisione di teTE X e TE X Live incluse quasi tutte le sue funzionalità. La quarta edizione seguì lo stesso modello, usando una nuova versione di teTE X e di Web2C (7.3). Il sistema adesso includeva anche un completo allestimento per Windows, grazie a Fabrice Popineau.

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 ﬁle XML. Ma il cambiamento principale per TE X Live 5 fu che tutto il software non libero fu rimosso. Tutto in TE X Live era pensato per essere compatibile con le Debian Free Software Guidelines (linee guida Debian sul software libero, https://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ù importante fu un nuovo concetto di installazione: l’utente poteva selezionare un insieme più preciso 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 ﬁle 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 teTE X per correggere l’allontanamento l’uno dall’altro avvenuto nelle versioni 5 e 6.

##### 9.1.1 2003

Nel 2003, con il continuo ﬂusso di aggiornamenti ed aggiunte, scoprimmo che TE X Live era cresciuta così tanto che non poteva più essere contenuta in un singolo CD, quindi la dividemmo in tre diverse distribuzioni (consultate la sezione 2.1, p. 7). In più:

- Su richiesta del team di LATE X, cambiammo i comandi latex e pdﬂatex aﬃnché usassero e-TE X (consultate p. 11).
- I nuovi font Latin Modern furono inclusi (e sono raccomandati).
- Il supporto per Alpha OSF fu rimosso (il supporto per HPUX era già stato rimosso in precedenza) dato che nessuno aveva (o voleva oﬀrire) l’hardware su cui compilare i nuovi eseguibili.
- L’allestimento per Windows fu cambiato sostanzialmente; per la prima volta fu introdotto un ambiente integrato basato su XEmacs.
- Importanti programmi aggiuntivi per Windows (Perl, Ghostscript, ImageMagic, Ispell) sono ora installati nelle directory TE X Live.
- I ﬁle di mappatura per i font usati da dvips, dvipdfm e pdftex sono ora generati da un nuovo programma updmap ed installati in texmf/fonts/map.
- TE X, Metafont e MetaPost adesso, come impostazione predeﬁnita, mostrano la maggior parte dei caratteri in ingresso (dal numero 32 ASCII in su) come sé stessi nei ﬁle che vengono generati (ad esempio, con \write), nei ﬁle di registro e sul terminale, ossia non sono più tradotti usando la notazione ^^. In TE X Live 7 questa traduzione dipendeva dalle impostazioni sulla lingua del sistema; adesso, queste impostazioni locali non inﬂuenzano più il comportamento dei programmi TE X. Se per qualche ragione avete bisogno della notazione ^^, rinominate il ﬁle texmf/web2c/cp8bit.tcx (le edizioni future avranno un modo più pulito per controllare questa opzione).
- Questa documentazione fu revisionata sostanzialmente.
- Inﬁne, dato che i numeri delle edizioni erano cresciuti in modo poco agevole, da adesso la versione è identiﬁcata semplicemente dall’anno: TE X Live 2003.

##### 9.1.2 2004

Il 2004 vide molti cambiamenti:

- Se avete font installati localmente che usano i propri ﬁle di supporto .map o (molto meno probabilmente) .enc, potreste aver bisogno di spostare questi ﬁle.

  I ﬁle .map adesso sono cercati soltanto in sotto directory di fonts/map (per ciascuna gerarchia texmf, lungo il percorso TEXFONTMAPS). In modo simile, i ﬁle .enc sono cercati soltanto nelle sottodirectory di font/enc, lungo il percorso ENCFONTS. updmap tenterà di avvisarvi su ﬁle che possono provocare problemi.

  Per i metodi per gestire questa ed altre informazioni, visitate la pagina https://tug.org/texlive/mapenc.html.

- TE X Collection è stata espansa con l’aggiunta di un CD installabile basato su MiKTE X, per coloro che preferiscono quell’implementazione a Web2C. Consultate la sezione 2 (p. 7).
- All’interno di TE X Live, la singola grande directory texmf delle edizioni precedenti è stata sostituita da: texmf, texmf-dist e texmf-doc. Consultate la sezione 2.2 (p. 8) e il ﬁle README contenuto in ciascuna di esse.
- Tutti ﬁle in ingresso relativi a TE X sono adesso raccolti nella sotto directory tex delle varie texmf*, piuttosto che avere le diverse posizioni tex, etex, pdftex, pdfetex, ecc. Consultate texmf-dist/doc/generic/tds/tds.html#Extensions.
- Gli script di supporto (pensati per non essere invocati dagli utenti) sono adesso posizionati in una nuova sotto directory delle varie texmf* chiamata scripts e possono essere cercati usando kpsewhich -format=texmfscripts. Se quindi avete dei programmi che richiamano questi script, dovranno essere corretti. Consultate texmf-dist/doc/generic/tds/tds.html#Scripts.
- Quasi tutti i formati lasciano la maggior parte dei caratteri stampabili uguali a se stessi tramite il “ﬁle di traduzione” cp227.tcx, piuttosto che trasformarli nella notazione ^^. Nello speciﬁco, i caratteri alle posizioni ASCII 32–256, la tabulazione orizzontale, quella verticale e il “form feed” sono considerati stampabili e non vengono trasformati. Le eccezioni sono plain TE X (solo i caratteri 32–126 sono stampabili), ConTE Xt (caratteri 0–255) e i formati legati ad Omega. Questo comportamento predeﬁnito è quasi lo stesso che in TE X Live 2003, ma è implementato in maniera più pulita, con maggiori possibilità di personalizzazione. Consultate texmf-dist/doc/web2c/web2c.html#TCX-files (ad ogni modo, con l’input in formato Unicode, TE X potrebbe stampare sequenze parziali di caratteri quando viene mostrato il contesto degli errori dato che legge l’input come una sequenza di byte, non di caratteri).
- pdfetex è adesso il motore predeﬁnito per tutti i formati tranne (plain) tex stesso (ovviamente genera ﬁle DVI quando è eseguito come latex, ecc.). Questo signiﬁca, tra le altre cose, che le caratteristiche di microtipograﬁa di pdftex sono disponibili in LATE X, ConTE Xt, ecc., così come le funzionalità di e-TE X (texmf-dist/doc/etex/base/).

  Signiﬁca anche che è più importante che mai usare il pacchetto ifpdf (funziona sia con plain TE X, che con LATE X) o del codice equivalente, perché veriﬁcare semplicemente se \pdfoutput o qualche altra primitiva sono deﬁniti non è un modo aﬃdabile per determinare se si sta generando un ﬁle PDF. Per quest’anno abbiamo cercato di rendere questo aspetto compatibile con le edizioni passate nel miglior modo possibile, ma a partire dal prossimo anno \pdfoutput potrebbe essere deﬁnito anche se il ﬁle generato è un DVI.

- pdfTE X (http://pdftex.org) ha molte nuove funzionalità:
  - \pdfmapfile e \pdfmapline forniscono il supporto alle mappature dei font direttamente all’interno di un documento.
  - L’espansione microtipograﬁca dei font può essere usata più facilmente.
    https://www.ntg.nl/pipermail/ntg-pdftex/2004-May/000504.html
  - Tutti i parametri che prima erano impostati tramite lo speciale ﬁle di conﬁgurazione pdftex. cfg devono essere adesso impostati tramite primitive, tipicamente in pdftexconfig.tex; pdftex.cfg non è più supportato. Ogni ﬁle .fmt esistente deve essere rigenerato quando pdftexconfig.tex viene modiﬁcato.
  - Per saperne di più, consultate il manuale di pdfTE X: texmf-dist/doc/pdftex/manual/pdftex-a.pdf.
- La primitiva \input in tex (e in mf e mpost) adesso accetta nomi con spazi ed altri caratteri speciali racchiusi tra doppi apici. Esempi tipici:
  \input "file con spazi" % plain
  \input{"file con spazi"} % latex

  Consultate il manuale di Web2C per saperne di più: texmf-dist/doc/web2c.

- Il supporto per encTE X è ora incluso in Web2C e, di conseguenza, in tutti i programmi TE X, per mezzo dell’opzione -enc — solo quando i formati sono stati generati. encTE X supporta la ricodiﬁca generale dell’input e dell’output, permettendo il supporto completo per l’Unicode (in UTF-8). Consultate texmf-dist/doc/generic/enctex/ e http://olsak.net/enctex.html.
- Aleph, un nuovo motore che combina e-TE X ed Omega, è disponibile. Alcune informazioni sono disponibili in texmf-dist/doc/aleph/base e su https://texfaq.org/FAQ-enginedev. Il formato basato su LATE X per Aleph è chiamato lamed.
- L’ultimo aggiornamento di LATE X ha una nuova versione della LPPL — ora una licenza uﬃcialmente approvata da Debian. Per altri svariati aggiornamenti, consultate i ﬁle ltnews in texmf-dist/doc/latex/base.
- dvipng, un nuovo programma per convertire i DVI in immagini PNG, è incluso. Consultate https://ctan.org/pkg/dvipng.
- Abbiamo ridotto il pacchetto cbgreek ad un insieme di font di “medie” dimensioni, con il consenso e i suggerimenti dell’autore (Claudio Beccari). I font omessi sono quelli invisibili, quelli proﬁlati e i trasparenti, che sono usati abbastanza raramente, mentre noi avevamo bisogno di spazio. L’insieme completo è ovviamente disponibile su CTAN (https://ctan.org/pkg/cbgreek-complete).
- oxdvi è stato rimosso; usate semplicemente xdvi.
- I comandi (collegamenti) ini e vir per tex, mf e mpost non sono più creati, così come initex. Le funzionalità di ini sono disponibili oramai da anni tramite l’opzione su riga di comando -ini.
- Il supporto per la piattaforma i386-openbsd è stato rimosso. Dato che è disponibile il pacchetto tetex nel sistema BSD Ports e gli eseguibili per GNU/Linux e FreeBSD erano disponibili, ci è sembrato che il tempo dedicato dai volontari potesse essere meglio speso in altre attività.
- Su sparc-solaris (almeno), potreste dover impostare la variabile d’ambiente LD_LIBRARY_PATH per eseguire i programmi delle t1utils. La ragione è che questi sono compilati con il C++ e non esiste una posizione comune per le librerie (questo problema non è nuovo dell’edizione 2004, ma non era stato documentato in precedenza). In modo simile, su mips-irix, sono richieste le librerie di runtime del MIPSpro 7.4.

##### 9.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 stati comunque dei cambiamenti:

- Sono stati introdotti i nuovi script texconﬁg-sys, updmap-sys e fmtutil-sys che modiﬁcano la conﬁgurazione nei percorsi di sistema. Gli script texconﬁg, updmap e fmtutil ora modiﬁcano i ﬁle speciﬁci per i singoli utenti, sotto $HOME/.texlive2005.
- Sono state introdotte le corrispondenti nuove variabili TEXMFCONFIG e TEXMFSYSCONFIG per speciﬁcare i percorsi dove trovare i ﬁle di conﬁgurazione (per il singolo utente e per l’intero sistema, rispettivamente). Quindi, potreste dover spostare le versioni personali di fmtutil.cnf e updmap.cfg in questi percorsi; un’altra possibilità è quella di rideﬁnire TEXMFCONFIG o TEXMFSYSCONFIG in texmf.cnf. In ogni caso la posizione reale di questi ﬁle e i valori di TEXMFCONFIG e TEXMFSYSCONFIG devono concordare. Consultate la sezione 2.3, p. 9.
- L’anno scorso abbiamo tenuto \pdfoutput ed altre primitive non deﬁnite per l’output in DVI, anche quando veniva usato il programma pdfetex. Quest’anno, come promesso, abbiamo annullato quella misura di compatibilità. Per cui, se il vostro documento usa \ifx\pdfoutput\undefined per veriﬁcare se viene generato un PDF, dovrà essere cambiato. Potete usare il pacchetto ifpdf.sty (che funziona sia sotto plain TE X che sotto LATE X) per fare ciò, oppure rubarne la logica.
- L’anno scorso abbiamo cambiato la maggior parte dei formati per stampare i caratteri (a 8 bit) come sé stessi (consultate la sezione precedente). Il nuovo ﬁle TCX empty.tcx adesso oﬀre un modo più semplice per ottenere l’originaria notazione ^^ se la desiderate, come in:
  latex --translate-file=empty.tcx vostrofile.tex

- È incluso il nuovo programma dvipdfmx per la trasformazione dei DVI in PDF; si tratta di un aggiornamento attivamente mantenuto di dvipdfm (che per ora è ancora disponibile, anche se non più raccomandato).
- Sono inclusi i nuovi programmi pdfopen e pdfclose per consentire di ricaricare i ﬁle PDF nel lettore Adobe Acrobat Reader senza riavviare il programma (altri lettori PDF, in particolare xpdf, gv e gsview, non hanno mai soﬀerto di questo problema).
- Per coerenza, le variabili HOMETEXMF e VARTEXMF sono state rinominate TEXMFHOME e TEXMFVAR, rispettivamente. C’è anche TEXMFVAR, che è, di default, speciﬁca per ogni utente. Consultate il primo punto dell’elenco.

##### 9.1.4 2006–2007

Nell’edizione 2006–2007, la nuova aggiunta più rilevante a TE X Live è stato il programma XeTE X, disponibile con i comandi xetex e xelatex; visitate il sito https://scripts.sil.org/xetex.

Anche MetaPost ha ricevuto un aggiornamento degno di nota, mentre altri ne sono stati pianiﬁcati per il futuro (https://tug.org/metapost/articles), così come per pdfTE X (https://tug.org/applications/pdftex).

I .fmt di TE X (formati ad alta velocità) e i ﬁle simili per MetaPost e Metafont adesso sono posizionati in sotto directory di texmf/web2c, invece che nella directory stessa (sebbene la directory sia ancora visitata durante la ricerca, a beneﬁcio dei .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 identiﬁcate da %& per determinare quale formato adoperare; è il puro TE X Knuthiano (LATE X 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, visitate CTAN (https://ctan.org) per tutti gli aggiornamenti.

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

Inﬁne, nel maggio 2006 Thomas Esser ha annunciato che non avrebbe più aggiornato teTE X (https://tug.org/tetex). Come risultato, c’è stata un’impennata nell’interesse verso TE X Live, specialmente tra i distributori di GNU/Linux (c’è un nuovo schema di installazione in TE X Live chiamato tetex, che fornisce un equivalente approssimativo). Speriamo che alla ﬁne questo si traduca in miglioramenti all’ambiente TE X per tutti.

##### 9.1.5 2008

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

Tra le altre cose, ciò rende ﬁnalmente possibile aggiornare un’installazione TE X Live tramite Internet dopo l’installazione iniziale, una caratteristica che MikTE X ha oﬀerto per anni. Prevediamo di aggiornare regolarmente i nuovi pacchetti così come diventano disponibili su CTAN.

Il nuovo motore LuaTE X (http://luatex.org) è ora incluso; accanto ad un nuovo livello di ﬂessibilità nella composizione tipograﬁca, questo fornisce un eccellente linguaggio di scripting da usare sia dentro che fuori i documenti TE X.

Il supporto tra Windows e le piattaforme 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 internamente con TE X Live.

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

Con l’avvento di tlmgr, è ora disabilitata l’azione di modiﬁca dei ﬁle di conﬁgurazione dei formati e delle sillabazioni operata da texconﬁg.

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 ﬁle (opzione –all) e 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 funzionalità 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 codiﬁche diﬀerenti) e non c’era un buon modo per risolvere questo problema.

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

Internamente, i ﬁle con le riserve di stringhe di WEB sono compilati dentro gli eseguibili, per sempliﬁcare gli aggiornamenti.

Inﬁne, in questa edizione sono stati inclusi i cambiamenti fatti da Donald Knuth nella sua “messa a punto di TE X del 2008”. Consultate https://tug.org/TUGboat/Articles/tb29-2/tb92knut.pdf.

##### 9.1.6 2009

Nell’edizione 2009, il formato di output predeﬁnito di Lua(LA )TE X è ora il PDF per avvalersi del supporto OpenType di LuaTE X, ecc. I nuovi eseguibili chiamati dviluatex e dvilualatex eseguono LuaTE X con l’output in DVI. La pagina web di LuaTE X è http://luatex.org.

Il motore Omega e il formato Lambda originari sono stati rimossi dopo averne discusso con gli autori di Omega. Restano le versioni aggiornate Aleph e Lamed, così come le utilità di Omega.

È stata inclusa una nuova versione dei font AMS Type 1, compreso 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 meticolosamente da Hermann Zapf (visitate https://tug.org/TUGboat/Articles/tb29-2/tb92hagen-euler.pdf). In ogni caso, le metriche non hanno subito modiﬁche. La pagina dei font AMS è https://ams.org/tex/amsfonts.html.

Il nuovo editor GUI TE Xworks è incluso per Windows così come in MacTE X. Per le altre piattaforme e per ulteriori informazioni, consultate il sito di TE Xworks, https://tug.org/texworks. Si tratta di un programma multi piattaforma ispirato all’editor TeXShop per Mac OS X e che ha come obiettivo la facilità d’uso.

Il programma per la graﬁca Asymptote è stato incluso per diverse piattaforme. Esso implementa un linguaggio descrittivo per la graﬁca basato su testo vagamente simile a MetaPost, ma con un supporto avanzato al 3D ed altre caratteristiche. Il suo sito web è https://asymptote.sourceforge.io.

Il programma dvipdfm è stato sostituito da dvipdfmx, che opera in una speciale modalità di compatibilità quando viene invocato con il primo nome. dvipdfmx include il supporto per CJK (Chinese-Japanese-Korean, Cinese-Giapponese-Coreano) ed ha accumulato molte correzioni negli anni trascorsi dall’ultima versione di dvipdfm.

Gli eseguibili per le piattaforme cygwin e i386-netbsd sono ora inclusi, mentre siamo stati avvisati che gli utenti di OpenBSD ottengono TE X tramite il loro sistema di pacchetti, e in più c’erano diﬃcoltà nel produrre eseguibili che avessero una qualche possibilità di funzionare su più di una versione.

Una varietà di cambiamenti minori: adesso usiamo la compressione xz, il rimpiazzo stabile per lzma (https://tukaani.org/xz/); il carattere $ è ammesso nei nomi dei ﬁle quando non introduce il nome di variabile noto; la libreria Kpathsea è ora multi-thread (lo sfrutta MetaPost); l’intera compilazione di TE X Live è ora basata su Automake.

Nota ﬁnale sul passato: tutte le edizioni di TE X Live, assieme al materiale ausiliario come le etichette dei CD, sono disponibili all’indirizzo ftp://tug.org/historic/systems/texlive.

##### 9.1.7 2010

Nell’edizione 2010, la versione predeﬁnita per l’output PDF è ora la 1.5, che consente una maggiore compressione. Questo si applica a tutti i motori TE X quando vengono usati per produrre PDF e a dvipdfmx. Caricando il pacchetto LATE X pdf14 o impostando \pdfminorversion=4, si si ritorna al PDF 1.4.

pdf(LA )TE X ora converte automaticamente un dato ﬁle di tipo Encapsulated Postscript (EPS) in PDF tramite il pacchetto epstopdf quando e se viene caricato il ﬁle di conﬁgurazione per LATE X graphics.cfg e viene richiesto l’output in PDF. Le opzioni predeﬁnite sono tali da eliminare ogni possibilità che siano sovrascritti i ﬁle PDF creati a mano, ma potete del tutto evitare che epstopdf sia caricato mettendo \newcommand{\DoNotLoadEpstopdf}{} (o \def...) prima della dichiarazione \documentclass. Non viene caricato neppure se viene usato il pacchetto pst-pdf. Per maggiori dettagli, consultate la documentazione del pacchetto epstopdf (https://ctan.org/pkg/epstopdf-pkg).

Un cambiamento correlato è che adesso è abilitata per default l’esecuzione di alcuni comandi esterni a TE X, tramite la funzionalità \write18. Questi comandi sono repstopdf, makeindex, kpsewhich, bibtex e bibtex8; la lista è deﬁnita in texmf.cnf. Gli ambienti che devono disabilitare tutti questi comandi esterni possono deselezionare questa opzione nell’installatore (consultate la sezione 3.2.4), oppure rimpiazzare il valore dopo l’installazione eseguendo tlmgr conf texmf shell_escape 0.

Ancora un altro cambiamento correlato è che ora BibTeX e Makeindex si riﬁutano di scrivere il proprio output in una directory arbitraria (come lo stesso TE X) per default. In questo modo diventa ora possibile consentirne l’uso tramite la funzionalità ristretta \write18. Per cambiare questo, può essere impostata la variabile d’ambiente TEXMFOUTPUT oppure può essere modiﬁcata l’opzione openout_any.

XeTE X ora supporta la crenatura al margine lungo le stesse righe come pdfTE X (l’espansione dei caratteri non è supportata al momento).

Per default, tlmgr ora salva un backup di ciascun pacchetto aggiornato (tlmgr option autobackup 1), così che gli aggiornamenti con pacchetti danneggiati possano essere facilmente ripristinati con tlmgr restore. Se eseguite aggiornamenti successivi all’installazione e non avete spazio sul disco per i backup, eseguite tlmgr option autobackup 0.

Nuovi programmi inclusi: il motore pTE X e le utilità correlate per la composizione in giapponese; il programma BibTeXU per un BibTeX compatibile con Unicode; l’utilità chktex (originariamente da http://baruch.ev-en.org/proj/chktex) per controllare i documenti (LA )TE X; il traduttore da DVI a SVG dvisvgm (https://dvisvgm.de).

Ora sono inclusi gli eseguibili per queste nuove piattaforme: amd64-freebsd, amd64-kfreebsd, i386-freebsd, i386-kfreebsd, x86_64-darwin, x86_64-solaris.

Un cambiamento in TE X Live 2009 che ci siamo dimenticati di evidenziare: numerosi eseguibili legati a TE X4ht (https://tug.org/tex4ht) sono stati rimossi dalle directory degli eseguibili. Il programma generico mk4ht può essere usato per eseguire una qualunque tra le varie combinazioni di tex4ht.

Inﬁne, la versione di TE X Live sul DVD TE X Collection non può più essere eseguita “live” (curiosamente). Un singolo DVD non ha più abbastanza spazio. Un eﬀetto collaterale positivo è che l’installazione da un DVD ﬁsico è ora molto più rapida.

##### 9.1.8 2011

Gli eseguibili per Mac OS X (universal-darwin e x86_64-darwin ora funzionano solo su Leopard e succesivi; Panther e Tiger non sono più supportati.

Il programma biber per l’elaborazione delle bibliograﬁe è incluso per le piattaforme comuni. Il suo sviluppo è strettamente accoppiato con il pacchetto biblatex, che reimplementa completamente l’infrastruttura bibliograﬁca fornita da LaTeX.

Il programma MetaPost (mpost) non crea né usa più i ﬁle .mem. I ﬁle necessari, come plain.mp, sono semplicemente letti ad ogni esecuzione. Questo è correlato al supporto di MetaPost come libreria, che è un’altra modiﬁca signiﬁcativa, sebbene non visibile dall’utente.

L’implementazione di updmap in Perl, precedentemente usata solo su Windows, è stata rimodernata ed è ora usata su tutte le piattaforme. Non dovrebbe esserci alcun cambiamento visibile dall’utente, tranne che ora gira molto più velocemente.

I programmi initex e inimf sono stati ripristinati (ma non le altre varianti ini*).

##### 9.1.9 2012

tlmgr supporta gli aggiornamenti da archivi di rete multipli. La sezione sugli archivi multipli nel messaggio di output di tlmgr help ha ulteriori informazioni.

Il parametro \XeTeXdashbreakstate ha il valore predeﬁnito di 1 sia per xetex che per xelatex. Questo permette l’interruzione delle linee dopo i trattini lunghi e medi, che è stato sempre il comportamento di TE X, LATE X, LuaTE X, ecc. I documenti XeTE X esistenti che devono mantenere la perfetta compatibilità con le interruzioni di linee, devono impostare \XeTeXdashbreakstate a 0 esplicitamente.

I ﬁle di output generati, tra gli altri, da pdftex e dvips possono ora superare i 2 gigabyte.

I 35 font standard di PostScript sono ora inclusi nell’output di dvips per default, dato che ne esistono così tante versioni diﬀerenti.

Nella modalità di esecuzione \write18 ristretta, che è impostata per default, mpost è diventato un programma consentito.

Un ﬁle texmf.cnf viene trovato anche in ../texmf-local, se esiste (ad esempio, /usr/local/texlive/texmf-local/web2c/texmf.cnf).

Lo script updmap legge un ﬁle updmap.cfg in ciascuna directory invece di una conﬁgurazione globale. Questo cambiamento dovrebbe essere trasparente per l’utente, a meno che non abbiate modiﬁcato il vostro updmap.cfg direttamente. Il messaggio mostrato da updmap --help dà ulteriori informazioni.

Piattaforme: aggiunte armel-linux e mipsel-linux; sparc-linux e i386-netbsd non fanno più parte della distribuzione principale.

##### 9.1.10 2013

Struttura della distribuzione: per semplicità, la directory texmf/ è stata fusa all’interno di texmf-dist. Entrambe le variabili di Kpathsea TEXMFMAIN e TEXMFDIST adesso puntano a texmf-dist.

Molte piccole collezioni di lingue sono state fuse insieme, per sempliﬁcare l’instllazione.

MetaPost: sono stati aggiunti il supporto nativo per l’output in PNG e per i numeri in virgola mobile (double secondo lo standard IEEE 754).

LuaTE X: aggiornato a Lua 5.2 e include una nuova libreria (pdfscanner) per processare il contenuto di pagine PDF esterne, tra le altre cose (visitate il suo sito).

XeTE X (anche in questo caso, visitate il sito per altri dettagli):

- Ora, per il layout dei font, è usata la libreria HarfBuzz al posto di ICU (ICU è ancora usata per la codiﬁca dell’input, la bidirezionalità e interruzione di riga Unicode opzionale).
- Graphite2 e HarfBuzz sono usate al posto di SilGraphite per il layout di Graphite.
- Sul Mac, Core Text è usato al posto del deprecato ATSUI.
- Preferisce i font TrueType/OpenType ai Type1 quando i nomi sono gli stessi.
- Corregge le occasionali discrepanze tra XeTE X e xdvipdfmx nella ricerca dei font.
- Supporta i cut-in per i font OpenType Math.

xdvi: ora usa FreeType al posto di t1lib per il rendering.

microtype.sty: un qualche supporto per XeTE X (protrusione) e LuaTE X (protrusione, espansione dei font, tracking), tra i vari miglioramenti.

tlmgr: nuova azione di aﬃssione (pinning) per facilitare la conﬁgurazione di repository multipli; la relativa sezione in tlmgr --help, visibile online su https://tug.org/texlive/doc/tlmgr.html#MULTIPLE-REPOSITORIES, ne parla più approfonditamente.

Piattaforme: armhf-linux, mips-irix, i386-netbsd e amd64-netbsd aggiunte o ripristinate; powerpc-aix rimossa.

##### 9.1.11 2014

Il 2014 ha visto un altro aggiustamento a TE X da parte di Knuth; questo ha riguardato tutti i motori, ma l’unico cambiamento visibile è probabilmente il ripristino della stringa preloaded format nella linea di intestazione. Dal punto di vista di Knuth, questo ora riﬂette il formato che dovrebbe essere caricato di default, piuttosto che un formato incorporato nell’eseguibile; può essere sostituito in vari modi.

pdfTE X: nuovo parametro per la soppressione dei warning \pdfsuppresswarningpagegroup; nuove primitive per falsi spazi tra parole per facilitare la ridisposizione del testo PDF: \pdfinterwordspaceon, \pdfinterwordspaceoff, \pdffakespace.

LuaTE X: sono stati fatti notevoli cambiamenti e correzioni al caricamento dei font e alla sillabazione. L’aggiunta più grande è una nuova variante del motore, luajittex e i suoi fratelli texluajit e texluajitc. Questo motore usa un compilatore Lua just-in-time (articolo TUGboat dettagliato su https://tug.org/TUGboat/tb34-1/tb106scarso.pdf). luajittex è ancora in fase di sviluppo, non è disponibile su tutte le piattaforme ed è notevolmente meno stabile di luatex. Né noi né i suoi sviluppatori lo raccomandano eccetto che per lo scopo di sperimentare la compilazione jit del codice Lua.

XeTE X: gli stessi formati di immagini sono ora supportati su tutte le piattaforme (incluso il Mac); evita il fallback di decomposizione di compatibilità di Unicode (ma non altre varianti); preferisce i font OpenType ai Graphite, per compatibilità con le versioni precedenti di XeTE X.

MetaPost: un nuovo sistema di numerazione decimal è supportato, insieme ad uno che lo accompagna, numberprecision, ad uso interno; una nuova deﬁnizione di drawdot in plain.mp, secondo Knuth; correzioni di bug nell’output in SVG e PNG, tra le altre cose.

L’utilità ConTE Xt pstopdf sarà rimossa come comando a sé stante ad un certo punto dopo questa versione, a causa dei conﬂitti con le utilità del sistema operativo con lo stesso nome. Può essere ancora (e tuttora) invocato con mtxrun –script pstopdf.

psutils è stato notevolmente revisionato da un nuovo manutentore. Come risultato, molte utilità usate raramente (fix*, getafm, psmerge, showchar) ora si trovano solo nella directory scripts/ invece che essere eseguibili accessibili direttamente (si può tornare indietro, se si rivela problematico). Un nuovo script, psjoin, è stato aggiunto.

La distribuzione MacTE X di TE X Live (sezione 3.1.2) non include più i pacchetti opzionali solo per Mac dei font Latin Modern e TE X Gyre, dato che è abbastanza semplice per i singoli utenti renderli disponibili al sistema. Anche il programma convert da ImageMagick è stato rimosso, dato che TE X4ht (nello speciﬁco tex4ht.env) ora usa Ghostscript direttamente.

La collezione langcjk per il supporto al cinese, giapponese e coreano è stata suddivisa in collezioni per le singole lingue per avere dimensioni più piccole.

Piattaforme: x86_64-cygwin aggiunta, mips-irix rimossa; Microsoft ha cessato il supporto di Windows XP, quindi i nostri programmi potrebbero iniziare a funzionare male su quel sistema in qualunque momento.

##### 9.1.12 2015

LaTeX2e ora incorpora, per default, i cambiamenti precedentemente inclusi solo caricando esplicitamente il pacchetto ﬁxltx2e, che ora non fa nulla. Un nuovo pacchetto latexrelease ed altri meccanismi permettono di controllare ciò che viene fatto. I documenti inclusi LATE X News #22 e “LATE X changes” contengono i dettagli. Incidentalmente, i pacchetti babel e psnfss, nonostante siano parti centrali di LATE X, sono mantenuti separatamente e non sono toccati da questi cambiamenti (e dovrebbero ancora funzionare).

Internamente, LaTeX2e ora include una conﬁgurazione del motore relativa a Unicode (quali caratteri sono lettere, nome delle primitive, ecc.) che prima era parte di TE X Live. Questo cambiamento dovrebbe essere trasparente per gli utenti; alcune sequenze di controllo interne di basso livello sono state rinominate o rimosse, ma il comportamento dovrebbe essere lo stesso.

pdfTE X: supporto per gli Exif nei JPEG e per i JFIF; non emette più un warning se \pdfinclusionerrorlevel è negativo; sincronizzazione con xpdf 3.04.

LuaTE X: nuova libreria newtokenlib per la scansione dei token; correzione di errori nel generatore di numeri casuali normal e in altri punti.

XeTE X: corretta la gestione delle immagini; l’eseguibile xdvipdfmx viene cercato per primo, come gemello di xetex; cambiati gli opcode interni XDV.

MetaPost: nuovo sistema di numerazione binary; nuovi programmi per il giapponese upmpost e updvitomp, analogamente a up*tex.

MacTE X: aggiornamenti al pacchetto Ghostscript per il supporto a CJK. Il Pannello delle Preferenze della Distribuzione TE X ora funziona in Yosemite (MacOSX 10.10). I resource fork dei font (di solito senza un’estensione) non sono più supportati da XeTE X; i data fork (.dfont) restano supportati.

Infrastruttura: lo script fmtutil è stato reimplementato per leggere i fmtutil.cnf rispettando le gerarchie delle directory, analogamente a updmap. Gli script Web2c mktex* (inclusi mktexlsr, mktextfm, mktexpk) ora preferiscono i programmi nelle loro directory, invece di usare sempre il PATH esistente.

Piattaforme: *-kfreebsd rimossa, dato che TE X Live è ora facilmente disponibile tramite il meccanismo di piattaforma del sistema. Il supporto per alcune piattaforme aggiuntive è disponibile come eseguibili personalizzati (https://tug.org/texlive/custom-bin.html). In più, alcune piattaforme adesso sono omesse dal DVD (semplicemente per risparmiare spazio), ma possono essere installate normalmente via internet.

##### 9.1.13 2016

LuaTE X: cambiamenti radicali alle primitive, che sono state sia rinominate che rimosse, assieme ad alcune riorganizzazioni della struttura dei nodi. Questi cambiamenti sono ricapitolati in un articolo di Hans Hagen, “LuaTE X 0.90 backend changes for PDF and more” (https://tug.org/TUGboat/tb37-1/tb115hagen-pdf.pdf); per tutti i dettagli, consultate il manuale di LuaTE X, texmf-dist/doc/luatex/base/luatex.pdf.

Metafont: nuovi programmi fratelli altamente sperimentali MFlua e MFluajit che integrano Lua con Metafont, per scopi di test.

MetaPost: correzione di bug e preparazioni interne per MetaPost 2.0.

pdfTE X: nuove primitive \pdfinfoomitdate, \pdftrailerid, \pdfsuppressptexinfo, per controllare quei valori che appaiono nell’output e che normalmente cambiano ad ogni esecuzione. Queste funzionalità sono solo per l’output in PDF, non per il DVI.

XeTE X: nuove primitive \XeTeXhypenatablelength, \XeTeXgenerateactualtext,
\XeTeXinterwordspaceshaping, \mdfivesum; limite delle classi di caratteri innalzato a 4096; incremetati i byte di id nel DVI.

Altri strumenti:

- gregorio è un nuovo programma che fa parte del pacchetto gregoriotex per impaginare le partiture di canto gregoriano; è incluso di default in shell_escape_commads.
- upmendex è un programma di creazione dell’indice, quasi del tutto compatibile con makeindex, con il supporto tra le altre cose per l’ordinamento basato sull’Unicode.
- afm2tfm ora esegue solo aggiustamenti dell’altezza basati sull’accento verso l’alto; una nuova opzione -a tralascia tutti gli aggiustamenti.
- ps2pk può gestire i font PK/GF estesi.

MacTE X: il pannello TE X Distribution Preference è stato rimosso; le sue funzionalità ora si trovano nella TE X Live Utility; aggiornate le applicazioni graﬁche a corredo; il nuovo script cjk-gs-integrate deve essere eseguito dagli utenti che vogliono incorporare i font CJK in Ghostscript.

Infrastruttura: supporto per il ﬁle di conﬁgurazione di tlmgr a livello di sistema; veriﬁca delle checksum dei pacchetti; se GPG è disponibile, veriﬁca la ﬁrma degli aggiornamenti di rete. Queste veriﬁche avvengono sia nell’installatore che in tlmgr. Se GPG non è disponibile, gli aggiornamenti avvengono come di consueto.

Piattaforme: rimosse alpha-linux e mipsel-linux.

##### 9.1.14 2017

LuaTE X: più callback, più controllo per la composizione tipograﬁca, più accesso ai dati inteni; libreria ffi per il caricamento dinamico del codice in alcune piattaforme.

pdfTE X: variabile d’ambiente SOURCE_DATE_EPOCH_TEX_PRIMITIVES dell’anno precedente rinominata FORCE_SOURCE_DATE, con nessuna modiﬁca alle funzionalità; se la lista di token \pdfpageattr contiene la stringa /MediaBox, omette l’output del /MediaBox predeﬁnito.

XeTE X: font Unicode/OpenType Math ora basati sulla tabella di supporto MATH di HarfBuzz; correzione di alcuni bug.

Dvips: fa sì che l’ultima proposta di dimensione carta vinca, per coerenza con dvipdfmx e con le attese dei pacchetti; l’opzione -L0 (impostazione di conﬁgurazione L0) ripristina il comportamento precedente in cui vince la prima proposta di dimensione.

epTE X, eupTE X: nuove primitive \pdfuniformdeviate, \pdfnormaldeviate, \pdfrandomseed, \pdfsetrandomseed, \pdfelapsedtime, \pdfresettimer, da pdfTE X.

MacTE X: a partire da quest’anno, solo le versioni di MacOSX per cui Apple ancora rilascia aggiornamenti di sicurezza saranno supportate in MacTE X, sotto il nome di piattaforma x86_64-darwin; attualmente ciò signiﬁca Yosemite, El Capitan e Sierra (10.10 e successivi). Gli eseguibili per le versioni precedenti di MacOSX non sono incluse in MacTE X, ma sono ancora disponibili in TE X Live (x86_64-darwinlegacy, i386-darwin, powerpc-darwin).

Infrastruttura: la directory TEXMFLOCAL viene ora esplorata prima di TEXMFSYSCONFIG e TEXMFSYSVAR (di default); la speranza è che questo corrisponda meglio alle attese dei ﬁle locali che sostituiscono quelli di sistema. Inoltre, tlmgr ha una nuova modalità shell per l’uso interattivo e in script e una nuova azione conf auxtrees per aggiungere e rimovere con facilità ulteriori directory.

updmap e fmtutil: questi script ora avvisano quando sono chiamati senza speciﬁcare esplicitamente la cosiddetta modalità di sistema (updmap-sys, fmtutil-sys o l’opzione -sys), o la modalità utente (updmap-user, fmtutil-user o l’opzione -user). La speranza è che questo riduca il costante problema di invocare la modalità utente per sbaglio e quindi perdere i futuri aggiornamenti di sistema. Consultate https://tug.org/texlive/scripts-sys-user.html per i dettagli.

install-tl: i percorsi personali come TEXMFHOME su Mac sono ora impostati di default agli stessi valori di MacTE X (~/Library/...). Nuova opzione -init-from-profile per iniziare un’installazione con i valori da un dato proﬁlo; nuovo comando P per salvare esplicitamente un proﬁlo; nuovi nomi di variabili di proﬁlo (ma i precedenti sono ancora accettati).

SyncTE X: il nome del ﬁle temporaneo ora somiglia a foo.synctex(busy) e non a foo.synctex.gz(busy) (niente .gz). Le applicazioni e i sistemi di compilazione che vogliono rimuovere i ﬁle temporanei potrebbero richiedere un adattamento.

Altri strumenti: texosquery-jre8 è un nuovo programma multi-piattaforma per recuperare alcune informazioni di ambiente e del sistema operativo da un documento TE X; di default è incluso in shell_escape_command per essere eseguito in modalità ristretta (versioni precedenti della JRE sono supportate da texosquery, ma non possono essere attivate in modalità ristretta perché non sono più supportate da Oracle, neppure per gli aggiornamenti di sicurezza).

Piattaforme: consultate il paragrafo su MacTE X qui sopra; nessun altro cambiamento.

#### 9.2 2018

Kpathsea: la ricerca di ﬁle nelle directory non di sistema è ora per default insensibile alle maiuscole; per disattivare questo comportamento, impostate il parametro texmf_casefold_search a 0 in texmf.cnf o nella variabile d’ambiente. Tutti i dettagli nel manuale di Kpathsea (https://tug.org/kpathsea).

epTE X, eupTE X: nuova primitiva \epTeXversion.

LuaTE X: preparazione per migrare a Lua 5.3 nel 2019: un eseguibile luatex53 è disponibile nella maggior parte delle piattaforme, ma deve essere rinominato in luatex per funzionare. Altrimenti usate i ﬁle di ConTE Xt Garden (https://wiki.contextgarden.net); visitate il sito per maggiori informazioni.

MetaPost: correzioni per direzioni di path sbagliate, per output di TFM e di PNG.

pdfTE X: consente i vettori di codiﬁca per i font bitmap; la directory attuale non è usata per generare l’ID del PDF; ﬁx di bug per \pdfprimitive e correlati.

XeTE X: supporto per /Rotate nell’inclusione di immagini nel PDF; termina con un codice di uscita diverso da zero se il driver in uscita fallisce; varie correzioni a primitive per UTF-8 e altro.

MacTE X: consultate qui sotto i cambiante sul supporto alle versioni. Oltre a questo, i ﬁle installati in /Applications/TeX/ da MacTE X sono stati riorganizzati per maggiore chiarezza; ora questa directory contiene quattro programmi graﬁci (BibDesk, LaTeXiT, TE X Live Utility e TeXShop) e ha varie sottodirectory con utility e documentazione aggiuntive.

tlmgr: nuove interfacce graﬁche tlshell (Tcl/Tk) e tlcockpit (Java); output in JSON; uninstall è ora un sinonimo di remove; nuova azione/opzione print-platform-info.

Piattaforme:

- Rimosse: armel-linux, powerpc-linux.
- x86_64-darwin supporta le versioni 10.10–10.13 (Yosemite, El Capitan, Sierra e High Sierra).
- x86_64-darwinlegacy supporta le versioni 10.6–10.10 (sebbene x86_64-darwin sia preferito per la 10.10). Tutto il supporto per la versione 10.5 (Leopard) è andato via, nel senso che sia powerpc-darwin che i386-darwin platforms sono stati rimossi.
- Windows: XP non è più supportato.

#### 9.3 2019

Kpathsea: suddivisione dei path ed espansione delle graﬀe più consistenti; nuova variabile TEXMFDOTDIR al posto del . esplicito nei path consente di cercare più facilmente in sotto directory aggiuntive (consultate i commenti in texmf.cnf).

epTE X, eupTE X: nuove primitive \readpapersizespecial e \expanded.

LuaTE X: adesso si usa Lua 5.3, con i concomitanti cambiamenti all’aritmetica e all’interfaccia. La libreria pplib fatta in casa è usata per leggere i ﬁle pdf, così eliminando la dipendenza da poppler (e la necessità del C++); l’interfaccia Lua è cambiata di conseguenza.

MetaPost: il nome del comando r-mpost è riconosciuto come un alias per l’invocazione con l’opzione –restricted ed è stato aggiunto alla lista dei comandi riservati disponibili di default. La precisione minima ora è di 2 per la modalità binaria e decimale. La modalità binaria non è più disponibile in MPlib ma è ancora disponibile nel MetaPost a sé stante.

pdfTE X: nuova primitiva \expanded; se il nuovo parametro primitivo \pdfomitcharset è impostato a 1, la stringa /CharSet è omessa dall’output PDF, dato che non può essere garantita corretta in modo fattibile, come richiesto da PDF/A-2 e PDF/A-3.

XeTE X: nuove primitive \expanded, \creationdate, \elapsedtime, \filedump, \filemoddate, \filesize, \resettimer, \normaldeviate, \uniformdeviate, \randomseed; esteso \Ucharcat per produrre i caratteri attivi.

tlmgr: supporto per curl come programma di download; uso di lz4 e gzip prima di xz per i backup locali, se disponibile; preferisce i binari forniti dal sistema a quelli forniti da TE X Live per i programmi di compressione e download, a meno che la variabile d’ambiente TEXLIVE_PREFER_OWN è impostata.

install-tl: la nuova opzione -gui (senza argomenti) è predeﬁnita su Windows e Macs e lancia una nuova GUI in Tcl/Tk (vedi le sezioni 1.3 e 3.1.6).

Utilità:

- cwebbin (https://ctan.org/pkg/cwebbin) è ora l’implementazione di CWEB in TE X Live, con il supporto per più dialetti di lingue e l’inclusione del programma ctwill per creare mini-indici.
- chkdvifont: riporta le informazioni sui font dai ﬁle DVI e anche da tfm/ofm, vf, gf, pk.
- dvispc: rende un ﬁle DVI indipendente dalla pagina rispetto agli specials.

MacTE X: x86_64-darwin ora supporta la versione 10.12 e successive (Sierra, High Sierra, Mojave); x86_86-darwinlegacy supporta ancora la versione 10.6 e successive. Il controllore ortograﬁco Excalibur non è più incluso in quanto richiede il supporto a 32 bit.

Piattaforme: rimossa sparc-solaris.

##### 9.3.1 2020

Generale:

- La primitiva \input in tutti i motori TE X, incluso tex, ora accetta anche come argomento un nome di ﬁle delimitato da gruppo, come estensione dipendente dal sistema. L’uso con il solito ﬁlename delimitato da spazi/token non è cambiato. L’argomento delimitato da gruppo era implementato precedentemente in LuaTE X; ora è disponibile per tutti i motori. I caratteri ASCII dei doppi apici (") sono rimossi dal nome del ﬁle, ma oltre questo resta invariato dopo la divisione in token. Questo non riguarda attualmente il comando \input di LATE X in quanto è una rideﬁnizione macro della primitiva standard \input.
- Nuova opzione –cnf-lline per kpsewhich, tex, mf e tutti gli altri motori per supportare impostazioni di conﬁgurazione arbitrarie sulla riga di comando.
- L’aggiunta delle varie primitive ai diversi motori in questo e nei precedenti anni è pensata per concludersi con un insieme comune di funzionlità disponibili tra tutti i motori (LATE X News #31, https://latex-project.org/news).

epTE X, eupTE X: nuove primitive \Uchar, \Ucharcat, \current(x)spacingmode, \ifincsname; rivedere \fontchar?? e \iffontchar. Per il solo eupTE X: \currentcjktoken.

LuaTE X: integrazione con la libreria HarfBuzz disponibile come nuovo motore luahbtex (usato per lualatex) e luajithbtex. Nuove primitive: \eTeXgluestretchorder, \eTeXglueshrinkorder.

pdfTE X: nuova primitiva \pdfmajorversion; questa semplicemente cambia il numero di versione del PDF prodotto; non ha eﬀetto su alcun contenuto del PDF. \pdfximage e simili ora cercano i ﬁle di immagine nello stesso modo di \openin.

pTE X: nuove primitive \ifjfont, \iftfont. Anche in epTE X, upTE X, eupTE X.

XeTE X: correzioni per \Umathchardef, \XeTeXinterchartoks, \pdfsavepos.

Dvips: codiﬁche in uscita per i font bitmap, per migliori capacità di copia/incolla (https://tug.org/TUGboat/tb40-2/tb125rokicki-type3search.pdf).

MacTE X: MacTE X e x86_64-darwin ora richiedono la 10.13 o successive (High Sierra, Mojave e Catalina); x86_64-darwinlegacy supporta la 10.6 e successive. MacTE X è certiﬁcato e i programmi a riga di comando hanno runtime irrobustiti come richiesto ora da Apple per i pacchetti di installazione. BibDesk e TE X Live Utility non fanno parte di MacTE X perché non sono certiﬁcati, ma un ﬁle README elenca gli indirizzi da dove possono essere ottenuti.

tlmgr e infrastruttura:

- prova di nuovo automaticamente (una sola volta) i pacchetti il cui download è fallito;
- nuova opzione tlmgr check texmfdbs per veriﬁcare la consistenza dei ﬁle ls-R e delle speciﬁche !! in ogni sotto directory;
- usa nomi di ﬁle versionati per i container dei pacchetti, come in tlnet/archive/pkgname.rNNN.tar.xz; dovrebbe essere invisibile agli utenti, ma è un’importante cambiamento nella distribuzione;
- le informazioni catalogue-date non sono più propagate dal TE X Catalogue, dato che erano spesso non collegate agli aggiornamenti dei pacchetti.

#### 9.4 Presente: 2021

Generale:

- Sono incorporati i cambiamenti di Donald Knuth per la sua sistematina del 2021 a TE X e Metafont (https://tug.org/TUGboat/tb42-1/tb130knuth-tuneup21.pdf). Sono anche disponibili su CTAN sotto forma dei pacchetti knuth-dist e knuth-local. Come atteso, i ﬁx sono per casi oscuri e non riguardano nessun comportamento pratico.
- Tranne che nel TE X originale: se \tracinglostchars è impostato a 3 o più, i caratteri mancati daranno origine ad un errore, non semplicemente ad un messaggio nel ﬁle di log e il codice del carattere mancante sarà mostrato in esadecimale.
- Tranne che nel TE X originale: un nuovo parametro intero \tracingstacklevels che se positivo, e \tracingmacros è anch’esso positivo, provoca l’aggiunta di un preﬁsso che indica la profondità di espansione della macro all’output nella relativa riga di log (per esempio, ~.. a profondità 2). Inoltre il log delle macro è troncato alla profondità ≥ del valore del parametro

Aleph: il formato LATE X basato su Aleph, chiamato lamed, è stato rimosso. L’eseguibile aleph stesso è ancora incluso e supportato.

LuaTE X:

- Lua 5.3.6.
- Callback per il livello di annidamento usata in \tracingmacros, come variante generalizzata del nuovo \tracingstacklevels.
- Gliﬁ matematici marchiati come protetti per evitare l’elaborazione come testo.
- Rimossa la compensazione larghezza/ic per il codice matematico tradizionale.

MetaPost:

- Suppporto alla variabile d’ambiente SOURCE_DATE_EPOCH per output riproducibile.
- Evitato il % ﬁnale errato in mpto.
- Documentata l’opzione -T, altre correzioni al manuale.
- Valore di epsilon cambiato in modalità binaria e decimale, così che mp_solve_rising_cubic funzioni come atteso.

pdfTE X:

- Nuove primitive \pdfrunninglinkoff e \pdfrunninglinkon; ad esempio, per disattivare la generazione dei link in intestazioni e pié di pagina.
- Avverte invece di uscire con l’errore “\pdfendlink ended up in diﬀerent nesting level than \pdfstartlink”.
- Stampa le assegnazioni di \pdfglyphtounicode nel ﬁle fmt.
- Sorgenti: supporto a poppler rimosso in quanto troppo diﬃcile mantenerlo sincronizzato con la linea di sviluppo. In TL nativa, pdfTE X ha sempre usato libs/xpdf, che è un codice ridotto e adattato da xpdf.

XeTE X: correzioni per il kerning matematico.

Dvipdfmx:

- Ghostscript è ora invocato in modalità sicura per default; per annullare (assumendo che tutti i ﬁle di input siano ﬁdati), usate -i dvipdfmx-unsafe.cfg. Questo è richiesto per usare PSTricks con XeTE X, come in: xetex -output-driver="xdvipdfmx -i dvipdfmx-unsafe.cfg -q -E" ...
- Se il ﬁle di un’immagine non è trovato, esce con stato di errore.
- Sintassi special estesa per il supporto dei colori.
- Special per la manipolazione di ExtGState.
- Special di compatibilità pdfcolorstack e pdffontattr.
- Supporto sperimentale per fnt_def esteso di dviluatex.
- Supporto per nuova funzionlità dei font virtuali per ripiego nella deﬁnizione di font giapponesi.

Dvips:

- Il titolo di default del documento PostScript è ora il nome base del ﬁle di input e può essere sostituito tramite la nuova opzione -title.
- Se un .eps o un altro ﬁle di immagine non è trovato, esce con stato di errore.
- Supporto per nuova funzionlità dei font virtuali per ripiego nella deﬁnizione di font giapponesi.

MacTE X: MacTE X e la sua nuova directory degli eseguibili universal-darwin ora richiede macOS 10.14 o successivi (Mojave, Catalina e Big Sur); la directory degli eseguibili x86_64-darwin non è più presente. La directory x86_64-darwinlegacy, disponibile solo nel install-tl per Unix, supporta le versioni 10.6 e successive.

Questo è un anno importante per il Macintosh perché Apple ha introdotto a novembre le macchine con processore ARM e venderà e supporterà sia macchine ARM che Intel per svariati anni. Tutti i programmi in universal-darwin hano codice eseguibile sia per ARM che per Intel. Entrambi i binari sono compilati dallo stesso sorgente.

I programmi aggiuntivi Ghostscript, LateXiT, TE X Live Utility e TeXShop sono tutti universali e sono ﬁrmati con un runtime indurito, quindi sono tutti inclusi in MacTE X quest’anno.

tlmgr e infrastruttura:

- mantenuto un solo backup del texlive.tlpdb del repository principale.
- maggiore portabilità tra sistemi e versioni di Perl.
- tlmgr -info mostra i nuovi campi lcat-* e rcat-* per i dati del Catalogo locali vs. remoti.
- il log completo dei sottocomandi è stato spostato nel nuovo ﬁle di log texmf-var/web2c/tllmgr-commands.log.

#### 9.5 Futuro

Abbiamo intenzione di continuare a rilasciare nuove versioni di TE X Live e vorremmo fornire più documentazione, più programmi e un insieme sempre migliore e meglio controllato di font, di macro e di tutto quanto legato a TE X. Questo lavoro è fatto completamente da volontari nel loro tempo libero e quindi c’è sempre molto da fare. Visitate il sito https://tug.org/texlive/contribute.html.

Potete inviare correzioni, suggerimenti e oﬀerte d’aiuto a:

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

Buon lavoro con TE X!