% arara: closepdf % arara: pdflatex % arara: showfile % $Id$ % TeX Live documentation. Originally written by Sebastian Rahtz and % Michel Goossens, now maintained by Karl Berry and others. % Public domain. % % Traduzione originaria a cura di Marco Pallante. Attualmente la traduzione % è portata avanti in seno al progetto GuITeX del GuIT, Gruppo Utilizzatori % Italiani di TeX (http://www.guit.sssup.it/). % % Chiunque può contribuire accedendo al repository Git diponibile % all'indirizzo % % https://github.com/GuITeX/texlive-it-guide % \documentclass{article} %\let\tldocenglish=1 % for live4ht.cfg %\def\Status{1}%CM istruzione inserita solo per poter compilare \usepackage{tex-live} \usepackage[italian]{babel} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \title{% {\huge \textit{Guida a \TeX\ Live---2021}} } \author{Karl Berry\\[3mm] \url{https://tug.org/texlive/} } \date{Marzo 2021} \begin{document} \maketitle \begin{multicols}{2} \tableofcontents %\listoftables \end{multicols} \section*{Note all'edizione italiana} Dopo tanti anni, finalmente abbiamo anche un'edizione italiana di questa guida alla distribuzione \TL. Vorrei premettere che, per garantirne il completamento entro l'uscita di \TL{} 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 \TL\ 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 modifiche 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 \TeX{} sia apprezzato. Potete contattarmi per qualunque cosa, aiuti, suggerimenti, correzioni, all'indirizzo \email{marco.pallante@gmail.com}. Vorrei dedicare questo lavoro alla mia città. \bigskip \noindent Marco Pallante\\ \emph{L'Aquila, 20 giugno 2011}. \section{Introduzione} \label{sec:intro} \subsection{\protect\TeX\protect\ Live e la \protect\TeX\protect\ Collection} Questo documento descrive le caratteristiche principali della distribuzione \TL{}\Dash \TeX{} e i programmi ad esso correlati per i sistemi GNU/Linux e altre versioni di Unix, \MacOSX{} e Windows. Potete ottenere \TL{} scaricandola, oppure sul \DVD{} \TK, che i gruppi di utenti \TeX{} distribuiscono ai propri membri, o in altri modi. La sezione \ref{sec:tl-coll-dists} descrive brevemente il contenuto del \DVD. Sia \TL{} che \TK{} sono progetti cooperativi dei gruppi di utenti \TeX. Questo descrive principalmente \TL. \TL{} include gli eseguibili per \TeX, \LaTeXe, \ConTeXt, \MF, \MP, \BibTeX{} e molti altri programmi, una vasta collezione di macro, font e documentazione e il supporto per la composizione tipografica in molti diversi alfabeti provenienti da tutte le parti del mondo. Per un breve riassunto dei principali cambiamenti in questa edizione di \TL, consultate la fine di questo documento, sezione~\ref{sec:history} (\p.\pageref{sec:history}). \htmlanchor{platforms} \subsection{Supporto per i sistemi operativi} \label{sec:os-support} \TL{} contiene gli eseguibili per molte piattaforme basate su Unix, inclusi \GNU/Linux, \MacOSX{} 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 \TL{} non sarà più neppure installato su Windows XP e precedenti. \TL{} non include specifici eseguibili a 64-bit per Windows, ma gli eseguibili a 32-bit dovrebbero funzionare sui sistemi a 64-bit. Ma consultate \url{https://tug.org/texlive/windows.html} per le opzioni per aggiungere gli eseguibili a 64 bit. Consulta la sezione~\ref{sec:tl-coll-dists} per scoprire soluzioni alternative per Windows e \MacOSX. \subsection{Installazione base di \protect\TL{}} \label{sec:basic} È possibile installare \TL{} dal \DVD{} oppure attraverso Internet (\url{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 \TL{} direttamente dal \DVD{} \TK{} (o dalla sua immagine \code{.iso}), ma potete preparare un'installazione pronta per l'uso su, per esempio, una pennetta \USB{} (consultate la sezione~\ref{sec:portable-tl}). L'installazione è descritta nelle prossime sezioni (\p.\pageref{sec:install}), ma eccone un rapido accenno: \begin{itemize*} \item Per Unix, lo script di installazione è \filename{install-tl}; su Windows, bisogna invece lanciare \filename{install-tl-windows}. L'installatore opererà in modalità grafica dando l'opzione \code{-gui} (predefinita per Windows e \MacOSX), o in modalità testuale \code{-gui=text} (predefinita per tutto il resto). \item Uno degli elementi installati è il programma ``\TL\ Manager'', chiamato \prog{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 configurazione. \end{itemize*} \htmlanchor{security} \subsection{Considerazioni sulla sicurezza} \label{sec:security} Sulla base delle nostre conoscenze, i programmi centrali di \TeX\ sono (e sono sempre stati) estremamente robusti. Tuttavia, gli altri programmi in \TeX\ 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 inaffidabile; 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 file 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. Infine, \TeX\ (e i programmi che lo accompagnano) è capace di creare nuovi file 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 modificato rispetto a quanto creato. Il programma \prog{tlmgr} (sezione~\ref{sec:tlmgr}) eseguirà automaticamente una verificca criptografica sui file scaricati se il programma \prog{gpg} (GNU Privacy Guard) è disponibile. Non è distribuito come parte di \TL, ma visitate \url{https://texlive.info/tlpgp/} per informazioni su \prog{pgp} se è necessario. \subsection{Ottenere aiuto} \label{sec:help} La comunità \TeX{} è attiva ed amichevole e le domande più importanti finiscono per ricevere una risposta. Tuttavia il supporto è informale, offerto 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 \TL{} e ordinare il sistema di un fornitore; alla pagina \url{https://tug.org/interest.html#vendors} trovate un elenco). Ecco una lista di risorse, approssimativamente nell'ordine in cui noi raccomandiamo di usarle: \begin{description} \item [Per cominciare] Se siete nuovi di \TeX, alla pagina web \url{https://tug.org/begin.html} troverete una breve introduzione al sistema. \item [\TeX{} FAQ] Le \TeX{} FAQ sono un enorme compendio di risposte ad ogni genere di domanda, dalle più elementari alle più oscure. Sono incluse in \TL{} in \OnCD{texmf-dist/doc/generic/FAQ-en} e sono disponibili su Internet alla pagina \url{https://www.tex.ac.uk/faq}. Controllate prima qui. \item [\TeX{} Catalogue] Se state cercando un pacchetto, un font, un programma o altro in particolare, il \TeX{} Catalogue è il luogo dove guardare. È un enorme catalogo con tutte le voci relative a \TeX. Visitate \url{https://ctan.org/pkg/catalogue}. \item [Risorse Web per \TeX{}] La pagina web \url{https://tug.org/interest.html} ha molti collegamenti relativi a \TeX, in particolare a numerosi libri, manuali ed articoli su tutti gli aspetti del sistema. \item [archivi di supporto] I principali forum di supporto per \TeX\ includono il sito della comunità \LaTeX{} su \url{https://latex.org}, il sito di domande e risposte \url{https://tex.stackexchange.com}, il gruppo Usenet \url{news:comp.text.tex} e la mailing list \email{texhax@tug.org}. I loro archivi raccolgono anni di domande e risposte per il vostro piacere di ricerca tramite, per gli ultimi due, \url{https://groups.google.com/group/comp.text.tex/topics} e \url{https://tug.org/mail-archives/texhax}. E una generica ricerca su web non fa mai male. \item [porre domande] Se non riuscite a trovare una risposta, potete formulare la vostra domanda su \url{https://latex-community.org/} e \url{https://tex.stackexchange.com/} tramite le loro interfacce web, su \dirname{comp.text.tex} tramite Google o un programma per Usenet, oppure tramite posta elettronica su \email{texhax@tug.org}. Ma prima di scrivere in qualunque posto, leggete questa voce delle FAQ, al fine di massimizzare le probabilità di ottenere una risposta utile: \url{https://texfaq.org/FAQ-askquestion}. \item [supporto \TL{}] Se volete segnalare un bug o avete dei suggerimenti o commenti sulla distribuzione \TL{}, sull'installazione o la documentazione, la mailing list è \email{tex-live@tug.org}. Tuttavia, se la vostra domanda è relativa all'uso di un particolare programma incluso in \TL{}, scrivete al mantenitore o alla mailing list di quel programma. Spesso eseguire un programma con l'opzione \code{-{}-help} fornisce un indirizzo al quale segnalare i bug. \end{description} 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. % don't use \TL so the \uppercase in the headline works. Also so % tex4ht ends up with the right TeX. Likewise the \protect's. \section{Panoramica su \protect\TeX\protect\ Live} \label{sec:overview-tl} Questa sezione descrive i contenuti di \TL{} e della \TK{} di cui è parte. \subsection{La \protect\TeX\protect\ Collection: \protect\TL, pro\protect\TeX{}t, Mac\protect\TeX} \label{sec:tl-coll-dists} Il \DVD{} \TK{} include quanto segue: \begin{description} \item [\TL] Un sistema \TeX{} completo da installare sul proprio disco. Home page: \url{https://tug.org/texlive/}. \item [Mac\TeX] per \MacOSX\ (chiamato attualmente macOS da Apple, ma noi continuiamo ad usare il vecchio nome in questo documento), aggiunge a \TL{} un installatore nativo per \MacOSX\ ed altre applicazioni Mac. Home page: \url{https://tug.org/mactex/}. \item [pro\TeX{}t] Un miglioramento della distribuzione \MIKTEX\ per Windows, \ProTeXt\ aggiunge alcuni strumenti supplementari a \MIKTEX\ e semplifica l'installazione. È interamente indipendente da \TL{} e ha le proprie istruzioni per l'installazione. Home page: \url{https://tug.org/protext}. \item [CTAN] Un'instantanea dell'archivio \CTAN{} (\url{https://ctan.org/}). \end{description} \CTAN{} e \pkgname{protext} non seguono le stesse condizioni di licenza di \TL{}, per cui fate attenzione nel ridistribuirli o modificarli. \subsection{Directory primarie di \protect\TL{}} \label{sec:tld} Segue un breve elenco e una descrizione delle directory primarie di un'installazione di \TL. \begin{ttdescription} \item[bin] I programmi del sistema \TeX{}, raggruppati per piattaforma. % \item[readme-*.dir] Una rapida panoramica ed alcuni collegamenti utili per \TL{}, in varie lingue, sia in \HTML{} che in formato testuale. % \item[source] I sorgenti di tutti i programmi inclusi, comprese le distribuzioni \TeX{} basate su \Webc{}. % \item[texmf-dist] Il percorso principale; vedi \dirname{TEXMFDIST} sotto. % \item[tlpkg] Script, programmi e dati per la gestione dell'installazione e per il supporto specifico per Windows. \end{ttdescription} Per quanto riguarda la documentazione, i collegamenti nel file \OnCD{doc.html} possono risultare utili. La documentazione per quasi tutto (pacchetti, formati, font, manuali dei programmi, pagine di manuali in linea, file Info) si trova in \dirname{texmf-dist/doc}. Potete usare il programma \cmdname{texdoc} per trovare la documentazione, ovunque sia collocata. Questa stessa documentazione di \TL\ si trova in \dirname{texmf-dist/doc/texlive}, disponibile in varie lingue: \begin{itemize*} \item{Ceco/Slovacco:} \OnCD{texmf-dist/doc/texlive/texlive-cz} \item{Cinese Semplificato:} \OnCD{texmf-dist/doc/texlive/texlive-zh-cn} \item{Francese:} \OnCD{texmf-dist/doc/texlive/texlive-fr} \item{Giapponese:} \OnCD{texmf-dist/doc/texlive/texlive-ja} \item{Inglese:} \OnCD{texmf-dist/doc/texlive/texlive-en} \item{Italiano:} \OnCD{texmf-dist/doc/texlive/texlive-it} \item{Polacco:} \OnCD{texmf-dist/doc/texlive/texlive-pl} \item{Russo:} \OnCD{texmf-dist/doc/texlive/texlive-ru} \item{Serbo:} \OnCD{texmf-dist/doc/texlive/texlive-sr} \item{Tedesco:} \OnCD{texmf-dist/doc/texlive/texlive-de} \end{itemize*} \subsection{Panoramica dei percorsi predefiniti in texmf} \label{sec:texmftrees} Questa sezione elenca le variabili predefinite che specificano i percorsi all'interno di texmf usati dal sistema, il loro scopo e la strutturazione predefinita di \TL{}. Il comando \texttt{tlmgr~conf} mostra i valori di queste variabili, così che sia possibile scoprire con facilità come queste mappino le specifiche directory nella propria installazione. Tutti i percorsi, inclusi quelli personali, dovrebbero seguire la Struttura delle Directory di \TeX\ (\TeX\ Directory Structure, \TDS, \url{https://tug.org/tds}) con tutta la sua miriade di sotto directory, altrimenti i file potrebbero non essere trovati. La sezione \ref{sec:local-personal-macros} (\p.\pageref{sec:local-personal-macros}) 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. \begin{ttdescription} \item [TEXMFDIST] Il percorso che contiene quasi tutti i file nella distribuzione originale --- file di configurazione, script, pacchetti, font, ecc (l'eccezione principale sono gli eseguibili relativi a ciascuna piattaforma, che sono contenuti in un percorso gemello \code{bin/}). \item [TEXMFSYSVAR] Il percorso (a livello di sistema) usato da \verb+texconfig-sys+, \verb+updmap-sys+, \verb+fmtutil-sys+ ed anche da \verb+tlmgr+ per memorizzare (nella cache) i dati generati durante l'esecuzione, come i file dei formati e le mappe per i font. \item [TEXMFSYSCONFIG] Il percorso (a livello di sistema) usato dai programmi \verb+texconfig-sys+, \verb+updmap-sys+ e \verb+fmtutil-sys+ per memorizzare i dati di configurazione modificati. \item [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. \item [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. \item [TEXMFVAR] Il percorso (a livello di ciascun utente) usato da \verb+texconfig+, \verb+updmap-user+ e \verb+fmtutil-user+ per memorizzare (nella cache) i dati generati durante l'esecuzione, come i file dei formati e le mappe per i font generati. \item [TEXMFCONFIG] Il percorso (a livello di ciascun utente) usato dai programmi \verb+texconfig+, \verb+updmap-sys+ e \verb+fmtutil-sys+ per memorizzare i dati di configurazione modificati. \item [TEXMFCACHE] I percorsi usati da \ConTeXt\ MkIV e Lua\LaTeX\ per memorizzare (nella cache) i dati generati durante l'esecuzione; il valore predefinito è \code{TEXMFSYSVAR}, oppure (se non si hanno i permessi di scrittura) \code{TEXMFVAR}. \end{ttdescription} \noindent La strutturazione predefinita è: \begin{description} \item[percorso a livello di sistema] può contenere diverse edizioni di \TL{} (in Unix di default è \texttt{/url/local/texlive}): \begin{ttdescription} \item[2020] Un'edizione precedente. \item[2021] L'attuale edizione. \begin{ttdescription} \item [bin] ~ \begin{ttdescription} \item [i386-linux] Esebuibili per \GNU/Linux (32 bit) \item [...] \item [universal-darwin] Eseguibili per \MacOSX \item [x86\_64-linux] Eseguibili per \GNU/Linux (64 bit) \item [win32] Eseguibili per Windows \end{ttdescription} \item [texmf-dist\ \ ] \envname{TEXMFDIST} e \envname{TEXMFMAIN} \item [texmf-var \ \ ] \envname{TEXMFSYSVAR}, \envname{TEXMFCACHE} \item [texmf-config] \envname{TEXMFSYSCONFIG} \end{ttdescription} \item [texmf-local] \envname{TEXMFLOCAL}, pensato per essere mantenuto tra diverse edizioni. \end{ttdescription} \item[percorso home dell'utente] (\texttt{\$HOME} o \texttt{\%USERPROFILE\%}) \begin{ttdescription} \item[.texlive2020] Dati privati generati e di configurazione relativi ad un'edizione precedente. \item[.texlive2021] Dati privati generati e di configurazione relativi all'attuale edizione. \begin{ttdescription} \item [texmf-var\ \ \ ] \envname{TEXMFVAR}, \envname{TEXMFCACHE} \item [texmf-config] \envname{TEXMFCONFIG} \end{ttdescription} \item[texmf] \envname{TEXMFHOME} Macro personali, ecc. \end{ttdescription} \end{description} \subsection{Estensioni di \protect\TeX} \label{sec:tex-extensions} Lo sviluppo dell'originale \TeX{} di Knuth è congelato, se si escludono rare correzioni di bug. È presente in \TL\ come \prog{tex} e si prevede che non sarà modificato nel prossimo futuro. \TL{} contiene anche diverse versioni estese di \TeX\ (note anche come motori \TeX): \begin{description} \item [\eTeX] aggiunge un insieme di nuove primitive \label{text:etex} (riguardanti l'espansione delle macro, la scansione dei caratteri, le classi di segnaposto, funzionalità di debug aggiuntive ed altro ancora) e le estensioni \TeXXeT{} per la scrittura bidirezionale. Nella modalità di base, \eTeX{} è compatibile al 100\% con il \TeX{} ordinario. Consultate \OnCD{texmf-dist/doc/etex/base/etex_man.pdf}. \item [pdf\TeX] parte dalle estensioni di \eTeX, aggiunge il supporto per la generazione di file PDF oltre che dei \dvi{} e molte estensioni che non sono legate alla generazione dell'output. Questo programma è invocato per molti formati comuni, come \prog{etex}, \prog{latex}, \prog{pdflatex}. Il suo sito web è \url{http://www.pdftex.org/}. Consultate \OnCD{texmf-dist/doc/pdftex/manual/pdftex-a.pdf} per il manuale e \OnCD{texmf-dist/doc/pdftex/samplepdftex/samplepdf.tex} per gli esempi d'uso di alcune delle sue funzionalità. \item [Lua\TeX] aggiunge il supporto per l'input Unicode e per i font OpenType\slash\ TrueType e di sistema. Incorpora anche un inteprete Lua (\url{https://lua.org/}), permettendo soluzioni a molti problemi spinosi di \TeX. Quando è invocato come \filename{luatex}, si comporta come un interprete Lua autonomo. Il suo sito web è \url{http://www.luatex.org/} e il manuale di riferimento è \OnCD{texmf-dist/doc/luatex/base/luatexref.pdf}. \item [(e)(u)p\TeX] ha il supporto nativo per i requisiti dell'impaginazione del giapponese; p\TeX\ è il motore di base, mentre le varianti e- aggiungono le funzionalità di \eTeX\ e u- aggiunge il supporto per l'Unicode. \item [\XeTeX] aggiunge il supporto per l'input in Unicode e per i font OpenType e di sistema, implementato usando librerie di terze parti standard. Visitate \url{https://tug.org/xetex}. \item [\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 \TL{} come programma separato; soltanto Aleph è fornito. \item [Aleph] combina le estensioni \OMEGA\ ed \eTeX. Consultate \OnCD{texmf-dist/doc/aleph/base}. \end{description} \subsection{Altri programmi rilevanti inclusi in \protect\TL} Seguono alcuni ulteriori programmi di uso comune inclusi in \TL{}: \begin{cmddescription} \item [bibtex, biber] supporto per la bibliografia. \item [makeindex, xindy] supporto per gli indici. \item [dvips] converte i \dvi{} in \PS{}. \item [xdvi] programma di anteprima dei \dvi{} per l'X Window System. \item [dviconcat, dviselect] tagliano ed incollano le pagine contenute nei file \dvi{}. \item [dvipdfmx] converte i \dvi{} in PDF, un approccio alternativo a pdf\TeX\ (citato in precedenza). \item [psselect, psnup, \ldots] programmi per il trattamento dei \PS{}. \item [pdfjam, pdfjoin, \ldots] programmi per il trattamento dei PDF. \item [context, mtxrun] processore Con\TeX{}t e PDF. \item [htlatex, \ldots] \cmdname{tex4ht}: convertitore da \AllTeX{} ad HTML (e ad XML ed altro ancora). \end{cmddescription} \htmlanchor{installation} \section{Installazione} \label{sec:install} \subsection{Avviare l'installatore} \label{sec:inst-start} Per cominciare, procuratevi il \DVD{} \TK{} oppure scaricate l'installatore di rete di \TL. Consulate \url{https://tug.org/texlive/acquire.html} per maggiori informazioni ed altri metodi per ottenere il software. \begin{description} \item [Installatore di rete, .zip o .tar.gz:] Scaricatelo da \CTAN, dal percorso \dirname{systems/texlive/tlnet}; l'indirizzo \url{http://mirror.ctan.org/systems/texlive/tlnet} dovrebbe reindirizzare ad un vicino mirror aggiornato. Potete scaricare sia \filename{install-tl.zip} che può essere usato sotto Unix e Windows, sia il notevolmente più piccolo \filename{install-unx.tar.gz} solo per Unix. Dopo averlo decompresso, \filename{install-tl} e \filename{install-tl-windows.bat} si troveranno nella sotto directory \dirname{install-tl}. \item [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 figura~\ref{fig:nsis}. Vi dà due scelte: ``Intalla'' e ``Decomprimi soltanto''. \item [\DVD{} \TeX{} Collection:] aprite la sotto directory \dirname{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 \TeX\ (caldamente consigliato, \url{https://tug.org/usergroups.html}) oppure acquistandolo separatamente (\url{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 \ref{sec:dvd-install-net-updates}. \end{description} \begin{figure}[tb] \tlpng{nsis_installer}{.6\linewidth} \caption{Prima fase dell'installatore \code{.exe} per Windows}\label{fig:nsis} \end{figure} Indipendentemente dall'origine, viene eseguito lo stesso programma di installazione. La differenza 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 file \filename{~/.wgetrc} o le variabili d'ambiente con le impostazioni proxy per Wget (\url{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. \subsubsection{Unix} Di seguito, \texttt{>} denota il prompt della shell; l'input dell'utente è in \Ucom{\texttt{grassetto}}. Il programma \filename{install-tl} è uno script Perl. Il modo più semplice per avviarlo su un sistema compatibile Unix è il seguente: \begin{alltt} > \Ucom{perl /percorso/verso/il/programma/install-tl} \end{alltt} In alternativa potete invocare \Ucom{/percorso/verso/il/programma/install-lt} se è rimasto eseguibile, oppure spostarvi con \texttt{cd} nella directory, ecc.; non staremo a ripetere tutte queste varianti. Potreste dover ingrandire la finestra di terminale (prompt dei comandi, per gli utenti Windows) affinché mostri l'intera schermata dell'installatore testuale (figura~\ref{fig:text-main}). Per installare in modalità \GUI\ (figura~\ref{fig:advanced-lnx}), dovete avere installato Tcl/Tk. In questo caso, potete eseguire \begin{alltt} > \Ucom{perl install-tl -gui} \end{alltt} Le vecchie opzioni \code{wizard} e \code{perltk}/\code{expert} sono ancora disponibili, ma ora fanno le stesse cose di \code{-gui}. Per un elenco completo delle varie opzioni: \begin{alltt} > \Ucom{perl install-tl -help} \end{alltt} \textbf{Sui permessi Unix:} Al momento dell'installazione, la tua \code{umask} sarà rispettata dall'installatore di \TL{}. Quindi, se vuoi che l'installazione sia usabile da altri utenti oltre che da te, sii sicuro che le tue impostazioni siano permissive a sufficienza, per esempio, \code{umask 002}. Per ulteriori informazioni riguardo \code{umask}, consulta la documentazione del tuo sistema. \textbf{Considerazioni speciali per Cygwin:} Diversamente da altri sistemi Unix-compatibili, Cygwin non è preimpostato per includere tutti i programmi di cui l'installatore di \TL{} ha bisogno. Consulta la sezione~\ref{sec:cygwin}. \subsubsection{MacOSX} \label{sec:macosx} Come accennato nella sezione~\ref{sec:tl-coll-dists}, abbiamo preparato una distribuzione separata per \MacOSX{} chiamata Mac\TeX\ (\url{https://tug.org/mactex}). Su \MacOSX{} raccomandiamo di usare l'installatore nativo di Mac\TeX\ al posto dell'installatore di \TL, in quanto quello nativo esegue alcuni aggiustamenti specifici per il Mac, in particolare per consentire con semplicità il passaggio tra le varie distribuzioni \TeX\ per \MacOSX\ (Mac\TeX, Fink, MacPorts, \ldots) usando la cosiddetta struttura dati \TeX{}Dist. Mac\TeX\ è strettamente basato su \TL, le principali strutture delle directory e gli eseguibili sono esattamente gli stessi, ma sono aggiunte alcune ulteriori cartelle con documentazione e applicazioni specifici per il Mac. \subsubsection{Windows}\label{sec:wininst} Se state usando il file zip scaricato e decompresso, oppure se l'installatore su \DVD\ non si avvia automaticamente, fate doppio clic su \filename{install-tl-windows.bat}. Potete avviare l'installatore anche dal prompt dei comandi. Qui sotto, \texttt{>} denota il prompt; l'input dell'utente è in \Ucom{\texttt{grassetto}}. Se vi trovate nella cartella dell'installatore, eseguite semplicemente: \begin{alltt} > \Ucom{install-tl-windows} \end{alltt} In alternativa potete lanciarlo con un percorso assoluto, come: \begin{alltt} > \Ucom{D:\bs{}texlive\bs{}install-tl-windows} \end{alltt} per il \DVD\ \TK, supponendo che \dirname{D:} sia l'unità del lettore \DVD. La figura~\ref{fig:basic-w32} mostra la schermata base dell'installazione \GUI, che è quella predefinita per Windows. Per installare in modalità testuale, usate: \begin{alltt} > \Ucom{install-tl-windows -no-gui} \end{alltt} Per un elenco completo delle diverse opzioni: \begin{alltt} > \Ucom{install-tl-windows -help} \end{alltt} %%% TODO \begin{figure}[tb] \begin{boxedverbatim} 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 binary platforms: 1 out of 16 set installation scheme: scheme-full customizing installation collections 40 collections out of 41, disk space required: 7172 MB directories: TEXDIR (the main TeX directory): /usr/local/texlive/2021 ... options: [ ] use letter size instead of A4 by default ... set up for portable installation Actions: start installation to hard disk

save installation profile to 'texlive.profile' and exit help quit \end{boxedverbatim} \vskip-.5\baselineskip \caption{Schermata principale dell'installatore testuale (\GNU/Linux)}\label{fig:text-main} \end{figure} \begin{figure}[tb] \tlpng{basic-w32}{.6\linewidth} \caption{Schermata dell'installazione (Windows); il pulsante Avanzate darà qualcosa di simile alla figura~\ref{fig:advanced-lnx}}\label{fig:basic-w32} \end{figure} \begin{figure}[tb] \tlpng{advanced-lnx}{\linewidth} \caption{Schermata dell'installazione \GUI\ avanzata (\GNU/Linux)}\label{fig:advanced-lnx} \end{figure} \htmlanchor{cygwin} \subsubsection{Cygwin} \label{sec:cygwin} Prima di iniziare l'installazione, usate il programma \filename{setup.exe} di Cygwin per installare i pacchetti \filename{perl} e \filename{wget}, a meno che non lo abbiate già fatto. I seguenti pacchetti aggiuntivi sono raccomandati: \begin{itemize*} \item \filename{fontconfig} [richiesto da \XeTeX\ e Lua\TeX] \item \filename{ghostscript} [richiesto da vari programmi] \item \filename{libXaw7} [richiesto da \code{xdvi}] \item \filename{ncurses} [fornisce il comando \code{clear} usato dall'installatore] \end{itemize*} \subsubsection{L'installatore testuale} La figura~\ref{fig:text-main} mostra la schermata principale della modalità testuale sotto Unix. L'installatore testuale è quello predefinito, 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 differenti), premete il tasto Invio e l'intera schermata del terminale sarà aggiornata, con il contenuto modificato. L'interfaccia di installazione testuale è così primitiva per farla funzionare sul maggior numero possibile di piattaforme, anche con un Perl minimale. \subsubsection{L'installatore grafico} \label{sec:graphical-inst} L'installatore grafico predefinito parte semplice, giusto con poche opzioni; vedi la figura~\ref{fig:basic-w32}. Può essere avviato con \begin{alltt} > \Ucom{install-tl -gui} \end{alltt} Il pulsante Avanzato dà accesso alla maggior parte delle opzioni dell'installazione testuale; vedi la figura~\ref{fig:advanced-lnx}. Le opzioni \GUI{} \texttt{perltk}/\texttt{expert} e \texttt{wizard} ora chiamano il normale installatore grafico. \subsection{Eseguire l'installatore} \label{sec:runinstall} L'installatore è pensato per essere perlopiù autoesplicativo, comunque seguono alcune note riguardo a varie opzioni e sottomenu. \subsubsection{Menu delle architetture (solo Unix)} \label{sec:binary} %TODO figura! \begin{figure}[tb] \begin{boxedverbatim} 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) \end{boxedverbatim} \vskip-.5\baselineskip \caption{Menu delle architetture}\label{fig:bin-text} \end{figure} La figura~\ref{fig:bin-text} 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 \TeX\ in una rete di macchine eterogenee, oppure per una macchina con due sistemi operativi. \subsubsection{Selezionare cosa deve essere installato} \label{sec:components} % TODO \begin{figure}[tbh] \begin{boxedverbatim} 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 \end{boxedverbatim} \vskip-.5\baselineskip \caption{Menu degli schemi}\label{fig:scheme-text} \end{figure} La figura~\ref{fig:scheme-text} mostra il menu degli schemi di \TL; da qui potete scegliere uno ``schema'', che è un insieme di collezioni di pacchetti. Lo schema \optname{full} installa tutto quanto disponibile. Questo è lo schema raccomandato, ma potete anche scegliere \optname{basic} per avere solo plain e \LaTeX, \optname{small} per quache programma in più (equvallente alla cosiddetta installazione Basic\TeX\ di Mac\TeX), \optname{minimal} per scopi di prova e \optname{medium} o \optname{teTeX} per una via di mezzo. Ci sono anche ulteriori schemi specializzati e specifici per particolari paesi. \begin{figure}[tbh] \centering \tlpng{stdcoll}{.7\linewidth} \caption{Menu delle collezioni}\label{fig:collections-gui} \end{figure} Potete rifinire la vostra scelta dello schema con i menu ``Collezioni'' (figura~\ref{fig:collections-gui}, mostrati, per cambiare, in modalità \GUI). Le collezioni stanno ad un livello di dettaglio maggiore rispetto agli schemi \Dash\ 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 \TL) contiene i file con le macro \TeX, i font e così via. Se desiderate un controllo maggiore di quello fornito dal menu delle collezioni, potete usare il programma \TeX\ Live Manager (\prog{tlmgr}) dopo l'installazione (cfr.\ la sezione~\ref{sec:tlmgr}); tramite tale programma, potete controllare l'installazione al livello di dettaglio dei singoli pacchetti. \subsubsection{Directory} \label{sec:directories} La strutturazione predefinita è descritta nella sezione~\ref{sec:texmftrees}, \p.\pageref{sec:texmftrees}. La directory predefinita di installazione è \dirname{/usr/local/texlive/2021} sotto Unix e |%SystemDrive%\texlive\2021| sotto Windows. Questa configurazione permette di avere molte installazioni parallele di \TL, ad esempio una per ogni edizione (tipicamente per anno, come qui) e di passare tra di loro semplicemente modificando il vostro percorso di ricerca. La directory di installazione può essere modificata impostando la cosiddetta \dirname{TEXDIR} nel programma di installazione. La schermata \GUI\ per questa ed altre opzioni è mostrata nella figura~\ref{fig:advanced-lnx}. Tra le ragioni più comuni per cambiarla ci sono la mancanza di sufficiente spazio su disco in quella partizione (l'intera \TL\ richiede diversi gigabyte) o la mancanza di permessi di scrittura per la posizione predefinita (non è necessario essere root o amministratori per installare \TL, ma è necessario disporre dei permessi di scrittura sulla directory di destinazione). Le directory di installazione possono essere modificate anche impostando alcune variabili d'ambiente prima di eseguire il programma di installazione (molto probabilmente \envname{TEXLIVE\_INSTALL\_PREFIX} o \envname{TEXLIVE\_INSTALL\_TEXDIR}); consultate la documentazione tramite |install-tl --help| (disponibile online su \url{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 specificare la vostra home, come ad esempio in `|~/texlive/2021|'. Raccomandiamo di includere l'anno nel percorso, così da poter tenere diverse edizioni di \TL{} fianco a fianco (potete anche mantenere un nome indipendente dall'edizione, come \dirname{/usr/local/texlive-cur}, sotto forma di collegamento simbolico, di cui modificare la destinazione dopo aver provato la nuova edizione). Modificare \dirname{TEXDIR} durante l'installazione causerà anche la modifica di \dirname{TEXMFLOCAL}, \dirname{TEXMFSYSVAR} e \dirname{TEXMFSYSCONFIG}. \dirname{TEXMFHOME} è la posizione raccomandata per le macro e i pacchetti personali. Il suo valore predefinito è |~/texmf| (|~/Library/texmf| su Mac). A differenza di \dirname{TEXDIR}, qui il carattere |~| viene mantenuto all'interno dei file di configurazione creati, dato che è utile che si riferisca alla home dell'utente che esegue \TeX. Si espande in \dirname{$HOME} sotto Unix e \verb|%USERPROFILE%| sotto Windows. Nota speciale ridondante: \envname{TEXMFHOME}, come tutti gli altri percorsi, deve essere organizzata secondo il \TDS, o i file potrebbero non essere trovati. %stopzone \dirname{TEXMFVAR} è la posizione in cui vengono memorizzati la maggior parte dei dati generati durante l'esecuzione specifici per ciascun utente. \dirname{TEXMFCACHE} è il nome della variabile usata per lo stesso scopo da Lua\LaTeX\ e \ConTeXt\ MkIV (consultate la sezione~\ref{sec:context-mkiv}, \p.\pageref{sec:context-mkiv}); il suo valore predefinito è \dirname{TEXMFSYSVAR}, oppure (se non si hanno i permessi di scrittura per quel percorso) \dirname{TEXMFVAR}. \subsubsection{Opzioni} \label{sec:options} % TODO FIGURA!!! \begin{figure}[tbh] \begin{boxedverbatim} Options setup: ===============================================================================

use letter size instead of A4 by default: [ ] execution of restricted list of programs: [X] create all format files: [X] install font/macro doc tree: [X] install font/macro source tree: [X] create symlinks in standard directories: [ ] binaries to: manpages to: info to: after install, set CTAN as source for package updates: [X] \end{boxedverbatim} \vskip-.5\baselineskip \caption{Menu delle opzioni (Unix)}\label{fig:options-text} \end{figure} La figura~\ref{fig:options-text} mostra il menu delle opzioni in modalità testuale. Ulteriori informazioni su ciascuna opzione: \begin{description} \item[use letter size instead of A4 by default:] Questa è la selezione del formato di carta predefinito. Ovviamente, se lo si desidera, si potrà e si dovrebbe specificare il formato della carta in ogni singolo documento. \item[execution of restricted list of programs:] A partire da \TL\ 2010, è consentita l'esecuzione da parte di \TeX\ di pochi programmi esterni. La (molto breve) lista di questi programmi è data nel file \filename{texmf.cnf}. Consultate le novità 2010 (sezione~\ref{sec:2010news}) per maggiori dettagli. \item[create all format files:] Per quanto i file 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 file di formato saranno generati, quando necessari, all'interno delle directory private \dirname{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. \item[install font/macro \ldots\ tree:] Scaricano/installano la documentazione e i file sorgenti inclusi nella maggior parte dei pacchetti. Non è raccomandato disattivarle. \item[create symlinks in standard directories:] Questa opzione (solo Unix) evita di dover modificare le variabili di ambiente. Senza di essa, le directory di \TL{} devono solitamente essere aggiunte alle variabili \envname{PATH}, \envname{MANPATH} e \envname{INFOPATH}. Avete bisogno dei permessi di scrittura nelle directory di destinazione. Questa opzione serve ad accedere al sistema \TeX\ tramite directory che sono già note agli utenti, come \dirname{/usr/local/bin}, che già non contengono alcun file di \TeX. State attenti a non sovrascrivere i file 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. \item[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~\ref{sec:location} e \ref{sec:dvd-install-net-updates}. \end{description} Opzioni specifiche di Windows, come mostrate dall'interfaccia \GUI{} avanzata: \begin{description} \item[regola il percorso di ricerca] Questa assicura che tutti i programmi vedranno la directory degli esebuibili di \TL{} nel loro percorso di ricerca. \item[aggiungi scorciatoie al menu] Se attiva, ci sarà un sottomenu \TL{} del menu Start. C'è una terza opzione `Voce nel launcher' oltre a `TeX Live menu' e `Nessuna scorciatoia'. Questa opzione è descritta nella sezione \ref{sec:sharedinstall}. \item[associazioni dei file] Le opzioni sono solo `Solo nuovi' (crea le associazioni dei file, ma non sovrascrive quelle esistenti), `Tutti' e `Nessuno'. \item[installa il programma \TeX{}works] \end{description} 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~\ref{sec:postinstall} per leggere cos'altro dovete fare, se ce n'è bisogno. \subsection{Opzioni della riga di comando di install-tl} \label{sec:cmdline} Digitate \begin{alltt} > \Ucom{install-tl -help} \end{alltt} 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: \begin{ttdescription} \item[-gui] Usa l'installatore \GUI\ se è possibile. Questo richiede Tcl/Tk versione 8.5 o superiore. Vale per \MacOSX\ ed è distribuito con \TL{} su Windows. Le opzoni obsolete \texttt{-gui=perltk} e \texttt{-gui=wizard} sono ancora disponibili ma richiamano la stessa interfaccia \GUI; se Tcl/Tk non sono disponibili, l'installazione prosegue in modalità testuale. \item[-no-gui] Costringe all'uso dell'installatore testuale. \item[-lang {\sl LL}] Specifica 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 \verb|install-tl --help| per la lista delle lingue disponibili. \item[-portable] Installa per un uso portabile su una chiavetta \USB{}. Questa opzione è anche selezionabile dall'installatore testuale con il comando \code{V} e dall'installatore grafico. Consultate la sezione~\ref{sec:portable-tl}. \item[-profile {\sl file}] Carica il profilo di installazione \var{file} ed esegue l'installazione senza interazione con l'utente. Il programma di installazione scrive sempre un file \filename{texlive.profile} nella sotto directory \dirname{tlpkg} della vostra installazione. Ad esempio, quel file può essere passato come argomento per ripetere esattamente la stessa installazione su un sistema differente. In alternativa, potete usare un profilo personalizzato, creato facilmente partendo da uno generato automaticamente e modificandone i valori, oppure potete usare un file vuoto, che prenderà come valori tutti quelli predefiniti. \item [-repository {\sl url-o-directory}] Specifica l'archivio dei pacchetti da cui installare; vedi più avanti. \htmlanchor{opt-in-place} \item[-in-place] (Documentato solo per completezza: non usate questa opzione a meno che non sappiate cosa state facendo.) Se avete già una copia di \TL{}, anche ottenuta tramite rsync o svn (consultate \url{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 file \filename{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. \end{ttdescription} \subsubsection{L'opzione \optname{-repository}} \label{sec:location} L'archivio dei pacchetti di rete predefinito è uno dei mirror di \CTAN{} scelto automaticamente tramite \url{http://mirror.ctan.org}. Per rimpiazzare questa scelta, potete specificare un url che comincia per \texttt{ftp:}, \texttt{http:}, \texttt{https:} o \texttt{file:/}, oppure il semplice nome di una directory (quando specificate un indirizzo \texttt{http:}, \texttt{https:} o \texttt{ftp:}, l'eventuale carattere finale ``\texttt{/}'' e l'eventuale ``\texttt{/tlpkg}'' conclusivo saranno ignorati). Per esempio, potete scegliere uno specifico mirror di \CTAN\ con qualcosa del tipo: \url{http://ctan.example.org/tex-archive/systems/texlive/tlnet/}, indicando un vero nome di un sito e il suo specifico percorso che ospita \CTAN al posto di |ctan.example.org/tex-archive|. L'elenco dei mirror di \CTAN\ si trova alla pagina \url{https://ctan.org/mirrors}. Se il valore specificato è locale (sia tramite percorso che tramite un url \texttt{file:/}), saranno usati i file compressi contenuti in una sotto directory \dirname{archive} del percorso (anche se sono disponibili anche file non compressi). \subsection{Azioni successive all'installazione} \label{sec:postinstall} Potrebbero essere necessarie alcune azioni successivie all'installazione. \subsubsection{Variabili d'ambiente per Unix} \label{sec:env} Se avete deciso di creare i collegamenti simbolici nelle directory standard (come descritto nella sezione~\ref{sec:options}), allora non c'è bisogno di modificare 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 \dirname{TEXDIR/bin}. Consultate la figura~\ref{fig:bin-text} 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 \envname{PATH}. Per le shell compatibili con la Bourne, come \prog{bash}, e usando \GNU/Linux per Intel x86 e le directory predefinite come esempio, il file da modificare dovrebbe essere \filename{$HOME/.profile} %stopzone (o un qualunque altro file aperto da \filename{.profile}), e le linee da aggiungere sarebbero simili alle seguenti: \begin{sverbatim} 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 \end{sverbatim} %stopzone Per csh o tcsh, il file da modificare tipicamente è \filename{$HOME/.cshrc} e le linee da aggiungere sarebbero del tipo: \begin{sverbatim} 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 \end{sverbatim} Se già avete delle impostazioni del genere in uno dei file citati, naturalmente dovete unirvi le directory di \TL\ come è più opportuno. \subsubsection{Variabili d'ambiente: configurazione globale} \label{sec:envglobal} 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 configurate. I nostri due suggerimenti sono: 1)~potete controllare il file \filename{/etc/manpath.config} e, se esiste, aggiungere linee come \begin{sverbatim} MANPATH_MAP /usr/local/texlive/2021/bin/x86_64-linux \ /usr/local/texlive/2021/texmf/doc/man \end{sverbatim} E 2)~verificate la presenza di un file \filename{/etc/environment} che potrebbe definire il percorso di ricerca ed altre variabili di ambiente predefinite. In ciascuna directory contenente eseguibili (per Unix), noi creiamo anche un collegamento simbolico chiamato \code{man} alla directory \dirname{texmf-dist/doc/man}. Alcuni programmi \code{man}, come quello di \MacOSX, lo individueranno automaticamente, ovviando alla necessità di qualunque configurazione per le pagine di manuale. \subsubsection{Aggiornamenti da Internet dopo l'installazione del \DVD} \label{sec:dvd-install-net-updates} Se avete installato \TL\ dal \DVD\ e successivamente volete ottenere gli aggiornamenti da Internet, dovete eseguire questo comando---\emph{dopo} aver aggiornato il vostro percorso di ricerca (come descritto nella sezione precedente): \begin{alltt} > \Ucom{tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet} \end{alltt} Questo dice a \cmdname{tlmgr} di usare un mirror di \CTAN\ nelle vicinanze per gli aggiornamenti futuri. È l'azione predefinita quando si installa dal \DVD, tramite l'opzione descritta nella sezione~\ref{sec:options}. Se ci sono problemi con la selezione automatica di un mirror, potete specificarne uno in particolare dall'elenco alla pagina \url{https://ctan.org/mirrors}. Usate il percorso esatto alla sotto directory \dirname{tlnet} su quel mirror, come mostrato in precedenza. \htmlanchor{xetexfontconfig} % manteniamo il link storico funzionante \htmlanchor{sysfontconfig} \subsubsection{Configurazione dei font di sistema per \protect\XeTeX\protect\ e Lua\protect\TeX} \label{sec:font-conf-sys} \XeTeX\ e Lua\TeX\ possono usare qualsiasi font installato nel sistema, non solo quelli nelle directory di \TeX. Fanno questo tramite metodi correlati, ma non identici. Su Windows, i font distribuiti con \TL\ sono resi automaticmanete disponibili a \XeTeX\ tramite il loro nome. Su \MacOSX, il supporto alla ricerca per nome dei font richiede del passi aggiuntivi; visitate le pagine dedicate a Mac\TeX\ (\url{https://tug.org/mactex}). Per altri sistemi Unix, segue la procedura per trovare i font forniti con \TL\ tramite il loro nome. Per facilitare il compito, quando il pacchetto \pkgname{xetex} è installato (sia durante l'installazione iniziale che in seguito), viene creato il file di configurazione necessario in \filename{TEXMFSYSVAR/fonts/conf/texlive-fontconfig.conf}. Per impostare i font di \TL{} per l'uso nell'intero sistema (assumendo che abbiate gli opportuni privilegi), procedete come segue: \begin{enumerate*} \item Copiate il file \filename{texlive-fontconfig.conf} in \dirname{/etc/fonts/conf.d/09-texlive.conf}. \item Eseguite \Ucom{fc-cache -fsv}. \end{enumerate*} Se non avete privilegi sufficienti per completare i passi precedenti, o se volete rendere disponibili i font di \TL{} ad un solo utente, fate quello che segue: \begin{enumerate*} \item Copiate il file \filename{texlive-fontconfig.conf} in \filename{~/.fonts.conf}, dove \filename{~} è la vostra directory di home. \item Eseguite \Ucom{fc-cache -fv}. \end{enumerate*} Potete eseguire \code{fc-list} per vedere i nomi dei font di sistema. L'incantesimo \code{fc-list : family style file spacing} (dove tutti gli argomenti sono esattamente come mostrati) generalmente fornisce alcune informazioni interessanti. \subsubsection{\protect\ConTeXt{} Mark IV} \label{sec:context-mkiv} Sia il ``vecchio'' \ConTeXt{} (Mark II) che il ``nuovo'' \ConTeXt{} (Mark IV) dovrebbero funzionare così come sono dopo l'installazione di \TL{} e non dovrebbero richiedere alcuna attenzione particolare finché restate fedeli a \verb+tlmgr+ per gli aggiornamenti. Comunque, dato che \ConTeXt{} MkIV non usa la libreria kpathsea, sarà richiesta un po' di configurazione ogni qual volta installate nuovi file manualmente (senza usare \verb+tlmgr+). Dopo ogni installazione del genere, ogni utente di MkIV deve eseguire: \begin{sverbatim} context --generate \end{sverbatim} per aggiornare i dati della cache di \ConTeXt{} sul disco. I file risultanti sono memorizzati in \code{TEXMFCACHE}, il cui valore predefinito in \TL\ è \verb+TEXMFSYSVAR;TEXMFVAR+. \ConTeXt\ MkIV leggerà da tutti i percorsi menzionati in \verb+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 \url{https://wiki.contextgarden.net/Running_Mark_IV}. \subsubsection{Integrare macro locali e personali} \label{sec:local-personal-macros} Questa questione è già stata citata implicitamente nella sezione~\ref{sec:texmftrees}: \dirname{TEXMFLOCAL} (\dirname{/usr/local/texlive/texmf-local} o \verb|%SystemDrive%\texlive\texmf-local| su Windows, di default) è pensato per i font e le macro locali, ma disponibili per l'intero sistema; mentre \dirname{TEXMFHOME} (\dirname{$HOME/texmf} o \verb|%USERPROFILE%\texmf|, come predefiniti) è per le macro e i font personali. Queste directory sono pensate per rimanere fisse da un'edizione all'altra ed il loro contenuto per essere visto automaticamente da una nuova versione di \TL. Quindi, è meglio trattenersi dal modificare la definizione di \dirname{TEXMFLOCAL} in modo che punti ad una directory troppo diversa da quella principale di \TL, oppure potreste doverla modificare manualmente nelle future edizioni. In entrambe le posizioni, i file dovrebbero essere posti ognuno nella propria sotto directory secondo la Struttura delle Directory di \TeX\ (\TDS); visitate \url{https://tug.org/tds} o consultate \filename{texmf-dist/web2c/texmf.cnf}. Ad esempio, il file di una classe o di un pacchetto \LaTeX{} andrebbero posizionati in \dirname{TEXMFLOCAL/tex/latex} o in \dirname{TEXMFHOME/tex/latex}, oppure in una sotto directory di una delle due. \dirname{TEXMFLOCAL} richiede un database dei nomi dei file aggiornato, altrimenti i file non saranno trovati. Potete aggiornarlo con il comando \cmdname{mktexlsr} o utilizzando il pulsante ``Aggiorna il database dei nomi dei file'' nel pannello di configurazione della \GUI\ di \TeX\ Live Manager. Di default, ciascuna di queste variabili è definita 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 \dirname{TEXMFHOME} alla lista delle directory, tra parentesi graffe, separate da virgole: \begin{verbatim} TEXMFHOME = {/mia/dir1,/miadir2,/una/terza/dir} \end{verbatim} La sezione~\ref{sec:brace-expansion} descrive ulteriormente l'espansione delle graffe. \subsubsection{Integrare font di terze parti} Sfortunatamente, si tratta di un argomento ingarbugliato per \TeX\ e pdf\TeX. Dimenticatevene a meno che non vogliate addentrarvi nei numerosi dettagli dell'installazione di \TeX{}. Molti font sono già inclusi in \TL, quindi dategli uno sguardo se ne avete voglia; le pagine web all'interno di \url{https://tug.org/FontCatalogue} mostrano praticamente tutti i font testuali inclusi nelle distribuzioni principali di \TeX, cagorizzati secondo vari criteri. Se volete installare i vostri font, visitate la pagina \url{https://tug.org/fonts/fontinstall.html} dove abbiamo fatto del nostro meglio per descrivere la procedura. Prendete anche in considerazione l'uso di \XeTeX\ o Lua\TeX\ (consultate la sezione~\ref{sec:tex-extensions}), che vi consentono di usare i font del sistema operativo senza alcuna installazione in \TeX\ (ma fate attenzione che usare i font di sistema rende i vostri documenti istantaneamente non utilizzabili da chiunque in un ambiente differente). \subsection{Collaudare l'installazione} \label{sec:test-install} Dopo aver installato \TL, naturalmente vorrete provarlo, così da poter iniziare a creare bellissimi documenti e\slash o font. Una cosa che vorrete immediatamente cercare è un programma con cui elaborare i file. \TL{} installa \TeX{}works su Windows (\url{https://tug.org/texworks}) e Mac\TeX\ installa TeXShop (\url{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 \url{https://tug.org/interest.html#editors}. Qualsiasi editor di testo funzionerà; non è necessario qualcosa specifico per \TeX. Il resto di questa sezione fornisce alcune procedure elementari per verificare che il nuovo sistema funzioni. Qui daremo i comandi per Unix; è più facile che sotto \MacOSX e Windows eseguiate le prove tramite un'interfaccia grafica, ma i principi sono gli stessi. \begin{enumerate} \item Assicuratevi per prima cosa di poter eseguire il programma \cmdname{tex}: \begin{alltt} > \Ucom{tex -{}-version} TeX 3.14159265 (TeX Live ...) Copyright ... D.E. Knuth. ... \end{alltt} 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 \dirname{bin} nel vostro \envname{PATH}. Consultate le informazioni sull'impostazione delle variabili d'ambiente a \p.\pageref{sec:env}. \item Elaborate un file \LaTeX{} elementare, generando un PDF: \begin{alltt} > \Ucom{pdflatex sample2e.tex} This is pdfTeX 3.14... ... Output written on sample2e.pdf (3 pages, 142120 bytes). Transcript written on sample2e.log. \end{alltt} Se questo non riesce a trovare \filename{sample2e.tex} o altri file, potreste avere qualche interferenza proveniente da vecchie variabili d'ambiente o vecchi file di configurazione; noi raccomandiamo, tanto per iniziare, di eliminare tutte le variabili d'ambiente relative a \TeX\ (per un'analisi approfondita, potete chiedere a \TeX{} di fare un resoconto su ciò che esattamente stia cercando e che trovi; consultate ``Risoluzione dei problemi'' a pagina~\pageref{sec:debugging}). \item Mostrate un'anteprima del file PDF, ad esempio: \begin{alltt} > \Ucom{xpdf sample2e.pdf} \end{alltt} Dovreste vedere una nuova finestra con un bel documento che spiega alcuni dei fondamenti di \LaTeX{} (che vale la pena leggere se siete nuovi a \TeX). Ovviamente ci sono molti altri visualizzatori di PDF; nei sistemi Unix, \cmdname{evince} e \cmdname{okular} sono comunemente usati. Per Windows, raccomandiamo di provare Sumatra PDF (\url{https://www.sumatrapdfreader.org/free-pdf-reader.html}). Non ci sono visualizzatori di PDF incusi in \TL, quindi dovete installare separatamente qualunque vogliate usare. \item Ovviamente potete ancora generare il formato originale di \TeX\ \dvi{}: \begin{alltt} > \Ucom{latex sample2e.tex} \end{alltt} \item E mostrare un'anteprima del \dvi: \begin{alltt} > \Ucom{xdvi sample2e.dvi} # Unix > \Ucom{dviout sample2e.dvi} # Windows \end{alltt} Dovete avere X in esecuzione affinché \cmdname{xdvi} funzioni; se non è così, oppure se la vostra variabile d'ambiente \envname{DISPLAY} non è impostata correttamente, otterrete un errore \samp{Can't open display}. \item Per creare un file \PS{} dal \dvi: \begin{alltt} > \Ucom{dvips sample2e.dvi -o sample2e.ps} \end{alltt} \item Oppure per creare un file PDF dal \dvi{}, una strada alternativa all'uo di pdf\TeX\ (o di Xe\TeX\ o Lua\TeX) che può essere utile qualche volta è: \begin{alltt} > \Ucom{dvipdfmx sample2e.dvi -o sample2e.pdf} \end{alltt} \item Altri file di prova che potreste trovare utili in aggiunta a \filename{sample2e.tex} sono: \begin{ttdescription} \item [small2e.tex] Un documento più semplice di \filename{sample2e}, per ridurre la dimensione dell'input qualora si riscontrino problemi. \item [testpage.tex] Verifica se la vostra stampante introduce qualche margine. \item [nfssfont.tex] Per stampare tabelle e prove riguardanti i font. \item [testfont.tex] Anche questo per le tabelle dei font, ma usando plain \TeX{}. \item [story.tex] Il più canonico tra tutti file di prova per (plain) \TeX{}. Dovete digitare \samp{\bs bye} al prompt \code{*} dopo \samp{tex story.tex}. \end{ttdescription} \item Se avete installato il pacchetto \filename{xetex}, potete verificare che riesca ad accedere ai font di sistema in questo modo: \begin{alltt} > \Ucom{xetex opentype-info.tex} This is XeTeX, Version 3.14\dots ... Output written on opentype-info.pdf (1 page). Transcript written on opentype-info.log. \end{alltt} Se ricevete un messaggio di errore che riporta ``Invalid fontname `Latin Modern Roman/ICU\dots'', allora dovete configurare il vostro sistema in modo che i font distribuiti con \TL\ possano essere trovati. Consultate la sezione~\ref{sec:font-conf-sys}. \end{enumerate} \subsection{Collegamenti ad ulteriori software scaricabili} Se siete nuovi utilizzatori di \TeX{} o comunque avete bisogno di aiuto nella scrittura di documenti \TeX{} o \LaTeX, visitate la pagina \url{https://tug.org/begin.html} per alcune risorse introduttive. Ecco i collegamenti ad alcuni altri strumenti che potete prendere in considerazione per l'installazione: \begin{description} \item[Ghostscript] \url{https://ghostscript.com/} \item[Perl] \url{https://perl.org/} con i pacchetti supplementari da CPAN, \url{https://cpan.org/} \item[ImageMagick] \url{https://imagemagick.org}, per l'elaborazione e la conversione di immagini \item[NetPBM] \url{http://netpbm.sourceforge.net/}, anch'esso per le immagini. \item[Editor orientati a \TeX] C'è un'ampia scelta ed è una questione di gusto dell'utente. Eccone una selezione in ordine alfabetico (alcuni sono solo per Windows). \begin{itemize*} \item \cmdname{GNU Emacs} è disponibile anche per Windows, visita \url{https://www.gnu.org/software/emacs/emacs.html}. \item \cmdname{Emacs con Auc\TeX} per Windows è disponibile su \CTAN. La home page di Auc\TeX\ è \url{https://www.gnu.org/software/auctex}. \item \cmdname{SciTE} è disponibile su \url{https://www.scintilla.org/SciTE.html}. \item \cmdname{Texmaker} è un software libero disponibile su \url{https://www.xm1math.net/texmaker/}. \item \cmdname{TeXstudio} è nato come un fork di \cmdname{Texmaker} e sono state poi aggiunge altre funzionalità; disponibile su \url{https://texstudio.org/} e nella distribuzione pro\TeX{}t. \item \cmdname{TeXnicCenter} è un software libero, disponibile su \url{https://www.texniccenter.org}. \item \cmdname{TeXworks} è un software libero disponibile su \url{https://tug.org/texworks} e installato come parte di \TL\ solo su Windows. \item \cmdname{Vim} è un software libero disponibile su \url{https://www.vim.org}. \item \cmdname{WinEdt} è un software shareware disponibile su \url{https://tug.org/winedt} o \url{https://www.winedt.com}. \item \cmdname{WinShell} è disponibile su \url{https://www.winshell.de}. \end{itemize*} \end{description} Per un elenco molto più lungo di pacchetti e programmi, visitate \url{https://tug.org/interest.html}. \section{Installazione specializzate} Le sezioni precedenti hanno descritto il processo di installazione di base. Ora passiamo ad alcuni casi particolari. \htmlanchor{tlsharedinstall} \subsection{Installazioni condivise tra utenti o macchine} \label{sec:sharedinstall} \TL{} è stato progettato per essere condiviso tra diversi sistemi in una rete. Con l'organizzazione predefinita delle directory, nessun percorso assoluto viene configurato: le posizioni dei file necessari ai programmi di \TL{} sono relative ai programmi stessi. Potete vederlo nel file di configurazione principale \filename{$TEXMFDIST/web2c/texmf.cnf}, che contiene linee come: \begin{sverbatim} TEXMFROOT = $SELFAUTOPARENT ... TEXMFDIST = $TEXMFROOT/texmf-dist ... TEXMFLOCAL = $SELFAUTOGRANDPARENT/../texmf-local \end{sverbatim} Questo significa che aggiungere la directory degli eseguibili di \TL{} appropriati alla piattaforma al loro percorso di ricerca è sufficiente per ottenere una configurazione funzionante. Per la stessa ragione, potete anche installare \TL{} localmente e successivamente muovere l'intera struttura verso un percorso di rete. Per Windows, \TL{} include un programma \filename{tlaunch}. La sua finestra principale contiene voci di menu e pulsanti per i vari programmi e documentazione relativi a \TeX, personalizzabili tramite un file \code{ini}. Al primo utilizzo, il programma replica le tipiche operazioni post-installazione specifiche per Windows, ossia la modifica dei percorsi e le associazioni dei file, ma soltanto per l'utente corrente Quindi, i computer che accedono a \TL{} nella rete locale hanno solo bisogno di una scorciatoia di menu per questo programma. Consultate il manuale di \code{tlaunch} (\code{texdoc tlaunch}, o \url{https://ctan.org/pkg/tlaunch}). \htmlanchor{tlportable} \subsection{Installazioni portabili (\USB)} \label{sec:portable-tl} L'opzione \code{-portable} dell'installazione (o il comando \code{V} nell'installatore testuale o la corrispondente opzione della \GUI) crea un'installazione di \TL{} 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 predefiniti di \envname{TEXMFHOME}, \envname{TEXMFVAR} e \envname{TEXMFCONFIG} pari rispettivamente a \envname{TEXMFLOCAL}, \envname{TEXMFSYSVAR} e \envname{TEXMFSYSCONFIG}; di conseguenza la configurazione e le cache per ogni utente non saranno crete. Per eseguire \TeX\ 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 \filename{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: \medskip \tlpng{tray-menu}{4cm} \smallskip \noindent La voce ``More\ldots'' spiega come potete personalizzare questo menu. %\htmlanchor{tlisoinstall} %\subsection{Installazioni degli \ISO\ (o del \DVD)} %\label{sec:isoinstall} % %Se non avete bisogno di aggiornare o in qualunque altro modo modificare %spesso la vostra installazione e\slash o avete diversi sistemi sui quali %usare \TL, potrebbe essere conveniente creare un'\ISO\ della vostra %installazione di \TL{} perché: % %\begin{itemize} %\item Copiare una \ISO\ tra diversi computer è molto più rapido che copiare % un'installazione normale. %\item Se avete due sistemi operativi sulla stessa macchina e volete che % condividano un'installazione di \TL, un'installazione \ISO\ non è % vincolata alle idiosincrasie e alle limitazioni di altri filesystem % reciprocamente supportati (FAT32, NTFS, HFS+). %\item Le macchine virtuali possono semplicemente montare tale \ISO. %\end{itemize} % %Ovviamente potete anche masterizzare un'\ISO\ su un \DVD, se lo ritenete %utile per voi. % %I sistemi desktop \GNU/Linux/Unix, incluso \MacOSX, sono capaci di montare %una \ISO. Windows 8 è la prima versione di Windows che può farlo. Al di là %di questo, non cambia nulla confrontato con una normale %installazione su hard disk, consulate la sezione \ref{sec:env}. % %Quando preparate tale installazione su \ISO, è meglio omettere la %sottodirectory per l'anno dell'edizione e avere \filename{texmf-local} allo %stesso livello degli altri alberi (\filename{texmf-dist}, %\filename{texmf-var}, ecc.). Potete fare ciò con le normali opzioni per le %directory nell'installatore. % %Per un sistema Windows fisico (piuttosto che virtuale), potete masterizzare %la \ISO\ su un DVD. Comunque, potrebbe valere la pena investigare le %varie opzioni gratuite per il montaggio delle \ISO, come WinCDEmu da %\url{http://wincdemu.sysprogs.org/}. % %Per l'integrazione con il sistema Windows, potete includere gli script %\filename{w32client} descritti nella sezione~\ref{sec:sharedinstall} e su %\url{http://tug.org/texlive/w32client.html}, che funzionano per %un'installazione \ISO\ così come per una condivisa. % %Su \MacOSX, TeXShop sarà capace di usare l'installazione su %DVD se un collegamento simbolico \filename{/usr/texbin} punta alla %directory degli eseguibili appropriata, per esempio, %\begin{verbatim} %sudo ln -s /Volumes/MyTeXLive/bin/universal-darwin /usr/texbin %\end{verbatim} % %Nota storica: \TL{} 2010 è stata la prima edizione di \TL{} che non è stata %più distribuita ``live''. Comunque, richiedeva sempre alcune acrobazie per %funzionare da \DVD\ o da \ISO; in particolare, non c'era alcun modo di %evitare di impostare almeno un'ulteriore variabile d'ambiente. Se create la %vostra \ISO\ da un'installazione esistente, allora non c'è bisogno di %questo. \htmlanchor{tlmgr} \section{\cmdname{tlmgr}: gestire la vostra installazione} \label{sec:tlmgr} \begin{figure}[tb] \tlpng{tlshell-macos}{\linewidth} \caption{\GUI\ \prog{tlshell} che mostra il menu Azioni (\MacOSX)} \label{fig:tlshell} \end{figure} \begin{figure}[tb] \tlpng{tlcockpit-packages}{.8\linewidth} \caption{\GUI\ \prog{tlcockpit} per \prog{tlmgr}} \label{fig:tlcockpit} \end{figure} \begin{figure}[tb] \tlpng{tlmgr-gui}{\linewidth} \caption{Modalità \GUI\ obsoleta di \prog{tlmgr}: finestra principlae dopo aver premuto il pulsante `Carica'} \label{fig:tlmgr-gui} \end{figure} \TL{} include un programma chiamato \prog{tlmgr} per gestire \TL{} dopo l'installazione iniziale. Le sue funzionalità includono: \begin{itemize*} \item installare, aggiornare, archiviare, ripristinare e disinstallare i singoli pacchetti, eventualmente tenendo conto delle dipendenze; \item cercare ed elencare pacchetti e le loro descrizioni; \item elencare, aggiungere e rimuovere le piattaforme disponibili; \item cambiare le opzioni di installazione come la dimensione del foglio e il percorso di installazione (consultate la sezione~\ref{sec:location}). \end{itemize*} Le funzionalità di \prog{tlmgr} incorporano completamente quelle del programma \prog{texconfig}. Distribuiamo e manteniamo ancora \prog{texconfig} per tutti quelli abituati alla sua interfaccia, ma attualmente raccomandiamo di usare \prog{tlmgr}. \subsection{Interfacce \GUI\ per \cmdname{tlmgr}} \TL{} contiene diverse interfacce \GUI\ per \prog{tlmgr}. Due degne di nota: (1)~la figura~\ref{fig:tlshell} mostra \cmdname{tlshell}, che è scritto in Tcl/Tk e funziona così com'è sotto Windows e \MacOSX; (2)~la figura~\ref{fig:tlcockpit} mostra \prog{tlcockpit}, che richiede Java versione~8 o superiore e JavaFX. Entrambi sono pacchetti separati. \prog{tlmgr} ha anche una \GUI{} nativa (mostrata in figura~\ref{fig:tlmgr-gui}), che è avviata con: \begin{alltt} > \Ucom{tlmgr -gui} \end{alltt} Tuttavia questa estensione \GUI\ richiede Perl/Tk, il cui modulo non è più incluso nella distribuzione Perl di \TL\ per Windows. \subsection{Esempi di invocazioni di \cmdname{tlmgr} dalla riga di comando} Dopo l'installazione iniziale, potete aggiornare il vostro sistema alle ultime versioni disponibili con: \begin{alltt} > \Ucom{tlmgr update -all} \end{alltt} Se questo vi rende ansiosi, provate prima %If this makes you nervous, first try \begin{alltt} > \Ucom{tlmgr update -all -dry-run} \end{alltt} o (meno prolisso): %or (less verbose): \begin{alltt} > \Ucom{tlmgr update -list} \end{alltt} Questo esempio più complesso aggiunge una collezione, per il motore Xe\TeX, da una directory locale: \begin{alltt} > \Ucom{tlmgr -repository /local/mirror/tlnet install collection-xetex} \end{alltt} Genera il seguente risultato (ridotto): \begin{fverbatim} 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. \end{fverbatim} Come potete vedere, \prog{tlmgr} installa le dipendenze e si occupa di ogni azione necessaria dopo l'installazione, incluso l'aggiornamento del database dei nomi dei file e la generazione (o rigenerazione) dei formati. Nell'esempio precedente, abbiamo generato nuovi formati per \XeTeX. Per ottenere la descrizione di un pacchetto (o di una collezione o di uno schema): \begin{alltt} > \Ucom{tlmgr show collection-latexextra} \end{alltt} che produce un output simile a questo: \begin{fverbatim} 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 \end{fverbatim} Infine, cosa più importante, per ottenere la documentazione completa, visitate \url{https://tug.org/texlive/tlmgr.html} oppure eseguite: \begin{alltt} > \Ucom{tlmgr -help} \end{alltt} \section{Note relative a Windows} \label{sec:windows} \subsection{Funzionalità specifiche per Windows} \label{sec:winfeatures} Sotto Windows, l'installatore fa alcune cose in più: \begin{description} \item[Menu e collegamenti.] Viene creato nel menu Start un nuovo sotto menu ``\TL'' che contiene le voci per alcuni programmi grafici (\prog{tlmgr}, \prog{texdoctk}) e per un po' di documentazione. \item[Associazioni dei file.] Se abilitati, \prog{TeXworks}, \prog{Dviout} e \prog{PS\_view} diventano ciascuno il programma predefinito per i loro rispettivi tipi di file, oppure ottengono una voce nei menu contestuali ``Apri con'' per quei tipi di file. \item[Convertitore da bitmap ad eps.] I vari formati bitmap ricevono una voce \cmdname{bitmap2eps} nei loro menu contestuali ``Apri con''. Bitmap2eps è un semplice script che permette a \cmdname{sam2p} o \cmdname{bmeps} di compiere il vero lavoro. \item[Impostazione automatica delle variabili di ambiente.] Non sono richiesti interventi manuali per la loro configurazione. \item[Disinstallatore.] Il programma di installazione crea una voce per \TL\ in ``Installazione Applicazioni''. La pagina di disinstallazione della \GUI\ \TeX\ Live Manager fa riferimento a questo. Nel caso di installazione per singolo utente, il programma crea anche una voce di disinstallazione nel menu Start. \item[Protezione dalla scrittura.] Nel caso dell'installazione da parte di un amministratore, le directory di \TL\ sono protette dalla scrittura, per lo meno se \TL\ è installato su un normale disco non removibile formattato con NTFS. \end{description} Inoltre, per un approccio diverso, date un'occhiata al comando \cmdname{tlaunch}, descritto nella sezione~\ref{sec:sharedinstall}. \subsection{Software aggiuntivo incluso sotto Windows} Per essere completa, un'installazione di \TL\ ha bisogno di alcuni pacchetti di supporto che di solito non sono presenti su una macchina Windows. \TL{} fornisce questi pezzi mancanti. Questi programmi sono installati come parte di \TL{} solo su Windows. \begin{description} \item[Perl e Ghostscript.] A causa dell'importanza di Perl e Ghostscript, \TL{} include una copia ``nascosta'' di questi programmi. I programmi di \TL{} 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. \item[dviout.] Viene installato anche \prog{dviout}, un visualizzatore di DVI. All'inizio, quando visualizzate i file con \cmdname{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 finestra di creazione dei font. Maggiori informazioni possono essere trovate nell'aiuto del programma (altamente raccomandato). \item[\TeX{}works.] \TeX{}works è un editor orientato a \TeX\ con un visualizzatore per PDF incorporato. \item[Strumenti a riga di comando.] Assieme ai soliti programmi di \TL{} vengono installate alcune versioni per Windows di tipici programmi Unix a riga di comando. Questi programmi includono \cmdname{gzip}, \cmdname{zip}, \cmdname{unzip} e gli strumenti della suite \cmdname{poppler} (\cmdname{pdfinfo}, \cmdname{pdffonts}, \ldots); non è incluso nessun visualizzatore di PDF per Windows. Una possibilità è Sumatra PDF, disponibile su \url{https://www.sumatrapdfreader.org/}. \item[fc-list, fc-cache, \ldots] Gli strumenti dalla libreria fontconfig consentono a \XeTeX{} di gestire i font di sistema sotto Windows. Potete usare \prog{fc-list} per trovare i nomi dei font da passare al comando esteso di \XeTeX\ \cs{font}. Se è necessario, eseguite prima \prog{fc-cache} per aggiornare le informazioni sui font. \end{description} \subsection{Il profilo utente è ``home''} \label{sec:winhome} La controparte Windows di una directory di home di Unix è la directory \verb|%USERPROFILE%|. Sotto Windows Vista e successivi è \verb|C:\Users\|. Nel file \filename{texmf.cnf} e in generale in \KPS{}, \verb|~| verrà interpretato in modo appropriato sia sotto Windows che sotto Unix. \subsection{Il registro di configurazione di Windows} \label{sec:registry} Windows memorizza quasi tutti i dati di configurazione nel suo registro. Il registro contiene un insieme di chiavi organizzate gerarchicamente, con varie gerarchie. Le più importanti per i programmi di installazione sono \path{HKEY_CURRENT_USER} e \path{HKEY_LOCAL_MACHINE}, abbreviate in \path{HKCU} e \path{HKLM}. La porzione \path{HKCU} del registro si trova nella directory di home dell'utente (vedi sezione~\ref{sec:winhome}). \path{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. \subsection{Permessi di Windows} \label{sec:winpermissions} 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 \TL{} 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 è modificato. Altrimenti, i collegamenti e le voci nel menu sono creati solo per l'utente corrente e viene modificato il percorso di ricerca dell'utente. Indipendentemente dallo stato di amministratore, la cartella predefinita di \TL{} proposta dal programma di installazione si trova sempre sotto \verb|%SystemDrive%|. L'installatore verifica sempre se l'utente corrente ha i permessi di scrittura in tale cartella. Possono sorgere dei problemi se l'utente non è un amministratore e \TeX{} 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 \TL{} 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 \TL{} è anteposta al percorso di ricerca locale. La nuova \TL{} sarà sempre accessibile usando questo prompt. Anche il collegamento a \TeX{}works, se è installato, antepone \TL{} 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''. \subsection{Incrementare la memoria massima sotto Windows e Cygwin} \label{sec:cygwin-maxmem} Gli utenti di Windows e Cygwin (consulta la sezione~\ref{sec:cygwin} per i dettagli sull'installazione con Cygwin) possono ritrovarsi con la memoria esaurita durante l'esecuzione di alcuni dei programmi forniti con \TL. Ad esempio, \prog{asy} potrebbe esaurire la memoria se tentate di allocare un array di 25.000.000 numeri reali e Lua\TeX\ 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 (\url{https://cygwin.com/cygwin-ug-net/setup-maxmem.html}). Per Windows, dovete creare un file, ad esempio \code{moremem.reg}, con le seguenti quattro righe: \begin{sverbatim} Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Cygwin] "heap_chunk_in_mb"=dword:ffffff00 \end{sverbatim} \noindent e poi eseguire il comando \code{regedit /s moremem.reg} come amministratore (se volete cambiare la memoria unicamente per l'utente corrente invece che per l'intero sistema, usate \code{HKEY\_CURRENT\_USER}). \section{Una guida a Web2C} \Webc{} è una collezione integrata di programmi legati a \TeX: \TeX{} stesso, \MF{}, \MP, \BibTeX{}, ecc. È il cuore di \TL{}. Il sito web di \Webc{}, con il manuale più recente e molto altro, è \url{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 \TeX{}-to-C cambiando dei file sotto Unix, che erano principalmente un lavoro originale di Howard Trickey e Pavel Curtis. Tim Morgan divenne il manutentore del 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 \Webc{} gira sotto Unix, sotto i sistemi Windows a 32 bit, sotto MacOSX{} e sotto altri sistemi operativi. Usa i sorgenti originali di Knuth per \TeX{} e per altri programmi scritti nel sistema di programmazione letterata \web{} e li traduce in codice C. I programmi basilari di \TeX{} gestiti in questo modo sono: \begin{cmddescription} \item[bibtex] Gestisce le bibliografie. \item[dvicopy] Espande i riferimenti ai font virtuali nei file \dvi{}. \item[dvitomp] Converte da \dvi{} a MPX (immagini MetaPost). \item[dvitype] Converte i \dvi{} in testo leggibile \item[gftodvi] Provini dei font generici. \item[gftopk] Converte da font generici ad impacchettati. \item[gftype] Converte i font generici in testo leggibile. \item[mf] Crea famiglie di caratteri tipografici. \item[mft] Formatta i sorgenti \MF{}. \item[mpost] Crea diagrammi tecnici. \item[patgen] Crea modelli di sillabazione. \item[pktogf] Converte da font impacchettati a generici. \item[pktype] Converte i font impacchettati in testo leggibile. \item[pltotf] Converte le liste di proprietà da testo leggibile in TFM. \item[pooltype] Mostra i file delle riserve di \web{}. \item[tangle] Converte da \web{} al Pascal. \item[tex] Compone tipograficamente i documenti. \item[tftopl] Converte le liste di proprietà da TFM in testo leggibile \item[vftovp] Converte da font virtuali a liste di proprietà virtuali. \item[vptovf] Converte da liste di proprietà virtuali a font virtuali. \item[weave] Converte da \web{} a \TeX. \end{cmddescription} \noindent Le esatte funzioni e la sintassi di questi programmi sono descritte nella documentazione dei singoli pacchetti e di \Webc{} stesso. Tuttavia, conoscere alcuni principi che governano l'intera famiglia di programmi vi aiuterà a trarre vantaggio dalla vostra installazione \Webc{}. Tutti i programmi rispettano queste opzioni \GNU{} standard: \begin{ttdescription} \item[-{}-help] visualizza una guida sintetica all'utilizzo. \item[-{}-verbose] visualizza un rapporto dettagliato sull'avanzamento. \item[-{}-version] visualizza le informazioni sulla versione, poi esce. \end{ttdescription} E molti rispettano anche: \begin{ttdescription} \item[-{}-verbose] stampa un rapporto dettagliato dell'avanzamento \end{ttdescription} Per individuare i file, i programmi \Webc{} usano la libreria di ricerca dei percorsi \KPS{} (\url{https://tug.org/kpathsea}). Questa libreria usa una combinazione di variabili d'ambiente e un file di configurazione per ottimizzare la ricerca nella (enorme) raccolta di file di \TeX{}. \Webc{} può controllare simultaneamente molte directory, cosa utile per mantenere la distribuzione standard \TeX{}, le estensioni locali e quelle personali in directory distinte. Per velocizzare le ricerche dei file, alla radice di ogni albero di directory c'è un file \file{ls-R} contenente una voce con il nome ed il percorso relativo per ciascun file all'interno di quell'albero. \subsection{Ricerca dei percorsi con Kpathsea} \label{sec:kpathsea} Per prima cosa descriviamo il generico meccanismo di ricerca dei percorsi della libreria \KPS. Chiameremo \emph{percorso di ricerca} una lista separata da un due punti o da un punto e virgola di \emph{elementi di percorso}, che sono fondamentalmente nomi di directory. Un percorso di ricerca può provenire da (una combinazione di) molte fonti. Per cercare un file \samp{my-file} attraverso un percorso \samp{.:/dir}, \KPS{} controlla a turno ogni elemento del percorso: prima \file{./my-file}, poi \file{/dir/my-file}, restituendo la prima corrispondenza (o, eventualmente, tutte). Al fine di adattarsi al meglio alle convenzioni di tutti i sistemi operativi, sui sistemi non Unix \KPS{} può usare separatori di nomi di file diversi dai due punti (\samp{:}) e dalla barra obliqua (slash, \samp{/}). Per controllare un particolare elemento \var{p} di un percorso, \KPS{} per prima cosa verifica se può applicare a \var{p} un database precostruito (consulta ``Database di file'' a pagina~\pageref{sec:filename-database}), cioè se il database è in una directory che è prefisso di \var{p}. Se è così, la specifica del percorso è abbinata al contenuto del database. Per quanto il più semplice e comune elemento di un percorso sia il nome di una directory, \KPS{} supporta caratteristiche aggiuntive nei percorsi di ricerca: valori predefiniti stratificati, nomi di variabili d'ambiente, valori di file di configurazione, directory personali degli utenti e ricerca ricorsiva di sotto directory. Dunque, diciamo che \KPS{} \emph{espande} un elemento di percorso, intendendo che trasforma tutte le specifiche in semplici nomi di directory. Questa trasformazione è descritta nelle seguenti sezioni nello stesso ordine in cui avviene. Notate che se il nome del file cercato è assoluto o esplicitamente relativo, ossia se comincia con \samp{/}, \samp{./} o \samp{../}, \KPS{} controlla semplicemente se quel file esiste. \ifSingleColumn \else \begin{figure*} \verbatiminput{examples/ex5.tex} \setlength{\abovecaptionskip}{0pt} \caption{Un pezzo illustrativo di file di configurazione} \label{fig:config-sample} \end{figure*} \fi \subsubsection{Fonti dei percorsi} \label{sec:path-sources} Un percorso di ricerca può provenire da molte fonti. Nell'ordine in cui \KPS{} le usa: \begin{enumerate} \item Una variabile d'ambiente impostata dall'utente, per esempio \envname{TEXINPUTS}\@. Le variabili d'ambiente a cui è stato aggiunto un punto ed il nome di un programma hanno la precedenza; per esempio, se \samp{latex} è il nome del programma in esecuzione, allora \envname{TEXINPUTS.latex} avrà la precedenza su \envname{TEXINPUTS}. \item Il file di configurazione specifico per un programma, per esempio una riga \samp{S /a:/b} nel file di configurazione \file{config.ps} di \cmdname{dvips}. \item Un file di configurazione \file{texmf.cnf} di \KPS, contenente una riga del tipo \samp{TEXINPUTS=/c:/d} (vedi più avanti). \item Il valore predefinito in essere al momento della compilazione del programma. \end{enumerate} \noindent Potete vedere ciascuno di questi valori per un dato percorso di ricerca usando le opzioni di debug (consultate ``Risoluzione dei problemi'' a pagina~\pageref{sec:debugging}). \subsubsection{File di configurazione} \KPS{} legge i percorsi di ricerca ed altre definizioni nei \emph{file di configurazione al momento dell'esecuzione} chiamati \file{texmf.cnf}. Il percorso di ricerca \envname{TEXMFCNF} è usato per cercare questi file, 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 file \file{.../2021/texmf.cnf}. Se dovete apportare delle modifiche ai valori predefiniti (di norma non è necessario), questo è il posto in cui piazzarle. Il file di configurazione principale è \file{.../2021/texmf-dist/web2c/texmf.cnf}. Non dovreste modificare quest'ultimo file, dato che le vostre modifiche 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: \begin{verbatim} TEXINPUTS=.:/my/macro/dir: \end{verbatim} Affinché l'impostazione resti mantenibile e portable negli anni, usate un \samp{:} come terminatore (\samp{;} su Windows) per inserire i percorsi di sistema, invece di provare a scriverli tutti esplicitamente (consultate la sezione~\ref{sec:default-expansion}). Un'altra possibilità è quella di usare l'alberatura \envname{TREEMFHOME} (cfr. sezione~\ref{sec:directories}). \emph{Tutti} i file \file{texmf.cnf} nel percorso di ricerca saranno letti e le definizioni in quelli che appaiono per primi sostituiranno quelle nei file che appaiono per ultimi. Ad esempio, con un percorso di ricerca di \verb|.:$TEXMF|, i valori provenienti da \file{./texmf.cnf} sostituiranno quelli provenienti da \verb|$TEXMF/texmf.cnf|. \begin{itemize*} \item I commenti iniziano con il carattere \code{\%}, sia all'inizio di una riga che preceduto da uno spazio bianco, e continuano fino alla fine della riga. \item Le righe vuote sono ignorate. \item Una \bs{} alla fine 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. \item Ogni riga rimanente ha la forma:\\ \hspace*{2em}\texttt{\var{variabile} \textrm{[}.\var{nomeprogramma}\textrm{]} \textrm{[}=\textrm{]} \var{valore}}\\[1pt] dove il carattere \samp{=} e gli spazi che lo circondano sono opzionali (ma se \var{valore} inizia con \samp{.}, è più semplice usare il \samp{=} per evitare che il punto sia interpretato come qualificatore del nome del programma). \item Il nome \ttvar{variabile} può contenere un qualunque carattere diverso dallo spazio, da \samp{=} e da \samp{.}, ma usare solo i caratteri \samp{A-Za-z\_} è più sicuro. \item Se la parte \samp{.\var{nomeprogramma}} è presente, la definizione si applica solo se il programma che è in esecuzione ha il nome \texttt{\var{nomeprogramma}} oppure \texttt{\var{nomeprogramma}.exe}. Questo consente, ad esempio, alle diverse varianti di \TeX{} di avere diversi percorsi di ricerca. \item Trattato come stringa, \var{valore} può contentere qualunque carattere. Tuttavia in pratica la maggior parte dei valori in \file{texmf.cnf} sono correlati all'espansione dei percorsi e dato che diversi caratteri speciali sono usati nell'espansione (cfr. sezione~\ref{sec:cnf-special-chars}), come parentesi e virgole, questi non possono essere usati nei nomi delle directory. Un \samp{;}\ in \var{valore} è tradotto in \samp{:} se state usando Unix, in modo da avere un singolo \file{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 \samp{;} non è necessario in altri valori. La forma \code{\$\var{variabile}.\var{programma}} non è disponibile sul lato destro dell'espressione; al suo posto dovete usare una variabile aggiuntiva. \item Tutte le definizioni vengono lette prima che qualunque cosa sia espansa, quindi si può fare riferimento alle variabili prima che siano definite. \end{itemize*} Un frammento di file di configurazione che mostra la maggior parte di questi punti è \ifSingleColumn riportato sotto: \verbatiminput{examples/ex5.tex} \else mostrato nella figura~\ref{fig:config-sample}. \fi \subsubsection{Espansione dei percorsi} \label{sec:path-expansion} \KPS{} riconosce nei percorsi di ricerca alcuni caratteri e costrutti speciali, simili a quelli disponibili nelle shell di Unix. Come esempio generale, il percorso \verb+~$USER/{foo,bar}//baz+ viene espanso in tutte le directory sotto \file{foo} e \file{bar}, nella home dell'utente \texttt{\$USER}, che contengono a loro volta una directory o un file di nome \file{baz}. Queste espansioni sono spiegate nelle prossime sezioni. %$ \subsubsection{Espansione predefinita} \label{sec:default-expansion} Se il percorso di ricerca a più alta priorità (consultate ``Fonti dei percorsi'' a pagina~\pageref{sec:path-sources}) contiene un carattere \emph{due punti in più} (all'inizio, alla fine oppure una coppia di due punti), \KPS{} inserisce in quel punto il percorso di ricerca con la seconda più alta priorità che sia stato definito. Se questo percorso inserito ha a sua vuolta un due punti aggiuntivo, accade lo stesso con il successivo in ordine di priorità. Per esempio, data l'impostazione di una variabile d'ambiente \begin{alltt} > \Ucom{setenv TEXINPUTS /home/karl:} \end{alltt} e un valore di \code{TEXINPUTS} proveniente da \file{texmf.cnf} di \begin{alltt} .:\$TEXMF//tex \end{alltt} allora il valore finale usato nella ricerca sarà: \begin{alltt} /home/karl:.:\$TEXMF//tex \end{alltt} Dato che sarebbe inutile inserire lo stesso valore predefinito in più di un posto, \KPS{} cambia solo uno dei \samp{:}\ di troppo e lascia gli altri al loro posto. Per prima cosa cerca un \samp{:} all'inizio, quindi cerca un \samp{:} alla fine, per ultimo cerca un \samp{:} doppio. \subsubsection{Espansione delle parentesi graffe} \label{sec:brace-expansion} Una caratteristica utile è l'espansione delle parentesi graffe, che significa che, per esempio, \verb+v{a,b}w+ viene espanso in \verb+vaw:vbw+. L'annidamento delle parentesi è permesso. Tale caratteristica è usata per implementare gerarchie \TeX{} multiple, assegnando una lista di nomi tra graffe a \code{\$TEXMF}. Nel \file{texmf.cnf} distribuito, viene fatta una definizione (semplificata per questo esempio) di questo tipo: \begin{verbatim} TEXMF = {$TEXMFVAR,$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFDIST} \end{verbatim} Quindi la usiamo per definire, ad esempio, il percorso di input per \TeX: \begin{verbatim} TEXINPUTS = .;$TEXMF/tex// \end{verbatim} %$ che vuol dire che, dopo aver guardato nella directory attuale, saranno esaminati i percorsi \code{\$TEXMFVAR/tex}, \code{\$TEXMFHOME/tex}, \code{\$TEXMFLOCAL/tex} e \code{\$TEXMFDIST/tex} (gli ultimi due usando i database \file{ls-R}). \subsubsection{Espansione delle sotto directory} \label{sec:subdirectory-expansion} In un elemento di percorso, due o più barre (slash) consecutive alla fine di una directory \var{d} sono sostituite da tutte le sotto directory di \var{d\/}: prima quelle che si trovano direttamente sotto \var{d}, quindi quelle all'interno delle prime e così via. Ad ogni livello, l'ordine in cui le directory sono cercate \emph{non è specificato}. Se specificate il nome di un file dopo il \samp{//}, saranno incluse solo le sotto directory che lo contengono. Ad esempio, \samp{/a//b} si espande nelle directory \file{/a/1/b}, \file{/a/2/b}, \file{/a/1/1/b} e così via, ma non in \file{/a/b/c} o \file{/a/1}. È possibile usare più volte il costrutto \samp{//} in un percorso, ma ogni \samp{//} all'inizio di un percorso viene ignorato. \subsubsection{Riepilogo dei caratteri speciali in \file{texmf.cnf}} \label{sec:cnf-special-chars} Il seguente elenco riassume i caratteri speciali e i costrutti nei file di configurazione di \KPS{}. % need a wider space for the item labels here. \newcommand{\CODE}[1]{\makebox[3em][l]{\code{#1}}} \begin{ttdescription} \item[\CODE{:}] Separatore nella specifica di un percorso; all'inizio o alla fine di un percorso, o doppio nel mezzo, sostituisce l'espansione di percorso predefinita.\par \item[\CODE{;}] Separatore nei sistemi non Unix (si comporta come \code{:}). \item[\CODE{\$}] Espansione di una variabile. \item[\CODE{\string~}] Rappresenta la directory di home di un utente. \item[\CODE{\char`\{...\char`\}}] Espansione di parentesi graffe. \item[\CODE{//}] Espansione di sotto directory (può trovarsi ovunque in un percorso tranne che al suo inizio). \item[\CODE{\%}] Inizio di un commento. \item[\CODE{\bs}] Alla fine di una linea, carattere di continuazione per permettere voci di più linee. \item[\CODE{!!}] Cerca \emph{solo} nei database per individuare un file, \emph{non} cerca sul disco. \end{ttdescription} 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 configurazione (parsing, espansione, ricerca, \ldots)\ e quindi, sfortunatamente, non possono essere espresse in modo conciso. Non esiste un meccanismo di \emph{escape} generale; in particolare, \samp{\bs} non è un ``carattere di escape'' nei file \file{texmf.cnf}. Quando è il momento di scegliere i nomi delle directory per l'istallazione, è più sicuro saltarli completamente. \subsection{Database di nomi di file} \label{sec:filename-database} \KPS{} si sforza di minimizzare gli accessi al disco per le ricerche. Nonostante ciò, nella \TL\ standard o in qualunque installazione con un numero sufficiente di directory, esplorare qualunque possibile directory per un dato file richiederebbe un tempo eccessivamente lungo. Per questo \KPS{} può usare un file di ``database'' testuale costruito esternamente, chiamato \file{ls-R}, che mappa file a directory, evitando così la necessità di esplorare esaustivamente il disco. Un secondo file di database, \file{aliases}, permette di dare nomi aggiuntivi ai file elencati in \file{ls-R}. \subsubsection{Il database di nomi} \label{sec:ls-R} Come spiegato in precedenza, il nome del database principale di nomi di file deve essere \file{ls-R}. Potete metterne uno alla radice di ogni ramo \TeX{} della vostra installazione nel quale volete che si effettuino le ricerche (\code{\$TEXMF} di base). \KPS{} cerca i file \file{ls-R} nel percorso \code{TEXMFDBS}. Il metodo raccomandato per creare e mantenere \samp{ls-R} è quello di eseguire lo script \code{mktexlsr} incluso nella distribuzione. Esso è invocato dai vari script \samp{mktex}\dots. In teoria, questo script esegue semplicemente il comando \begin{alltt} cd \var{/la/vostra/radice/texmf} && \path|\|ls -1LAR ./ >ls-R \end{alltt} assumendo che il comando \code{ls} del vostro sistema produca il giusto formato di output (\code{ls} del progetto \GNU lo fa). Per garantire che l'archivio sia sempre aggiornato, la cosa più semplice è rigenerarlo regolarmente tramite \code{cron}, così che sia automaticamente ricostruito quando i file installati cambiano, ad esempio dopo aver installato o aggiornato un pacchetto \LaTeX. Se un file non è trovato nel database, per default \KPS{} va avanti e cerca sul disco. Se un particolare elemento di percorso comincia con \samp{!!}, però, la ricerca per quell'elemento sarà effettuata \emph{solo} nel database, mai sul disco. \subsubsection{kpsewhich: ricerca indipendente di percorsi} \label{sec:invoking-kpsewhich} Il programma \texttt{kpsewhich} compie la ricerca di percorsi indipendentemente da qualunque particolare applicazione. Esso può essere utile come una sorta di programma \code{find} per individuare i file nelle gerarchie \TeX{} (è ampiamente usato negli script \samp{mktex}\dots\ distribuiti). \begin{alltt} > \Ucom{kpsewhich \var{opzioni}\dots{} \var{nomefile}\dots{}} \end{alltt} Le opzioni specificate in \ttvar{opzioni} cominciano con \samp{-} oppure con \samp{-{}-} ed è accettata qualunque abbreviazione non ambigua. \KPS{} cerca ogni argomento sulla riga di comando che non sia un'opzione come se fosse il nome di un file e restituisce il primo trovato. Non ci sono opzioni per restituire tutti i file con un particolare nome (per fare questo, potete eseguire il programma Unix \samp{find}). Le opzioni più comuni sono descritte in seguito. \begin{ttdescription} \item[\texttt{-{}-dpi=\var{num}}]\mbox{} Imposta la risoluzione a \ttvar{num}; questa opzione ha effetto solo nelle ricerche dei file \samp{gf} e \samp{pk}. \samp{-D} è un sinonimo, per compatibilità con \cmdname{dvips}. Il valore preimpostato è 600. \item[\texttt{-{}-format=\var{nome}}]\mbox{}\\ Imposta il formato da cercare a \ttvar{nome}. Di base, il formato è ipotizzato a partire dal nome del file. Per i formati che non hanno associato un suffisso non ambiguo, come i file di supporto di \MP{} e i file di configurazione di \cmdname{dvips}, dovete specificare il nome così come è conosciuto da \KPS{}, come \texttt{tex} o \texttt{enc files}. Eseguite \texttt{kpsewhich -{}-help-formats} per un elenco. \item[\texttt{-{}-mode=\var{stringa}}]\mbox{}\\ Imposta il nome della modalità a \ttvar{stringa}; questa opzione ha effetto solo sulle ricerche dei file \samp{gf} e \samp{pk}. Non esiste un valore preimpostato: sarà trovata qualunque tipo di modalità. \item[\texttt{-{}-must-exist}]\mbox{}\\ Fa tutto ciò che è possibile per trovare il file, inclusa nello specifico la ricerca sul disco. Di base, per questioni di efficienza, è controllato solo l'archivio \file{ls-R}. \item[\texttt{-{}-path=\var{stringa}}]\mbox{}\\ Cerca nel percorso di ricerca \ttvar{stringa} (separata da due punti, come al solito), invece di ricavarlo dal nome del file. \samp{//} e tutte le solite espansioni sono supportate. Le opzioni \samp{-{}-path} e \samp{-{}-format} si escludono a vicenda. \item[\texttt{-{}-progname=\var{nome}}]\mbox{}\\ Imposta il nome del programma a \texttt{\var{nome}}. Questa opzione può modificare i percorsi di ricerca per mezzo della funzionalità \texttt{.\var{nomeprogramma}}. Il valore predefinito è \cmdname{kpsewhich}. \item[\texttt{-{}-show-path=\var{nome}}]\mbox{}\\ Mostra il percorso usato per la ricerca dei file il cui tipo sia \texttt{\var{nome}}. Può essere usata sia un'estensione (\code{.pk}, \code{.vf}, ecc.) che un nome, proprio come per l'opzione \samp{-{}-format}. \item[\texttt{-{}-debug=\var{num}}]\mbox{}\\ Imposta le opzioni per la ricerca degli errori a \texttt{\var{num}}. \end{ttdescription} \subsubsection{Esempi d'uso} \label{sec:examples-of-use} Diamo uno sguardo a \KPS{} in azione. Ecco una ricerca semplice: \begin{alltt} > \Ucom{kpsewhich article.cls} /usr/local/texmf-dist/tex/latex/base/article.cls \end{alltt} Stiamo cercando il file \file{article.cls}. Dato che il suffisso \samp{.cls} non è ambiguo, non abbiamo bisogno di specificare che vogliamo cercare un file di tipo \optname{tex} (directory dei file sorgente \TeX). Lo troviamo nella sotto directory \file{tex/latex/base} sotto la directory di \TL\ \samp{texmf-dist}. In modo simile, tutti i file seguenti sono trovati senza problemi grazie alla non ambiguità dei loro suffissi. \begin{alltt} > \Ucom{kpsewhich array.sty} /usr/local/texmf-dist/tex/latex/tools/array.sty > \Ucom{kpsewhich latin1.def} /usr/local/texmf-dist/tex/latex/base/latin1.def > \Ucom{kpsewhich size10.clo} /usr/local/texmf-dist/tex/latex/base/size10.clo > \Ucom{kpsewhich small2e.tex} /usr/local/texmf-dist/tex/latex/base/small2e.tex > \Ucom{kpsewhich tugboat.bib} /usr/local/texmf-dist/bibtex/bib/beebe/tugboat.bib \end{alltt} A proposito, quest'ultimo è un database bibliografico in formato \BibTeX{} per gli articoli di \textsl{TUGboat}. \begin{alltt} > \Ucom{kpsewhich cmr10.pk} \end{alltt} I file di glifi dei font bitmat di tipo \file{.pk} sono usati dai programmi di visualizzazione come \cmdname{dvips} e \cmdname{xdvi}. Non viene restituito nulla in questo caso dato che in \TL\ non ci sono file \samp{.pk} pregenerati per il carattere tipografico Computer Modern \Dash come predefinite sono usate le varianti Type~1. \begin{alltt} > \Ucom{kpsewhich wsuipa10.pk} \ifSingleColumn /usr/local/texmf-var/fonts/pk/ljfour/public/wsuipa/wsuipa10.600pk \else /usr/local/texmf-var/fonts/pk/ljfour/public/ ... wsuipa/wsuipa10.600pk \fi\end{alltt} Per questi font (un alfabeto fonetico creato dall'Università di Washington) dobbiamo generare i file \samp{.pk} e dato che la modalità predefinita di \MF{} nella nostra installazione è \texttt{ljfour} con una risoluzione di base di 600\dpi{} (dots per inch, punti per pollice), viene restituito questo valore. \begin{alltt} > \Ucom{kpsewhich -dpi=300 wsuipa10.pk} \end{alltt} In questo caso, quando specifichiamo di essere interessati ad una risoluzione di 300\dpi{} (\texttt{-dpi=300}) osserviamo che questo font non è disponibile nel sistema. Un programma come \cmdname{dvips} o \cmdname{xdvi} andrebbe avanti e genererebbe i file \texttt{.pk} richiesti usando lo script \cmdname{mktexpk}. Adesso spostiamo la nostra attenzione sui file di intestazione e di configurazione di \cmdname{dvips}. Cercheremo innanzitutto un file tra quelli usati comunemente, il prologo generale \file{tex.pro} per il supporto a \TeX, prima di spostare l'attenzione sul generico file di configurazione (\file{config.ps}) e la mappa dei font \PS{} \file{psfonts.map} \Dash\ a partire dal 2004, i file di mappatura e di codifica hanno i propri percorsi di ricerca e una nuova posizione negli alberi \dirname{texmf}. Dato che il suffisso \samp{.ps} è ambiguo, dobbiamo specificare esplicitamente quale tipo stiamo considerando (\optname{dvips config}) per il file \texttt{config.ps}. \begin{alltt} > \Ucom{kpsewhich tex.pro} /usr/local/texmf/dvips/base/tex.pro > \Ucom{kpsewhich --format="dvips config" config.ps} /usr/local/texmf/dvips/config/config.ps > \Ucom{kpsewhich psfonts.map} /usr/local/texmf/fonts/map/dvips/updmap/psfonts.map \end{alltt} Diamo ora uno sguardo ravvicinato ai file di supporto per il carattere \PS{} URW Times. Il prefisso per questi file nello schema standard dei nomi dei font è \samp{utm}. Il primo file che cerchiamo è quello di configurazione, che contiene il nome del file di mappatura: \begin{alltt} > \Ucom{kpsewhich --format="dvips config" config.utm} /usr/local/texmf-dist/dvips/psnfss/config.utm \end{alltt} Il contenuto di questo file è \begin{alltt} p +utm.map \end{alltt} che punta al file \file{utm.map}, che sarà il prossimo che cercheremo. \begin{alltt} > \Ucom{kpsewhich utm.map} /usr/local/texmf-dist/fonts/map/dvips/times/utm.map \end{alltt} Questo file di mappatura definisce i nomi dei file dei font \PS{} Type~1 nella collezione URW. Il suo contenuto è simile al seguente (mostriamo solo una parte delle righe): \begin{alltt} utmb8r NimbusRomNo9L-Medi ... \Ucom{kpsewhich utmr8a.pfb} \ifSingleColumn /usr/local/texmf-dist/fonts/type1/urw/times/utmr8a.pfb \else /usr/local/texmf-dist/fonts/type1/ ... urw/utm/utmr8a.pfb \fi\end{alltt} Dovrebbe essere chiaro da questi esempi come potete individuare facilmente dove si trovi un dato file. Tutto ciò è particolarmente importante se sospettate che in qualche modo venga prelevata la versione sbagliata di un file, in quanto \cmdname{kpsewhich} mostrerà il primo file incontrato. \subsubsection{Risoluzione dei problemi} \label{sec:debugging} A volte è necessario investigare sul come un programma determina i riferimenti ad un file. Per rendere pratico ciò, \KPS{} offre vari livelli di messaggi diagnostici: \begin{ttdescription} \item[\texttt{\ 1}] Chiamate a \texttt{stat} (accessi al disco). Quando si compie una ricerca avendo a disposizione un database \file{ls-R} aggiornato, questo livello non dovrebbe mostrare quasi nessun messaggio. \item[\texttt{\ 2}] Riferimenti alle tabelle dei dati (come i database \file{ls-R}, i file di mappatura, quelli di configurazione). \item[\texttt{\ 4}] Operazioni di apertura e chiusura dei file. \item[\texttt{\ 8}] Informazioni generali sui percorsi per i tipi di file cercati da \KPS. Utile per scoprire dove è stato definito un particolare percorso per un file. \item[\texttt{16}] Elenco delle directory per ogni elemento di un percorso (rilevante solo per le ricerche su disco). \item[\texttt{32}] Ricerche di file. \item[\texttt{64}] Valori delle variabili. \end{ttdescription} Il valore \texttt{-1} attiverà tutte le opzioni precedenti; in pratica, questo valore è di solito il più comodo. Analogamente, con il programma \cmdname{dvips}, impostando una combinazione di opzioni di diagnostica, è possibile seguire in dettaglio le posizioni da cui i file sono prelevati. In alternativa, quando un file non viene trovato, la traccia dei messaggi mostra in quali directory il programma ha cercato il file, così che si possa ottenere un'indicazione sull'origine del problema. In termini generali, dato che la maggior parte dei programmi invoca la libreria \KPS{} internamente, è possibile selezionare il livello di diagnostica usando la variabile d'ambiente \envname{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 file. Per scopi di diagnostica potete impostare temporaneamente \texttt{SET KPATHSEA\_DEBUG\_OUTPUT=err.log}). Consideriamo, come esempio, un piccolo file sorgente di \LaTeX, \file{hello-world.tex}, che contiene il seguente testo. \begin{verbatim} \documentclass{article} \begin{document} Ciao Mondo! \end{document} \end{verbatim} Questo piccolo file usa solo il font \file{cmr10}, quindi vediamo come \cmdname{dvips} prepara il file \PS{} (vogliamo usare la versione Type~1 dei font Computer Modern, da qui l'opzione \texttt{-Pcms}). \begin{alltt} > \Ucom{dvips -d4100 hello-world -Pcms -o} \end{alltt} In questo caso abbiamo combinato la classe di diagnostica 4 di \cmdname{dvips} (percorsi dei font) con l'espansione degli elementi di percorso di \KPS{} (vedi il manuale di riferimento di \cmdname{dvips}). Il risultato (leggermente riorganizzato) appare in figura~\ref{fig:dvipsdbga}. \begin{figure*}[tp] \centering \input{examples/ex6a.tex} \caption{Ricerca dei file di configurazione}\label{fig:dvipsdbga} \end{figure*} \cmdname{dvips} inizia individuando i propri file di lavoro. Per primo viene trovato \file{texmf.cnf}, che fornisce le definizioni dei percorsi di ricerca per gli altri file, quindi il database di file \file{ls-R} (per ottimizzare la ricerca) e il file \file{aliases}, che rende possibile dichiarare diversi nomi (ad esempio, una versione breve in formato DOS 8.3 e una più lunga e più naturale) per lo stesso file. Quindi \cmdname{dvips} prosegue nel cercare il file di configurazione generico \file{config.ps} prima di guardare al file per le personalizzazioni \file{.dvipsrc} (che in questo caso \emph{non viene trovato}). Infine, \cmdname{dvips} individua il file di configurazione \file{config.cms} per il font \PS{} Computer Modern (questo passo è stato attivato con l'opzione \texttt{-Pcms} data al comando \cmdname{dvips}). Questo file contiene la lista delle mappature che definiscono la relazione tra il modo di chiamare i font in \TeX{}, in \PS{} e sul disco. \begin{alltt} > \Ucom{more /usr/local/texmf/dvips/cms/config.cms} p +ams.map p +cms.map p +cmbkm.map p +amsbkm.map \end{alltt} \cmdname{dvips}, quindi, procede nel trovare tutti questi file, più il generico file di mappatura \file{psfonts.map}, che è caricato sempre (contiene le dichiarazioni per i font \PS{} usati comunemente; consultate la parte finale della sezione~\ref{sec:examples-of-use} per ulteriori dettagli sulla gestione delle mappature \PS). A questo punto, \cmdname{dvips} si presenta all'utente: \begin{alltt} This is dvips(k) 5.92b Copyright 2002 Radical Eye Software (www.radicaleye.com) \end{alltt} \ifSingleColumn Quindi prosegue nel cercare il file di prologo \file{texc.pro}: \begin{alltt}\small 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 \end{alltt} \else Quindi prosegue nel cercare il file di prologo \file{texc.pro} (vedi la figura~\ref{fig:dvipsdbgb}). \fi Dopo aver trovato il file in questione, \cmdname{dvips} mostra la data e l'ora, ci informa che genererà il file \file{hello-world.ps}, poi che avrà bisogno del file del font \file{cmr10} e che quest'ultimo è dichiarato ``residente'' (non sono necessarie bitmap): \begin{alltt}\small TeX output 1998.02.26:1204' -> hello-world.ps Defining font () cmr10 at 10.0pt Font cmr10 is resident. \end{alltt} Adesso la ricerca prosegue con il file \file{cmr10.tfm}, che viene trovato, quindi viene fatto riferimento ad alcuni ulteriori file di prologo (non mostrati) e, infine, l'istanza Type~1 del font, \file{cmr10.pfb}, è individuata ed inclusa del file in uscita (vedi l'ultima riga). \begin{alltt}\small 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, ... 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 [1] \end{alltt} \subsection{Opzioni di esecuzione} Un'altra funzionalità utile di \Webc{} è la sua possibilità di controllare un certo numero di parametri relativi alla memoria (nello specifico la dimensione degli array) tramite il file \file{texmf.cnf} letto da \KPS{} durante l'esecuzione. Le impostazioni della memoria possono essere trovate nella Parte 3 di quel file nella distribuzione \TL. Le più importanti sono: \begin{ttdescription} \item[\texttt{main\_memory}] La quantità complessiva di memoria disponibile per \TeX, \MF{} e \MP. Dovete creare un nuovo file di formato per ogni impostazione differente. Per esempio, potreste generare una versione ``enorme'' di \TeX{} e chiamare il file di formato \texttt{hugetex.fmt}. Usando il modo normale di indicare il nome del programma usato da \KPS{}, lo specifico valore della variabile \texttt{main\_memory} sarà letto da \file{texmf.cnf}. \item[\texttt{extra\_mem\_bot}] Spazio aggiuntivo per le strutture dati ``grandi'' di \TeX: scatole, colle, interruzioni, ecc. Utile specialmente se usate \PiCTeX. \item[\texttt{font\_mem\_size}] Numero di registri per le informazioni sui font disponibili in \TeX. Questo valore è più o meno pari alla dimensione totale di tutti i file TFM che vengono letti. \item[\texttt{hash\_extra}] Spazio aggiuntivo per la tabella con i nomi delle sequenze di controllo; il suo valore predefinito è \texttt{600000}. \end{ttdescription} \noindent Questa funzionalità non è un sostituto per una vera allocazione dinamica di memoria e array, ma dato che questi sono estremamente difficili da implementare negli attuali sorgenti di \TeX, questi parametri di esecuzione forniscono un pratico compromesso per offrire un minimo di flessibilità. \htmlanchor{texmfdotdir} \subsection{\texttt{\$TEXMFDOTDIR}} \label{sec:texmfdotdir} Nei vari posti qui sopra, abbiamo dato diversi percorsi di ricerca che iniziano per \code{.} (per cercarre prima nella directory corrente), come in \begin{alltt}\small TEXINPUTS=.;$TEXMF/tex// \end{alltt} Questa è una semplificazione. Il file \code{texmf.cnf} che distribuiamo in \TL{} usa \filename{$TEXMFDOTDIR} al posto del semplice \samp{.}, come in: \begin{alltt}\small TEXINPUTS=$TEXMFDOTDIR;$TEXMF/tex// \end{alltt} (nel file distribuito, anche il secondo elemento del percorso è leggermente più complesso di \filename{$TEXMF/tex//}, ma è un dettaglio; qui vogliamo parlare di \filename{$TEXMFDOTDIR}). Il motivo per usare la variabile \filename{$TEXMFDOTDIR} nelle definizioni dei percorsi invece del semplice \samp{.} è soltanto per poterla ridefinire. Ad esempio, un documento commplesso potrebbe avere molti file sorgente organizzati in molte sotto directory. Per gestire questo, potete impostare \filename{TEXMFDOTDIR} a \filename{.//} (ad esempio nell'ambiente in cui compilate il documento) e saranno esplorate tutte (attenzione: non usate \filename{.//} 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 file per essere individuati tramite percorsi espliciti. Potete impostare \filename{$TEXMFDOTDIR} a, per dire, \filename{/nonesuch} o qualunque directory non esistente per questo. Il valore predefinito di \filename{$TEXMFDOTDIR} è semplicemente \samp{.}, come impostato nel nostro \filename{texmf.cnf}. \htmlanchor{ack} \section{Ringraziamenti} \TL{} è il risultato dello sforzo congiunto di praticamente tutti i gruppi utenti \TeX. Questa edizione di \TL{} è stata supervisionata da Karl Berry. Gli altri contributori principali, passati e presenti, sono elencati qui sotto. \begin{itemize*} \item I gruppi utenti \TeX{} 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 \TeX\ più vicino a voi (consultate la pagina \url{https://tug.org/usergroups.html})! \item Il team di CTAN (\url{https://ctan.org}), che distribuisce le immagini di \TL{} e fornisce l'infrastruttura comune per gli aggiornamenti dei pacchetti, dalla quale dipende \TL. \item Nelson Beebe per aver reso disponibili molte piattaforme agli sviluppatori di \TL{}, per i suoi esaustivi collaudi e per gli impareggiabili sforzi bibliografici. \item John Bowman per aver fatto molti cambiamenti al suo programma di grafica avanzata Asymptote affinché funzionasse in \TL. \item Peter Breitenlohner ed il team di \eTeX\ per le stabili fondamenta del \TeX{} 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. \item Jin-Hwan Cho e tutti i membri del team di DVIPDFM$x$ per il loro eccellente driver e la velocità di risposta ai problemi di configurazione. \item Thomas Esser, senza il cui meraviglioso pacchetto \teTeX{} \TL{} non sarebbe mai esistito. \item Michel Goossens, che è stato coautore della documentazione originale. \item Eitan Gurari, il cui \TeX4ht è 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. \item Hans Hagen per la grande quantità di collaudi e per aver permesso al suo pacchetto \ConTeXt{} (\url{https://pragma-ade.com}) di lavorare nell'infrastruttura di \TL\ e per guidare continuamente lo sviluppo di \TeX. \item \Thanh, Martin Schr\"oder e il team di pdf\TeX{} (\url{http://pdftex.prg}) per i continui miglioramenti delle capacità di \TeX. \item Hartmut Henkel per i significativi contributi allo sviluppo di pdf\TeX, Lua\TeX{} e molto ancora. \item Shunshaku Hirata, per i contributi originalissimi e per continuare il lavoro su DVIPDFM$x$. \item Taco Hoekwater per gli importanti forzi nel rinnovato sviluppo di MetaPost e (Lua)\TeX{} (\url{http://luatex.org}) stesso, per aver incorporato \ConTeXt{} in \TL, per aver dato a Kpathsea le funzionalità multi-thread e per molto altro ancora. \item Khaled Hosny, per il considerevole lavoro su \XeTeX, DVIPDFM$x$, e per gli sforzi con i font, arabi ed altri. \item Pawe{\l} Jackowski per l'installatore Windows \cmdname{tlpm} e Tomasz {\L}uczak per \cmdname{tlpmgui}, usati nelle edizioni passate. \item Akira Kakuto per aver fornito gli eseguibili per Windows a partire dalle sue distribuzioni per il \TeX{} giapponese W32TEX e W64TEX (\url{http://w32tex.org}) e per molti altri contributi allo sviluppo. \item Jonathan Kew per aver sviluppato il notevole motore \XeTeX{} e per aver investito tempo e fatica per integrarlo in \TL, così come per la versione iniziale dell'installatore di Mac\TeX{} e per l'editor \TeX{}works, che raccomandiamo. \item Hironori Kitagawa, per la manutenzione di (e)p\TeX\ e il relativo supporto. \item Dick Koch per mantenere Mac\TeX\ (\url{https://tug.org/mactex}) a distanza molto ravvicinata da \TL{} e per il suo gran buon umore nel farlo. \item Reinhard Kotucha per i suoi considerevoli contributi all'infrastruttura e all'installatore di \TL{} 2008, così come per gli sforzi di ricerca sotto Windows, lo script \texttt{getnonfreefonts} e molto altro. \item Siep Kroonenberg, anche lui per importanti contributi all'infrastruttura e all'installatore di \TL{} 2008, specialmente sotto Windows, e il grosso del lavoro di aggiornamento di questo manuale per descrivere queste funzionalità. \item Clerk Ma, per la correzione dei bug e le estensioni nel motore. \item Mojca Miklavec, per il grande aiuto con \ConTeXt, per aver fornito gli eseguibili per molte piattaforme e per tanto altro ancora. \item Heiko Oberdiek per il pacchetto \pkgname{epstopdf} e molti altri, per aver compresso gli enormi file di dati di \pkgname{pst-geo} così che potessimo includerli e, soprattutto, per il suo notevole lavoro su \pkgname{hyperref}. \item Phelype Oleinik, per l'\cs{input} confinato nel gruppo tra i motori nel 2020, e molto altro. \item Petr Ok\v{s}ak che ha coordinato e controllato con grande attenzione tutto il materiale in ceco e in slovacco. \item Toshio Oshima per il suo visualizzatore per Windows \cmdname{dviout}. \item Manuel Pégourié-Gonnard per aver aiutato con gli aggiornamenti dei pacchetti, con i miglioramenti alla documentazione e con lo sviluppo di \cmdname{texdoc}. \item Fabrice Popineau per l'originale supporto per Windows in \TL{} e per il lavoro sulla documentazione in francese. \item Norbert Preining, l'architetto principale dell'attuale infrastruttura e installatore di \TL{}, anche per aver coordinato la versione Debian di \TL{} (insieme con Frank Küster) e per l'enorme lavoro svolto lungo il percorso. \item Sebastian Rahtz per aver originariamente creato \TL{} 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. \item Luigi Scarso, per aver continuato lo sviluppo di Metapost, Lua\TeX\ e molto altro ancora. \item Andreas Scherer per \texttt{cwebbit}, l'implementazione di CWEB usata in \TL{}, e per continuare la manutenzione del CWEB originale. \item Takuji Tanaka per la manutenzione di (e)(u)p\TeX\ e il relativo supporto. \item Tomasz Trzeciak per aiuti su vasta scala con Windows. \item Vladimir Volovich per il sostanziale aiuto nel porting e in altre problemi di manutenzione e specialmente per aver reso possibile includere \cmdname{xindy}. \item Staszek Wawrykiewicz, un collaudatore principale di tutta \TL{} 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. \item Olaf Weber per la sua paziente manutenzione di \Webc\ negli anni passati. \item Gerben Wierda per aver creato e fatto manutenzione all'originale supporto per \MacOSX{}. \item Graham Williams, l'artefice del Catalogo \TeX{} dei pacchetti. \item Joseph Wright, per il tanto lavoro sul rendere le stesse funzionalità primitive disponibili su tutti i motori. \item Hironobu Yamashita, per il tanto lavoro su p\TeX\ e il relativo supporto. \end{itemize*} Preparatori degli eseguibili: Marc Baudoin (\pkgname{amd64-netbsd}, \pkgname{i386-netbsd}), Ken Brown (\pkgname{i386-cygwin}, \pkgname{x86\_64-cygwin}), Simon Dales (\pkgname{armhf-linux}), Johannes Hielscher (\pkgname{aarch64-linux}), Akira Kakuto (\pkgname{win32}), Dick Koch (\pkgname{universal-darwin}), Mojca Miklavec (\pkgname{amd64-freebsd}, \pkgname{i386-freebsd}, \pkgname{x86\_64-darwinlegacy}, \pkgname{i386-solaris}, \pkgname{x86\_64-solaris}, \pkgname{sparc-solaris}), Norbert Preining (\pkgname{i386-linux}, \pkgname{x86\_64-linux} \pkgname{x86\_64-linuxmusl}). Per informazioni sul processo di compilazione di \TL, visitate \url{https://tug.org/texlive/build.html}. Attuali traduttori della documentazione: Takuto Asakura (giapponese), Denis Bitouz\'e \& Patrick Bideault (francese), Carlos Enriquez Figueras (spagnolo), Jjgod Jiang, Jinsong Zhao, Yue Wang \& Helin Gai (cinese), Nikola Le\v{c}ić (serbo), Marco Pallante \& Carla Maggi (italiano), Petr Sojka \& Jan Busa (ceco\slash slovacco), Boris Veytsman (russo), Zofia Walczak (polacco), Uwe Ziegenhagen (tedesco), La pagina web della documentazione di \TL{} è \url{https://tug.org/texlive/doc.html}. Ovviamente il più importante ringraziamento deve andare a Donald Knuth, innanzitutto per aver inventato \TeX{} e poi per averlo donato al mondo. \section{Storia delle edizioni} \label{sec:history} \subsection{Passato} La discussione iniziò nel tardo 1993 quando il gruppo utenti \TeX{} olandese stava iniziando a lavorare al proprio \CD{} 4All\TeX{} 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 4All\TeX{}, ma altresì spinse il gruppo di lavoro del TUG Technical Council verso una \emph{Struttura delle Directory \TeX{}} (\TDS{}, \TeX{} Directory Structure, \url{https://tug.org/tds}), che specificò come creare collezioni coerenti e gestibili di file di supporto a \TeX. Una bozza completa della \TDS{} fu pubblicata nel numero di dicembre 1995 di \textsl{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{} 4All\TeX{} che gli utenti Unix avrebbero beneficiato da un simile semplice sistema e questo è l'altro filone principale di \TL. Per prima cosa ci mettemmo all'opera per realizzare un nuovo \CD{} della \TDS{} basato su Unix nell'autunno del 1995 e rapidamente identificammo il \teTeX{} di Thomas Esser come l'impianto ideale, dato che già aveva il supporto per più piattaforme ed era costruito con la portabilità tra diversi file system in mente. Thomas acconsentì ad aiutarci e il lavoro cominciò seriamente all'inizio del 1996. La prima edizione fu rilasciata nel maggio 1996. All'inizio del 1996, Karl Berry completò una nuova versione di Web2c, che includeva praticamente tutte le funzionalità che Thomas Esser aveva aggiunto in \teTeX{} e decidemmo di basare la seconda edizione del \CD{} sul \Webc{} standard, con l'inclusione dello script \texttt{texconfig} proveniente da \teTeX. La terza edizione del \CD{} fu basata su una nuova importante revisione di \Webc, la 7.2, realizzata da Olaf Weber; allo stesso tempo, era stata fatta una nuova revisione di \teTeX{} e \TL{} incluse quasi tutte le sue funzionalità. La quarta edizione seguì lo stesso modello, usando una nuova versione di \teTeX{} e di \Webc{} (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 file XML. Ma il cambiamento principale per \TeX\ Live 5 fu che tutto il software non libero fu rimosso. Tutto in \TL{} era pensato per essere compatibile con le Debian Free Software Guidelines (linee guida Debian sul software libero, \url{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 file \texttt{language.dat}. La settima edizione del 2002 ebbe la notevole aggiunta del supporto per \MacOSX{} e la solita miriade di aggiornamenti ad ogni genere di pacchetto e programma. Un traguardo importante fu l'integrazione dei sorgenti con quelli di \teTeX{} per correggere l'allontanamento l'uno dall'altro avvenuto nelle versioni~5 e~6. \subsubsection{2003} Nel 2003, con il continuo flusso di aggiornamenti ed aggiunte, scoprimmo che \TL{} era cresciuta così tanto che non poteva più essere contenuta in un singolo \CD, quindi la dividemmo in tre diverse distribuzioni (consultate la sezione~\ref{sec:tl-coll-dists}, \p.\pageref{sec:tl-coll-dists}). In più: \begin{itemize*} \item Su richiesta del team di \LaTeX, cambiammo i comandi \cmdname{latex} e \cmdname{pdflatex} affinché usassero \eTeX{} (consultate \p.\pageref{text:etex}). \item I nuovi font Latin Modern furono inclusi (e sono raccomandati). \item Il supporto per Alpha OSF fu rimosso (il supporto per HPUX era già stato rimosso in precedenza) dato che nessuno aveva (o voleva offrire) l'hardware su cui compilare i nuovi eseguibili. \item L'allestimento per Windows fu cambiato sostanzialmente; per la prima volta fu introdotto un ambiente integrato basato su XEmacs. \item Importanti programmi aggiuntivi per Windows (Perl, Ghost\-script, Image\-Magic, Ispell) sono ora installati nelle directory \TL{}. \item I file di mappatura per i font usati da \cmdname{dvips}, \cmdname{dvipdfm} e \cmdname{pdftex} sono ora generati da un nuovo programma \cmdname{updmap} ed installati in \dirname{texmf/fonts/map}. \item \TeX, \MF{} e \MP{} adesso, come impostazione predefinita, mostrano la maggior parte dei caratteri in ingresso (dal numero 32 \acro{ASCII} in su) come sé stessi nei file che vengono generati (ad esempio, con \verb|\write|), nei file di registro e sul terminale, ossia \emph{non sono più} tradotti usando la notazione \verb|^^|. In \TL{}~7 questa traduzione dipendeva dalle impostazioni sulla lingua del sistema; adesso, queste impostazioni locali non influenzano più il comportamento dei programmi \TeX. Se per qualche ragione avete bisogno della notazione \verb|^^|, rinominate il file \verb|texmf/web2c/cp8bit.tcx| (le edizioni future avranno un modo più pulito per controllare questa opzione). \item Questa documentazione fu revisionata sostanzialmente. \item Infine, dato che i numeri delle edizioni erano cresciuti in modo poco agevole, da adesso la versione è identificata semplicemente dall'anno: \TL{} 2003. \end{itemize*} \subsubsection{2004} Il 2004 vide molti cambiamenti: \begin{itemize} \item Se avete font installati localmente che usano i propri file di supporto \filename{.map} o (molto meno probabilmente) \filename{.enc}, potreste aver bisogno di spostare questi file. I file \filename{.map} adesso sono cercati soltanto in sotto directory di \dirname{fonts/map} (per ciascuna gerarchia \filename{texmf}, lungo il percorso \envname{TEXFONTMAPS}). In modo simile, i file \filename{.enc} sono cercati soltanto nelle sottodirectory di \dirname{font/enc}, lungo il percorso \envname{ENCFONTS}. \cmdname{updmap} tenterà di avvisarvi su file che possono provocare problemi. Per i metodi per gestire questa ed altre informazioni, visitate la pagina \url{https://tug.org/texlive/mapenc.html}. \item \TK{} è stata espansa con l'aggiunta di un \CD{} installabile basato su \MIKTEX, per coloro che preferiscono quell'implementazione a Web2C. Consultate la sezione~\ref{sec:overview-tl} (\p.\pageref{sec:overview-tl}). \item All'interno di \TL, la singola grande directory \dirname{texmf} delle edizioni precedenti è stata sostituita da: \dirname{texmf}, \dirname{texmf-dist} e \dirname{texmf-doc}. Consultate la sezione~\ref{sec:tld} (\p.\pageref{sec:tld}) e il file \filename{README} contenuto in ciascuna di esse. \item Tutti file in ingresso relativi a \TeX{} sono adesso raccolti nella sotto directory \dirname{tex} delle varie \dirname{texmf*}, piuttosto che avere le diverse posizioni \dirname{tex}, \dirname{etex}, \dirname{pdftex}, \dirname{pdfetex}, ecc. Consultate \CDref{texmf-dist/doc/generic/tds/tds.html\#Extensions} {\texttt{texmf-dist/doc/generic/tds/tds.html\#Extensions}}. \item Gli script di supporto (pensati per non essere invocati dagli utenti) sono adesso posizionati in una nuova sotto directory delle varie \dirname{texmf*} chiamata \dirname{scripts} e possono essere cercati usando \verb|kpsewhich -format=texmfscripts|. Se quindi avete dei programmi che richiamano questi script, dovranno essere corretti. Consultate \CDref{texmf-dist/doc/generic/tds/tds.html\#Scripts} {\texttt{texmf-dist/doc/generic/tds/tds.html\#Scripts}}. \item Quasi tutti i formati lasciano la maggior parte dei caratteri stampabili uguali a se stessi tramite il ``file di traduzione'' \filename{cp227.tcx}, piuttosto che trasformarli nella notazione \verb|^^|. Nello specifico, 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 \TeX{} (solo i caratteri 32--126 sono stampabili), \ConTeXt{} (caratteri 0--255) e i formati legati ad \OMEGA. Questo comportamento predefinito è quasi lo stesso che in \TL\,2003, ma è implementato in maniera più pulita, con maggiori possibilità di personalizzazione. Consultate \CDref{texmf-dist/doc/web2c/web2c.html\#TCX-files} {\texttt{texmf-dist/doc/web2c/web2c.html\#TCX-files}} (ad ogni modo, con l'input in formato Unicode, \TeX{} 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). \item \textsf{pdfetex} è adesso il motore predefinito per tutti i formati tranne (plain) \textsf{tex} stesso (ovviamente genera file DVI quando è eseguito come \textsf{latex}, ecc.). Questo significa, tra le altre cose, che le caratteristiche di microtipografia di \textsf{pdftex} sono disponibili in \LaTeX, \ConTeXt, ecc., così come le funzionalità di \eTeX{} (\OnCD{texmf-dist/doc/etex/base/}). Significa anche che è \emph{più importante che mai} usare il pacchetto \pkgname{ifpdf} (funziona sia con plain \TeX, che con \LaTeX) o del codice equivalente, perché verificare semplicemente se \cs{pdfoutput} o qualche altra primitiva sono definiti non è un modo affidabile per determinare se si sta generando un file PDF. Per quest'anno abbiamo cercato di rendere questo aspetto compatibile con le edizioni passate nel miglior modo possibile, ma a partire dal prossimo anno \cs{pdfoutput} potrebbe essere definito anche se il file generato è un DVI. \item pdf\TeX\ (\url{http://pdftex.org}) ha molte nuove funzionalità: \begin{itemize*} \item \cs{pdfmapfile} e \cs{pdfmapline} forniscono il supporto alle mappature dei font direttamente all'interno di un documento. \item L'espansione microtipografica dei font può essere usata più facilmente.\\ \url{https://www.ntg.nl/pipermail/ntg-pdftex/2004-May/000504.html} \item Tutti i parametri che prima erano impostati tramite lo speciale file di configurazione \filename{pdftex.cfg} devono essere adesso impostati tramite primitive, tipicamente in \filename{pdftexconfig.tex}; \filename{pdftex.cfg} non è più supportato. Ogni file \filename{.fmt} esistente deve essere rigenerato quando \filename{pdftexconfig.tex} viene modificato. \item Per saperne di più, consultate il manuale di pdf\TeX{}: \OnCD{texmf-dist/doc/pdftex/manual/pdftex-a.pdf}. \end{itemize*} \item La primitiva \cs{input} in \cmdname{tex} (e in \cmdname{mf} e \cmdname{mpost}) adesso accetta nomi con spazi ed altri caratteri speciali racchiusi tra doppi apici. Esempi tipici: \begin{verbatim} \input "file con spazi" % plain \input{"file con spazi"} % latex \end{verbatim} Consultate il manuale di Web2C per saperne di più: \OnCD{texmf-dist/doc/web2c}. \item Il supporto per enc\TeX{} è ora incluso in Web2C e, di conseguenza, in tutti i programmi \TeX, per mezzo dell'opzione \optname{-enc} \Dash\ \emph{solo quando i formati sono stati generati}. enc\TeX{} supporta la ricodifica generale dell'input e dell'output, permettendo il supporto completo per l'Unicode (in UTF-8). Consultate \OnCD{texmf-dist/doc/generic/enctex/} e \url{http://olsak.net/enctex.html}. \item Aleph, un nuovo motore che combina \eTeX\ ed \OMEGA, è disponibile. Alcune informazioni sono disponibili in \OnCD{texmf-dist/doc/aleph/base} e su \url{https://texfaq.org/FAQ-enginedev}. Il formato basato su \LaTeX{} per Aleph è chiamato \textsf{lamed}. \item L'ultimo aggiornamento di \LaTeX\ ha una nuova versione della LPPL \Dash\ ora una licenza ufficialmente approvata da Debian. Per altri svariati aggiornamenti, consultate i file \filename{ltnews} in \OnCD{texmf-dist/doc/latex/base}. \item \cmdname{dvipng}, un nuovo programma per convertire i DVI in immagini PNG, è incluso. Consultate \url{https://ctan.org/pkg/dvipng}. \item Abbiamo ridotto il pacchetto \pkgname{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 profilati e i trasparenti, che sono usati abbastanza raramente, mentre noi avevamo bisogno di spazio. L'insieme completo è ovviamente disponibile su CTAN (\url{https://ctan.org/pkg/cbgreek-complete}). \item \cmdname{oxdvi} è stato rimosso; usate semplicemente \cmdname{xdvi}. \item I comandi (collegamenti) \cmdname{ini} e \cmdname{vir} per \cmdname{tex}, \cmdname{mf} e \cmdname{mpost} non sono più creati, così come \cmdname{initex}. Le funzionalità di \cmdname{ini} sono disponibili oramai da anni tramite l'opzione su riga di comando \optname{-ini}. \item Il supporto per la piattaforma \textsf{i386-openbsd} è stato rimosso. Dato che è disponibile il pacchetto \pkgname{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à. \item Su \textsf{sparc-solaris} (almeno), potreste dover impostare la variabile d'ambiente \envname{LD\_LIBRARY\_PATH} per eseguire i programmi delle \pkgname{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 \textsf{mips-irix}, sono richieste le librerie di runtime del MIPSpro 7.4. \end{itemize} \subsubsection{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: \begin{itemize} \item Sono stati introdotti i nuovi script \cmdname{texconfig-sys}, \cmdname{updmap-sys} e \cmdname{fmtutil-sys} che modificano la configurazione nei percorsi di sistema. Gli script \cmdname{texconfig}, \cmdname{updmap} e \cmdname{fmtutil} ora modificano i file specifici per i singoli utenti, sotto \dirname{$HOME/.texlive2005}. \item Sono state introdotte le corrispondenti nuove variabili \envname{TEXMFCONFIG} e \envname{TEXMFSYSCONFIG} per specificare i percorsi dove trovare i file di configurazione (per il singolo utente e per l'intero sistema, rispettivamente). Quindi, potreste dover spostare le versioni personali di \filename{fmtutil.cnf} e \filename{updmap.cfg} in questi percorsi; un'altra possibilità è quella di ridefinire \envname{TEXMFCONFIG} o \envname{TEXMFSYSCONFIG} in \filename{texmf.cnf}. In ogni caso la posizione reale di questi file e i valori di \envname{TEXMFCONFIG} e \envname{TEXMFSYSCONFIG} devono concordare. Consultate la sezione~\ref{sec:texmftrees}, \p.\pageref{sec:texmftrees}. \item L'anno scorso abbiamo tenuto \verb|\pdfoutput| ed altre primitive non definite per l'output in \dvi, anche quando veniva usato il programma \cmdname{pdfetex}. Quest'anno, come promesso, abbiamo annullato quella misura di compatibilità. Per cui, se il vostro documento usa \verb|\ifx\pdfoutput\undefined| per verificare se viene generato un PDF, dovrà essere cambiato. Potete usare il pacchetto \pkgname{ifpdf.sty} (che funziona sia sotto plain \TeX{} che sotto \LaTeX) per fare ciò, oppure rubarne la logica. \item 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 file TCX \filename{empty.tcx} adesso offre un modo più semplice per ottenere l'originaria notazione \verb|^^| se la desiderate, come in: \begin{verbatim} latex --translate-file=empty.tcx vostrofile.tex \end{verbatim} \item È incluso il nuovo programma \cmdname{dvipdfmx} per la trasformazione dei DVI in PDF; si tratta di un aggiornamento attivamente mantenuto di \cmdname{dvipdfm} (che per ora è ancora disponibile, anche se non più raccomandato). \item Sono inclusi i nuovi programmi \cmdname{pdfopen} e \cmdname{pdfclose} per consentire di ricaricare i file PDF nel lettore Adobe Acrobat Reader senza riavviare il programma (altri lettori PDF, in particolare \cmdname{xpdf}, \cmdname{gv} e \cmdname{gsview}, non hanno mai sofferto di questo problema). \item Per coerenza, le variabili \envname{HOMETEXMF} e \envname{VARTEXMF} sono state rinominate \envname{TEXMFHOME} e \envname{TEXMFVAR}, rispettivamente. C'è anche \envname{TEXMFVAR}, che è, di default, specifica per ogni utente. Consultate il primo punto dell'elenco. \end{itemize} \subsubsection{2006--2007} Nell'edizione 2006--2007, la nuova aggiunta più rilevante a \TL{} è stato il programma \XeTeX, disponibile con i comandi \texttt{xetex} e \texttt{xelatex}; visitate il sito \url{https://scripts.sil.org/xetex}. Anche MetaPost ha ricevuto un aggiornamento degno di nota, mentre altri ne sono stati pianificati per il futuro (\url{https://tug.org/metapost/articles}), così come per pdf\TeX{} (\url{https://tug.org/applications/pdftex}). I \filename{.fmt} di \TeX{} (formati ad alta velocità) e i file simili per MetaPost e \MF{} adesso sono posizionati in sotto directory di \dirname{texmf/web2c}, invece che nella directory stessa (sebbene la directory sia ancora visitata durante la ricerca, a beneficio dei \filename{.fmt} esisitenti). Le sotto directory sono chiamate in base al ``motore'' usato, come \filename{tex} o \filename{pdftex} o \filename{xetex}. Questo cambiamento dovrebbe essere invisibile nell'uso normale. Il programma (plain) \texttt{tex} non legge più le prime linee identificate da \texttt{\%\&} per determinare quale formato adoperare; è il puro \TeX{} Knuthiano (\LaTeX{} e tutto il resto leggono ancora le linee \texttt{\%\&}). Ovviamente anche quest'anno ha visto (i soliti) centinaia di altri aggiornamenti ai pacchetti ed ai programmi. Come sempre, visitate CTAN (\url{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 finale, ci aspettiamo che questo fornisca un fondamento stabile per lo sviluppo negli anni a venire. Infine, nel maggio 2006 Thomas Esser ha annunciato che non avrebbe più aggiornato te\TeX{} (\url{https://tug.org/tetex}). Come risultato, c'è stata un'impennata nell'interesse verso \TL, specialmente tra i distributori di \GNU/Linux (c'è un nuovo schema di installazione in \TL{} chiamato \texttt{tetex}, che fornisce un equivalente approssimativo). Speriamo che alla fine questo si traduca in miglioramenti all'ambiente \TeX{} per tutti. \subsubsection{2008} Nell'edizione del 2008, l'intera infrastruttura di \TL{} è stata riprogettata e reimplementata. Le informazioni complete su un'installazione sono adesso memorizzate in un file di testo puro \filename{tlpkg/texlive.tlpdb}. Tra le altre cose, ciò rende finalmente possibile aggiornare un'installazione \TL{} tramite Internet dopo l'installazione iniziale, una caratteristica che Mik\TeX{} ha offerto per anni. Prevediamo di aggiornare regolarmente i nuovi pacchetti così come diventano disponibili su \CTAN. Il nuovo motore Lua\TeX{} (\url{http://luatex.org}) è ora incluso; accanto ad un nuovo livello di flessibilità nella composizione tipografica, questo fornisce un eccellente linguaggio di scripting da usare sia dentro che fuori i documenti \TeX. Il supporto tra 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 \TL. Il nuovo script \cmdname{tlmgr} (sezione~\ref{sec:tlmgr}) è l'interfaccia generale per amministrare \TL{} dopo l'installazione iniziale. Esso gestice l'aggiornamento dei pacchetti e la conseguente rigenerazione dei formati, dei file di mappatura e dei file delle lingue, incluse opzionalmente le aggiunte locali. Con l'avvento di \cmdname{tlmgr}, è ora disabilitata l'azione di modifica dei file di configurazione dei formati e delle sillabazioni operata da \cmdname{texconfig}. Il programma per la creazione degli indici \cmdname{xindy} (\url{http://xindy.sourceforge.net/}) è ora incluso nella maggior parte delle piattaforme. Lo strumento \cmdname{kpsewhich} può ora riportare tutte le corrispondenze per un dato file (opzione \optname{--all}) e limitarle ad una data sotto directory (opzione \optname{--subdir}). Il programma \cmdname{dvipdfmx} adesso include la funzionalità di estrarre le informazioni sulla bounding box attraverso il comando \cmdname{extractbb}; si tratta di una delle ultime funzionalità che erano fornite da \cmdname{dvipdfm} ma non ancora incluse in \cmdname{dvipdfmx}. Gli alias dei font \filename{Times-Roman}, \filename{Helvetica} e così via sono stati rimossi. Diversi pacchetti si aspettavano che funzionassero in modo diverso (in particolare, che avessero codifiche differenti) e non c'era un buon modo per risolvere questo problema. Il formato \pkgname{platex} è stato rimosso per risolvere un conflitto di nome con un completamente diverso \pkgname{platex} giapponese; il pacchetto \pkgname{polski} contiene ora il principale supporto per la lingua polacca. Internamente, i file con le riserve di stringhe di \web{} sono compilati dentro gli eseguibili, per semplificare gli aggiornamenti. Infine, in questa edizione sono stati inclusi i cambiamenti fatti da Donald Knuth nella sua ``messa a punto di \TeX\ del 2008''. Consultate \url{https://tug.org/TUGboat/Articles/tb29-2/tb92knut.pdf}. \subsubsection{2009} Nell'edizione 2009, il formato di output predefinito di Lua\AllTeX\ è ora il PDF per avvalersi del supporto OpenType di Lua\TeX, ecc. I nuovi eseguibili chiamati \code{dviluatex} e \code{dvilualatex} eseguono Lua\TeX{} con l'output in DVI. La pagina web di Lua\TeX{} è \url{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 \TypeI, compreso il Computer Modern: sono stati integrati alcuni cambiamenti nelle forme fatti da Knuth nei sorgenti Metafont nel corso degli anni e l'\emph{hinting} è stato aggiornato. I font Euler sono stati ridisegnati meticolosamente da Hermann Zapf (visitate \url{https://tug.org/TUGboat/Articles/tb29-2/tb92hagen-euler.pdf}). In ogni caso, le metriche non hanno subito modifiche. La pagina dei font AMS è \url{https://ams.org/tex/amsfonts.html}. Il nuovo editor \GUI{} \TeX{}works è incluso per Windows così come in Mac\TeX. Per le altre piattaforme e per ulteriori informazioni, consultate il sito di \TeX{}works, \url{https://tug.org/texworks}. Si tratta di un programma multi piattaforma ispirato all'editor TeXShop per \MacOSX\ e che ha come obiettivo la facilità d'uso. Il programma per la grafica Asymptote è stato incluso per diverse piattaforme. Esso implementa un linguaggio descrittivo per la grafica basato su testo vagamente simile a MetaPost, ma con un supporto avanzato al 3D ed altre caratteristiche. Il suo sito web è \url{https://asymptote.sourceforge.io}. Il programma \code{dvipdfm} è stato sostituito da \code{dvipdfmx}, che opera in una speciale modalità di compatibilità quando viene invocato con il primo nome. \code{dvipdfmx} include il supporto per CJK (Chinese-Japanese-Korean, Cinese-Giapponese-Coreano) ed ha accumulato molte correzioni negli anni trascorsi dall'ultima versione di \code{dvipdfm}. Gli eseguibili per le piattaforme \pkgname{cygwin} e \pkgname{i386-netbsd} sono ora inclusi, mentre siamo stati avvisati che gli utenti di OpenBSD ottengono \TeX\ tramite il loro sistema di pacchetti, e in più c'erano difficoltà nel produrre eseguibili che avessero una qualche possibilità di funzionare su più di una versione. Una varietà di cambiamenti minori: adesso usiamo la compressione \pkgname{xz}, il rimpiazzo stabile per \pkgname{lzma} (\url{https://tukaani.org/xz/}); il carattere |$| è ammesso nei nomi dei file quando non introduce il nome di variabile noto; la libreria Kpathsea è ora multi-thread (lo sfrutta MetaPost); l'intera compilazione di \TL{} è ora basata su Automake.%stopzone Nota finale sul passato: tutte le edizioni di \TL{}, assieme al materiale ausiliario come le etichette dei \CD, sono disponibili all'indirizzo \url{ftp://tug.org/historic/systems/texlive}. \subsubsection{2010} \label{sec:2010news} % keep with 2010 Nell'edizione 2010, la versione predefinita per l'output PDF è ora la 1.5, che consente una maggiore compressione. Questo si applica a tutti i motori \TeX\ quando vengono usati per produrre PDF e a \code{dvipdfmx}. Caricando il pacchetto \LaTeX\ \pkgname{pdf14} o impostando |\pdfminorversion=4|, si si ritorna al PDF~1.4. pdf\AllTeX\ ora converte \emph{automaticamente} un dato file di tipo Encapsulated Postscript (EPS) in PDF tramite il pacchetto \pkgname{epstopdf} quando e se viene caricato il file di configurazione per \LaTeX\ \code{graphics.cfg} e viene richiesto l'output in PDF. Le opzioni predefinite sono tali da eliminare ogni possibilità che siano sovrascritti i file PDF creati a mano, ma potete del tutto evitare che \code{epstopdf} sia caricato mettendo |\newcommand{\DoNotLoadEpstopdf}{}| (o |\def...|) prima della dichiarazione \cs{documentclass}. Non viene caricato neppure se viene usato il pacchetto \pkgname{pst-pdf}. Per maggiori dettagli, consultate la documentazione del pacchetto \pkgname{epstopdf} (\url{https://ctan.org/pkg/epstopdf-pkg}). Un cambiamento correlato è che adesso è abilitata per default l'esecuzione di alcuni comandi esterni a \TeX, tramite la funzionalità \cs{write18}. Questi comandi sono \code{repstopdf}, \code{makeindex}, \code{kpsewhich}, \code{bibtex} e \code{bibtex8}; la lista è definita in \code{texmf.cnf}. Gli ambienti che devono disabilitare tutti questi comandi esterni possono deselezionare questa opzione nell'installatore (consultate la sezione~\ref{sec:options}), 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 rifiutano di scrivere il proprio output in una directory arbitraria (come lo stesso \TeX) per default. In questo modo diventa ora possibile consentirne l'uso tramite la funzionalità ristretta \cs{write18}. Per cambiare questo, può essere impostata la variabile d'ambiente \envname{TEXMFOUTPUT} oppure può essere modificata l'opzione |openout_any|. \XeTeX\ ora supporta la crenatura al margine lungo le stesse righe come pdf\TeX\ (l'espansione dei caratteri non è supportata al momento). Per default, \prog{tlmgr} ora salva un backup di ciascun pacchetto aggiornato (\code{tlmgr option autobackup 1}), così che gli aggiornamenti con pacchetti danneggiati possano essere facilmente ripristinati con \code{tlmgr restore}. Se eseguite aggiornamenti successivi all'installazione e non avete spazio sul disco per i backup, eseguite \code{tlmgr option autobackup 0}. Nuovi programmi inclusi: il motore p\TeX\ e le utilità correlate per la composizione in giapponese; il programma \BibTeX{}U per un \BibTeX\ compatibile con Unicode; l'utilità \prog{chktex} (originariamente da \url{http://baruch.ev-en.org/proj/chktex}) per controllare i documenti \AllTeX; il traduttore da DVI a SVG \prog{dvisvgm} (\url{https://dvisvgm.de}). Ora sono inclusi gli eseguibili per queste nuove piattaforme: \code{amd64-freebsd}, \code{amd64-kfreebsd}, \code{i386-freebsd}, \code{i386-kfreebsd}, \code{x86\_64-darwin}, \code{x86\_64-solaris}. Un cambiamento in \TL{} 2009 che ci siamo dimenticati di evidenziare: numerosi eseguibili legati a \TeX4ht (\url{https://tug.org/tex4ht}) sono stati rimossi dalle directory degli eseguibili. Il programma generico \code{mk4ht} può essere usato per eseguire una qualunque tra le varie combinazioni di \code{tex4ht}. Infine, la versione di \TL{} sul \DVD\ \TK\ non può più essere eseguita ``live'' (curiosamente). Un singolo \DVD\ non ha più abbastanza spazio. Un effetto collaterale positivo è che l'installazione da un \DVD\ fisico è ora molto più rapida. \subsubsection{2011} Gli eseguibili per \MacOSX\ (\code{universal-darwin} e \code{x86\_64-darwin} ora funzionano solo su Leopard e succesivi; Panther e Tiger non sono più supportati. Il programma \code{biber} per l'elaborazione delle bibliografie è incluso per le piattaforme comuni. Il suo sviluppo è strettamente accoppiato con il pacchetto \code{biblatex}, che reimplementa completamente l'infrastruttura bibliografica fornita da LaTeX. Il programma MetaPost (\code{mpost}) non crea né usa più i file \code{.mem}. I file necessari, come \code{plain.mp}, sono semplicemente letti ad ogni esecuzione. Questo è correlato al supporto di MetaPost come libreria, che è un'altra modifica significativa, sebbene non visibile dall'utente. L'implementazione di \code{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 \cmdname{initex} e \cmdname{inimf} sono stati ripristinati (ma non le altre varianti \cmdname{ini*}). \subsubsection{2012} \code{tlmgr} supporta gli aggiornamenti da archivi di rete multipli. La sezione sugli archivi multipli nel messaggio di output di \code{tlmgr help} ha ulteriori informazioni. Il parametro \cs{XeTeXdashbreakstate} ha il valore predefinito di~1 sia per \code{xetex} che per \code{xelatex}. Questo permette l'interruzione delle linee dopo i trattini lunghi e medi, che è stato sempre il comportamento di \TeX, \LaTeX, Lua\TeX, ecc. I documenti \XeTeX\ esistenti che devono mantenere la perfetta compatibilità con le interruzioni di linee, devono impostare \cs{XeTeXdashbreakstate} a~0 esplicitamente. I file di output generati, tra gli altri, da \code{pdftex} e \code{dvips} possono ora superare i 2 gigabyte. I 35 font standard di PostScript sono ora inclusi nell'output di \code{dvips} per default, dato che ne esistono così tante versioni differenti. Nella modalità di esecuzione \cs{write18} ristretta, che è impostata per default, \code{mpost} è diventato un programma consentito. Un file \code{texmf.cnf} viene trovato anche in \filename{../texmf-local}, se esiste (ad esempio, \filename{/usr/local/texlive/texmf-local/web2c/texmf.cnf}). Lo script \code{updmap} legge un file \code{updmap.cfg} in ciascuna directory invece di una configurazione globale. Questo cambiamento dovrebbe essere trasparente per l'utente, a meno che non abbiate modificato il vostro updmap.cfg direttamente. Il messaggio mostrato da \verb|updmap --help| dà ulteriori informazioni. Piattaforme: aggiunte \pkgname{armel-linux} e \pkgname{mipsel-linux}; \pkgname{sparc-linux} e \pkgname{i386-netbsd} non fanno più parte della distribuzione principale. \subsubsection{2013} Struttura della distribuzione: per semplicità, la directory \code{texmf/} è stata fusa all'interno di \code{texmf-dist}. Entrambe le variabili di Kpathsea \code{TEXMFMAIN} e \code{TEXMFDIST} adesso puntano a \code{texmf-dist}. Molte piccole collezioni di lingue sono state fuse insieme, per semplificare l'instllazione. \MP: sono stati aggiunti il supporto nativo per l'output in PNG e per i numeri in virgola mobile (\em{double} secondo lo standard IEEE 754). Lua\TeX: aggiornato a Lua 5.2 e include una nuova libreria (\code{pdfscanner}) per processare il contenuto di pagine PDF esterne, tra le altre cose (visitate il suo sito). \XeTeX\ (anche in questo caso, visitate il sito per altri dettagli): \begin{itemize*} \item Ora, per il layout dei font, è usata la libreria HarfBuzz al posto di ICU (ICU è ancora usata per la codifica dell'input, la bidirezionalità e interruzione di riga Unicode opzionale). \item Graphite2 e HarfBuzz sono usate al posto di SilGraphite per il layout di Graphite. \item Sul Mac, Core Text è usato al posto del deprecato ATSUI. \item Preferisce i font TrueType/OpenType ai Type1 quando i nomi sono gli stessi. \item Corregge le occasionali discrepanze tra \XeTeX\ e \code{xdvipdfmx} nella ricerca dei font. \item Supporta i cut-in per i font OpenType Math. \end{itemize*} \cmdname{xdvi}: ora usa FreeType al posto di \code{t1lib} per il rendering. \pkgname{microtype.sty}: un qualche supporto per \XeTeX\ (protrusione) e Lua\TeX\ (protrusione, espansione dei font, tracking), tra i vari miglioramenti. \cmdname{tlmgr}: nuova azione di \emph{affissione} (\code{pinning}) per facilitare la configurazione di repository multipli; la relativa sezione in \verb|tlmgr --help|, visibile online su \url{https://tug.org/texlive/doc/tlmgr.html#MULTIPLE-REPOSITORIES}, ne parla più approfonditamente. Piattaforme: \pkgname{armhf-linux}, \pkgname{mips-irix}, \pkgname{i386-netbsd} e \pkgname{amd64-netbsd} aggiunte o ripristinate; \pkgname{powerpc-aix} rimossa. \subsubsection{2014} Il 2014 ha visto un altro aggiustamento a \TeX\ da parte di Knuth; questo ha riguardato tutti i motori, ma l'unico cambiamento visibile è probabilmente il ripristino della stringa \code{preloaded format} nella linea di intestazione. Dal punto di vista di Knuth, questo ora riflette il formato che \emph{dovrebbe} essere caricato di default, piuttosto che un formato incorporato nell'eseguibile; può essere sostituito in vari modi. pdf\TeX: nuovo parametro per la soppressione dei warning \cs{pdfsuppresswarningpagegroup}; nuove primitive per falsi spazi tra parole per facilitare la ridisposizione del testo PDF: \cs{pdfinterwordspaceon}, \cs{pdfinterwordspaceoff}, \cs{pdffakespace}. Lua\TeX: sono stati fatti notevoli cambiamenti e correzioni al caricamento dei font e alla sillabazione. L'aggiunta più grande è una nuova variante del motore, \code{luajittex} e i suoi fratelli \code{texluajit} e \code{texluajitc}. Questo motore usa un compilatore Lua just-in-time (articolo \textsl{TUGboat} dettagliato su \url{https://tug.org/TUGboat/tb34-1/tb106scarso.pdf}). \code{luajittex} è ancora in fase di sviluppo, non è disponibile su tutte le piattaforme ed è notevolmente meno stabile di \code{luatex}. Né noi né i suoi sviluppatori lo raccomandano eccetto che per lo scopo di sperimentare la compilazione jit del codice Lua. \XeTeX: 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 \XeTeX. \MP: un nuovo sistema di numerazione \code{decimal} è supportato, insieme ad uno che lo accompagna, \code{numberprecision}, ad uso interno; una nuova definizione di \code{drawdot} in \filename{plain.mp}, secondo Knuth; correzioni di bug nell'output in SVG e PNG, tra le altre cose. L'utilità Con\TeX{}t \cmdname{pstopdf} sarà rimossa come comando a sé stante ad un certo punto dopo questa versione, a causa dei conflitti con le utilità del sistema operativo con lo stesso nome. Può essere ancora (e tuttora) invocato con \code{mtxrun --script pstopdf}. \cmdname{psutils} è stato notevolmente revisionato da un nuovo manutentore. Come risultato, molte utilità usate raramente (\code{fix*}, \code{getafm}, \code{psmerge}, \code{showchar}) ora si trovano solo nella directory \dirname{scripts/} invece che essere eseguibili accessibili direttamente (si può tornare indietro, se si rivela problematico). Un nuovo script, \code{psjoin}, è stato aggiunto. La distribuzione Mac\TeX\ di \TeX\ Live (sezione~\ref{sec:macosx}) non include più i pacchetti opzionali solo per Mac dei font Latin Modern e \TeX\ Gyre, dato che è abbastanza semplice per i singoli utenti renderli disponibili al sistema. Anche il programma \cmdname{convert} da ImageMagick è stato rimosso, dato che \TeX4ht (nello specifico \code{tex4ht.env}) ora usa Ghostscript direttamente. La collezione \pkgname{langcjk} per il supporto al cinese, giapponese e coreano è stata suddivisa in collezioni per le singole lingue per avere dimensioni più piccole. Piattaforme: \pkgname{x86\_64-cygwin} aggiunta, \pkgname{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. \subsubsection{2015} \LaTeXe\ ora incorpora, per default, i cambiamenti precedentemente inclusi solo caricando esplicitamente il pacchetto \pkgname{fixltx2e}, che ora non fa nulla. Un nuovo pacchetto \pkgname{latexrelease} ed altri meccanismi permettono di controllare ciò che viene fatto. I documenti inclusi \LaTeX\ News \#22 e ``\LaTeX\ changes'' contengono i dettagli. Incidentalmente, i pacchetti \pkgname{babel} e \pkgname{psnfss}, nonostante siano parti centrali di \LaTeX, sono mantenuti separatamente e non sono toccati da questi cambiamenti (e dovrebbero ancora funzionare). Internamente, \LaTeXe\ ora include una configurazione del motore relativa a Unicode (quali caratteri sono lettere, nome delle primitive, ecc.) che prima era parte di \TeX\ 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. pdf\TeX: supporto per gli Exif nei JPEG e per i JFIF; non emette più un warning se \cs{pdfinclusionerrorlevel} è negativo; sincronizzazione con \prog{xpdf}~3.04. Lua\TeX: nuova libreria \pkgname{newtokenlib} per la scansione dei token; correzione di errori nel generatore di numeri casuali \code{normal} e in altri punti. \XeTeX: corretta la gestione delle immagini; l'eseguibile \prog{xdvipdfmx} viene cercato per primo, come gemello di \prog{xetex}; cambiati gli opcode interni \code{XDV}. MetaPost: nuovo sistema di numerazione \code{binary}; nuovi programmi per il giapponese \prog{upmpost} e \prog{updvitomp}, analogamente a \prog{up*tex}. Mac\TeX:\ aggiornamenti al pacchetto Ghostscript per il supporto a CJK. Il Pannello delle Preferenze della Distribuzione \TeX\ ora funziona in Yosemite (\MacOSX~10.10). I resource fork dei font (di solito senza un'estensione) non sono più supportati da \XeTeX; i data fork (\code{.dfont}) restano supportati. Infrastruttura: lo script \prog{fmtutil} è stato reimplementato per leggere i \filename{fmtutil.cnf} rispettando le gerarchie delle directory, analogamente a \prog{updmap}. Gli script Web2c \prog{mktex*} (inclusi \prog{mktexlsr}, \prog{mktextfm}, \prog{mktexpk}) ora preferiscono i programmi nelle loro directory, invece di usare sempre il \envname{PATH} esistente. Piattaforme: \pkgname{*-kfreebsd} rimossa, dato che \TeX\ Live è ora facilmente disponibile tramite il meccanismo di piattaforma del sistema. Il supporto per alcune piattaforme aggiuntive è disponibile come eseguibili personalizzati (\url{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. % \subsubsection{2016} Lua\TeX: 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, ``Lua\TeX\ 0.90 backend changes for PDF and more'' (\url{https://tug.org/TUGboat/tb37-1/tb115hagen-pdf.pdf}); per tutti i dettagli, consultate il manuale di Lua\TeX, \OnCD{texmf-dist/doc/luatex/base/luatex.pdf}. Metafont: nuovi programmi fratelli altamente sperimentali MFlua e MFluajit che integrano Lua con \MF, per scopi di test. MetaPost: correzione di bug e preparazioni interne per MetaPost 2.0. pdf\TeX: nuove primitive \cs{pdfinfoomitdate}, \cs{pdftrailerid}, \cs{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. Xe\TeX: nuove primitive \cs{XeTeXhypenatablelength}, \cs{XeTeXgenerateactualtext},\\ \cs{XeTeXinterwordspaceshaping}, \cs{mdfivesum}; limite delle classi di caratteri innalzato a 4096; incremetati i byte di id nel DVI. Altri strumenti: \begin{itemize*} \item \code{gregorio} è un nuovo programma che fa parte del pacchetto \code{gregoriotex} per impaginare le partiture di canto gregoriano; è incluso di default in \code{shell\_escape\_commads}. \item \code{upmendex} è un programma di creazione dell'indice, quasi del tutto compatibile con \code{makeindex}, con il supporto tra le altre cose per l'ordinamento basato sull'Unicode. \item \code{afm2tfm} ora esegue solo aggiustamenti dell'altezza basati sull'accento verso l'alto; una nuova opzione \code{-a} tralascia tutti gli aggiustamenti. \item \code{ps2pk} può gestire i font PK/GF estesi. \end{itemize*} Mac\TeX:\ il pannello \TeX\ Distribution Preference è stato rimosso; le sue funzionalità ora si trovano nella \TeX\ Live Utility; aggiornate le applicazioni grafiche a corredo; il nuovo script \code{cjk-gs-integrate} deve essere eseguito dagli utenti che vogliono incorporare i font CJK in Ghostscript. Infrastruttura: supporto per il file di configurazione di \code{tlmgr} a livello di sistema; verifica delle checksum dei pacchetti; se GPG è disponibile, verifica la firma degli aggiornamenti di rete. Queste verifiche avvengono sia nell'installatore che in \code{tlmgr}. Se GPG non è disponibile, gli aggiornamenti avvengono come di consueto. Piattaforme: rimosse \code{alpha-linux} e \code{mipsel-linux}. \subsubsection{2017} Lua\TeX: più callback, più controllo per la composizione tipografica, più accesso ai dati inteni; libreria \code{ffi} per il caricamento dinamico del codice in alcune piattaforme. pdf\TeX: variabile d'ambiente |SOURCE_DATE_EPOCH_TEX_PRIMITIVES| dell'anno precedente rinominata |FORCE_SOURCE_DATE|, con nessuna modifica alle funzionalità; se la lista di token \cs{pdfpageattr} contiene la stringa \code{/MediaBox}, omette l'output del \code{/MediaBox} predefinito. Xe\TeX: font Unicode/OpenType Math ora basati sulla tabella di supporto MATH di HarfBuzz; correzione di alcuni bug. %CM non so come tradurre "special" in questo contesto, ma non penso sia "speciale" %MP il dizionario https://www.wordreference.com/enit/special ha come % possibile traduzione di "special", "offerta", "offerta speciale"; penso % qui "special" possa avere un significato del genere, ma in italiano % suona un po' male, quindi ho liberamente sostituito "offerta" con % "proposta" Dvips: fa sì che l'ultima proposta di dimensione carta vinca, per coerenza con \code{dvipdfmx} e con le attese dei pacchetti; l'opzione \code{-L0} (impostazione di configurazione \code{L0}) ripristina il comportamento precedente in cui vince la prima proposta di dimensione. ep\TeX, eup\TeX: nuove primitive \cs{pdfuniformdeviate}, \cs{pdfnormaldeviate}, \cs{pdfrandomseed}, \cs{pdfsetrandomseed}, \cs{pdfelapsedtime}, \cs{pdfresettimer}, da pdf\TeX. Mac\TeX:\ a partire da quest'anno, solo le versioni di \MacOSX\ per cui Apple ancora rilascia aggiornamenti di sicurezza saranno supportate in Mac\TeX, sotto il nome di piattaforma |x86_64-darwin|; attualmente ciò significa Yosemite, El~Capitan e Sierra (10.10 e successivi). Gli eseguibili per le versioni precedenti di \MacOSX\ non sono incluse in Mac\TeX, ma sono ancora disponibili in \TeX\ Live (|x86_64-darwinlegacy|, \code{i386-darwin}, \code{powerpc-darwin}). Infrastruttura: la directory \envname{TEXMFLOCAL} viene ora esplorata prima di \envname{TEXMFSYSCONFIG} e \envname{TEXMFSYSVAR} (di default); la speranza è che questo corrisponda meglio alle attese dei file locali che sostituiscono quelli di sistema. Inoltre, \code{tlmgr} ha una nuova modalità \code{shell} per l'uso interattivo e in script e una nuova azione \code{conf auxtrees} per aggiungere e rimovere con facilità ulteriori directory. \code{updmap} e \code{fmtutil}: questi script ora avvisano quando sono chiamati senza specificare esplicitamente la cosiddetta modalità di sistema (\code{updmap-sys}, \code{fmtutil-sys} o l'opzione \code{-sys}), o la modalità utente (\code{updmap-user}, \code{fmtutil-user} o l'opzione \code{-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 \url{https://tug.org/texlive/scripts-sys-user.html} per i dettagli. \code{install-tl}: i percorsi personali come \envname{TEXMFHOME} su Mac sono ora impostati di default agli stessi valori di Mac\TeX\ (|~/Library/...|). Nuova opzione \code{-init-from-profile} per iniziare un'installazione con i valori da un dato profilo; nuovo comando \code{P} per salvare esplicitamente un profilo; nuovi nomi di variabili di profilo (ma i precedenti sono ancora accettati). Sync\TeX: il nome del file temporaneo ora somiglia a \code{foo.synctex(busy)} e non a \code{foo.synctex.gz(busy)} (niente~\code{.gz}). Le applicazioni e i sistemi di compilazione che vogliono rimuovere i file temporanei potrebbero richiedere un adattamento. Altri strumenti: \code{texosquery-jre8} è un nuovo programma multi-piattaforma per recuperare alcune informazioni di ambiente e del sistema operativo da un documento \TeX; 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 Mac\TeX\ qui sopra; nessun altro cambiamento. \subsection{2018} Kpathsea: la ricerca di file nelle directory non di sistema è ora per default insensibile alle maiuscole; per disattivare questo comportamento, impostate il parametro \code{texmf\_casefold\_search} a~\code{0} in \code{texmf.cnf} o nella variabile d'ambiente. Tutti i dettagli nel manuale di Kpathsea (\url{https://tug.org/kpathsea}). ep\TeX, eup\TeX: nuova primitiva \cs{epTeXversion}. Lua\TeX: preparazione per migrare a Lua 5.3 nel 2019: un eseguibile \code{luatex53} è disponibile nella maggior parte delle piattaforme, ma deve essere rinominato in \code{luatex} per funzionare. Altrimenti usate i file di \ConTeXt\ Garden (\url{https://wiki.contextgarden.net}); visitate il sito per maggiori informazioni. MetaPost: correzioni per direzioni di path sbagliate, per output di TFM e di PNG. pdf\TeX: consente i vettori di codifica per i font bitmap; la directory attuale non è usata per generare l'ID del PDF; fix di bug per \cs{pdfprimitive} e correlati. Xe\TeX: supporto per \code{/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. Mac\TeX:\ consultate qui sotto i cambiante sul supporto alle versioni. Oltre a questo, i file installati in \code{/Applications/TeX/} da Mac\TeX\ sono stati riorganizzati per maggiore chiarezza; ora questa directory contiene quattro programmi grafici (BibDesk, LaTeXiT, \TeX\ Live Utility e TeXShop) e ha varie sottodirectory con utility e documentazione aggiuntive. \code{tlmgr}: nuove interfacce grafiche \code{tlshell} (Tcl/Tk) e \code{tlcockpit} (Java); output in JSON; \code{uninstall} è ora un sinonimo di \code{remove}; nuova azione/opzione \code{print-platform-info}. Piattaforme: \begin{itemize*} \item Rimosse: \code{armel-linux}, \code{powerpc-linux}. \item \code{x86\_64-darwin} supporta le versioni 10.10--10.13 (Yosemite, El~Capitan, Sierra e High~Sierra). \item \code{x86\_64-darwinlegacy} supporta le versioni 10.6--10.10 (sebbene \code{x86\_64-darwin} sia preferito per la 10.10). Tutto il supporto per la versione 10.5 (Leopard) è andato via, nel senso che sia \code{powerpc-darwin} che \code{i386-darwin platforms} sono stati rimossi. \item Windows: XP non è più supportato. \end{itemize*} \subsection{2019} Kpathsea: suddivisione dei path ed espansione delle graffe più consistenti; nuova variabile \code{TEXMFDOTDIR} al posto del \code{.}\ esplicito nei path consente di cercare più facilmente in sotto directory aggiuntive (consultate i commenti in \code{texmf.cnf}). ep\TeX, eup\TeX: nuove primitive \cs{readpapersizespecial} e \cs{expanded}. Lua\TeX: 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 file pdf, così eliminando la dipendenza da poppler (e la necessità del C++); l'interfaccia Lua è cambiata di conseguenza. MetaPost: il nome del comando \code{r-mpost} è riconosciuto come un alias per l'invocazione con l'opzione \code{--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. pdf\TeX: nuova primitiva \cs{expanded}; se il nuovo parametro primitivo \cs{pdfomitcharset} è impostato a 1, la stringa \code{/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. Xe\TeX: nuove primitive \cs{expanded}, \cs{creationdate}, \cs{elapsedtime}, \cs{filedump}, \cs{filemoddate}, \cs{filesize}, \cs{resettimer}, \cs{normaldeviate}, \cs{uniformdeviate}, \cs{randomseed}; esteso \cs{Ucharcat} per produrre i caratteri attivi. \code{tlmgr}: supporto per \code{curl} come programma di download; uso di \code{lz4} e gzip prima di \code{xz} per i backup locali, se disponibile; preferisce i binari forniti dal sistema a quelli forniti da \TL\ per i programmi di compressione e download, a meno che la variabile d'ambiente \code{TEXLIVE\_PREFER\_OWN} è impostata. \code{install-tl}: la nuova opzione \code{-gui} (senza argomenti) è predefinita su Windows e Macs e lancia una nuova GUI in Tcl/Tk (vedi le sezioni~\ref{sec:basic} e~\ref{sec:graphical-inst}). Utilità: \begin{itemize*} \item \code{cwebbin} (\url{https://ctan.org/pkg/cwebbin}) è ora l'implementazione di CWEB in \TeX\ Live, con il supporto per più dialetti di lingue e l'inclusione del programma \code{ctwill} per creare mini-indici. \item \code{chkdvifont}: riporta le informazioni sui font dai file \dvi{} e anche da tfm/ofm, vf, gf, pk. \item \code{dvispc}: rende un file DVI indipendente dalla pagina rispetto agli specials. \end{itemize*} Mac\TeX:\ \code{x86\_64-darwin} ora supporta la versione 10.12 e successive (Sierra, High Sierra, Mojave); \code{x86\_86-darwinlegacy} supporta ancora la versione 10.6 e successive. Il controllore ortografico Excalibur non è più incluso in quanto richiede il supporto a 32 bit. Piattaforme: rimossa \code{sparc-solaris}. \subsubsection{2020} Generale: \begin{itemize} \item La primitiva \cs{input} in tutti i motori \TeX, incluso \texttt{tex}, ora accetta anche come argomento un nome di file delimitato da gruppo, come estensione dipendente dal sistema. L'uso con il solito filename delimitato da spazi/token non è cambiato. L'argomento delimitato da gruppo era implementato precedentemente in Lua\TeX; ora è disponibile per tutti i motori. I caratteri ASCII dei doppi apici (\texttt{"}) sono rimossi dal nome del file, ma oltre questo resta invariato dopo la divisione in token. Questo non riguarda attualmente il comando \cs{input} di \LaTeX\ in quanto è una ridefinizione macro della primitiva standard \cs{input}. \item Nuova opzione \texttt{--cnf-lline} per \texttt{kpsewhich}, \texttt{tex}, \texttt{mf} e tutti gli altri motori per supportare impostazioni di configurazione arbitrarie sulla riga di comando. \item 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 (\textsl{\LaTeX\ News \#31}, \url{https://latex-project.org/news}). \end{itemize} ep\TeX, eup\TeX: nuove primitive \cs{Uchar}, \cs{Ucharcat}, \cs{current(x)spacingmode}, \cs{ifincsname}; rivedere \cs{fontchar??} e \cs{iffontchar}. Per il solo eup\TeX: \cs{currentcjktoken}. Lua\TeX: integrazione con la libreria HarfBuzz disponibile come nuovo motore \texttt{luahbtex} (usato per \texttt{lualatex}) e \texttt{luajithbtex}. Nuove primitive: \cs{eTeXgluestretchorder}, \cs{eTeXglueshrinkorder}. pdf\TeX: nuova primitiva \cs{pdfmajorversion}; questa semplicemente cambia il numero di versione del PDF prodotto; non ha effetto su alcun contenuto del PDF. \cs{pdfximage} e simili ora cercano i file di immagine nello stesso modo di \cs{openin}. p\TeX: nuove primitive \cs{ifjfont}, \cs{iftfont}. Anche in ep\TeX, up\TeX, eup\TeX. Xe\TeX: correzioni per \cs{Umathchardef}, \cs{XeTeXinterchartoks}, \cs{pdfsavepos}. Dvips: codifiche in uscita per i font bitmap, per migliori capacità di copia/incolla (\url{https://tug.org/TUGboat/tb40-2/tb125rokicki-type3search.pdf}). Mac\TeX:\ Mac\TeX\ e \texttt{x86\_64-darwin} ora richiedono la 10.13 o successive (High~Sierra, Mojave e Catalina); \texttt{x86\_64-darwinlegacy} supporta la 10.6 e successive. Mac\TeX\ è certificato e i programmi a riga di comando hanno runtime irrobustiti come richiesto ora da Apple per i pacchetti di installazione. BibDesk e \TeX\ Live Utility non fanno parte di Mac\TeX\ perché non sono certificati, ma un file \filename{README} elenca gli indirizzi da dove possono essere ottenuti. \code{tlmgr} e infrastruttura: \begin{itemize*} \item prova di nuovo automaticamente (una sola volta) i pacchetti il cui download è fallito; \item nuova opzione \texttt{tlmgr check texmfdbs} per verificare la consistenza dei file \texttt{ls-R} e delle specifiche \texttt{!!} in ogni sotto directory; \item usa nomi di file versionati per i container dei pacchetti, come in \texttt{tlnet/archive/\textsl{pkgname}.rNNN.tar.xz}; dovrebbe essere invisibile agli utenti, ma è un'importante cambiamento nella distribuzione; \item le informazioni \texttt{catalogue-date} non sono più propagate dal \TeX~Catalogue, dato che erano spesso non collegate agli aggiornamenti dei pacchetti. \end{itemize*} \htmlanchor{news} \subsection{Presente: 2021} \label{sec:tlcurrent} Generale: \begin{itemize} \item Sono incorporati i cambiamenti di Donald Knuth per la sua sistematina del 2021 a \TeX\ e Metafont (\url{https://tug.org/TUGboat/tb42-1/tb130knuth-tuneup21.pdf}). Sono anche disponibili su CTAN sotto forma dei pacchetti \code{knuth-dist} e \code{knuth-local}. Come atteso, i fix sono per casi oscuri e non riguardano nessun comportamento pratico. \item Tranne che nel \TeX\ originale: se \cs{tracinglostchars} è impostato a 3 o più, i caratteri mancati daranno origine ad un errore, non semplicemente ad un messaggio nel file di log e il codice del carattere mancante sarà mostrato in esadecimale. \item Tranne che nel \TeX\ originale: un nuovo parametro intero \cs{tracingstacklevels} che se positivo, e \cs{tracingmacros} è anch'esso positivo, provoca l'aggiunta di un prefisso 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à $\ge$ del valore del parametro \end{itemize} Aleph: il formato \LaTeX\ basato su Aleph, chiamato \code{lamed}, è stato rimosso. L'eseguibile \code{aleph} stesso è ancora incluso e supportato. Lua\TeX: \begin{itemize*} \item Lua 5.3.6. \item Callback per il livello di annidamento usata in \cs{tracingmacros}, come variante generalizzata del nuovo \cs{tracingstacklevels}. \item Glifi matematici marchiati come protetti per evitare l'elaborazione come testo. \item Rimossa la compensazione larghezza/ic per il codice matematico tradizionale. \end{itemize*} MetaPost: \begin{itemize*} \item Suppporto alla variabile d'ambiente |SOURCE_DATE_EPOCH| per output riproducibile. \item Evitato il \texttt{\%} finale errato in \texttt{mpto}. \item Documentata l'opzione \texttt{-T}, altre correzioni al manuale. \item Valore di \texttt{epsilon} cambiato in modalità binaria e decimale, così che |mp_solve_rising_cubic| funzioni come atteso. \end{itemize*} pdf\TeX{}: \begin{itemize*} \item Nuove primitive \cs{pdfrunninglinkoff} e \cs{pdfrunninglinkon}; ad esempio, per disattivare la generazione dei link in intestazioni e pié di pagina. \item Avverte invece di uscire con l'errore ``\cs{pdfendlink} ended up in different nesting level than \cs{pdfstartlink}''. \item Stampa le assegnazioni di \cs{pdfglyphtounicode} nel file \texttt{fmt}. \item Sorgenti: supporto a \texttt{poppler} rimosso in quanto troppo difficile mantenerlo sincronizzato con la linea di sviluppo. In TL nativa, pdf\TeX\ ha sempre usato \texttt{libs/xpdf}, che è un codice ridotto e adattato da \texttt{xpdf}. \end{itemize*} Xe\TeX{}: correzioni per il kerning matematico. Dvipdfmx: \begin{itemize*} \item Ghostscript è ora invocato in modalità sicura per default; per annullare (assumendo che tutti i file di input siano fidati), usate \verb|-i dvipdfmx-unsafe.cfg|. Questo è richiesto per usare PSTricks con \XeTeX, come in: \verb|xetex -output-driver="xdvipdfmx -i dvipdfmx-unsafe.cfg -q -E" ...| \item Se il file di un'immagine non è trovato, esce con stato di errore. \item Sintassi special estesa per il supporto dei colori. \item Special per la manipolazione di |ExtGState|. \item Special di compatibilità \code{pdfcolorstack} e \code{pdffontattr}. \item Supporto sperimentale per |fnt_def| esteso di \code{dviluatex}. \item Supporto per nuova funzionlità dei font virtuali per ripiego nella definizione di font giapponesi. \end{itemize*} Dvips: \begin{itemize*} \item Il titolo di default del documento PostScript è ora il nome base del file di input e può essere sostituito tramite la nuova opzione \texttt{-title}. \item Se un \texttt{.eps} o un altro file di immagine non è trovato, esce con stato di errore. \item Supporto per nuova funzionlità dei font virtuali per ripiego nella definizione di font giapponesi. \end{itemize*} Mac\TeX{}: Mac\TeX{} e la sua nuova directory degli eseguibili \texttt{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 \texttt{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 \texttt{universal-darwin} hano codice eseguibile sia per ARM che per Intel. Entrambi i binari sono compilati dallo stesso sorgente. I programmi aggiuntivi Ghostscript, LateXiT, \TeX{} Live Utility e TeXShop sono tutti universali e sono firmati con un runtime indurito, quindi sono tutti inclusi in Mac\TeX{} quest'anno. \code{tlmgr} e infrastruttura: \begin{itemize*} \item mantenuto un solo backup del \texttt{texlive.tlpdb} del repository principale. \item maggiore portabilità tra sistemi e versioni di Perl. \item \texttt{tlmgr -info} mostra i nuovi campi \texttt{lcat-*} e \texttt{rcat-*} per i dati del Catalogo locali vs. remoti. \item il log completo dei sottocomandi è stato spostato nel nuovo file di log \texttt{texmf-var/web2c/tllmgr-commands.log}. \end{itemize*} \subsection{Futuro} Abbiamo intenzione di continuare a rilasciare nuove versioni di \TL\ 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 \TeX. Questo lavoro è fatto completamente da volontari nel loro tempo libero e quindi c'è sempre molto da fare. Visitate il sito \url{https://tug.org/texlive/contribute.html}. Potete inviare correzioni, suggerimenti e offerte d'aiuto a: \begin{quote} \email{tex-live@tug.org} \\ \url{https://tug.org/texlive} \end{quote} \medskip \noindent \textsl{Buon lavoro con \TeX!} \end{document}