TeX non è una applicazione specifica per Linux, anzi, forse è una delle applicazioni utilizzabili nel maggior numero di sistemi... ma d'altro canto TeX è una delle applicazioni piú usate, e ho quindi ritenuto argomento ``critico'' il produrre documenti TeX correttamente localizzati.
Il TeX è in pratica un linguaggio di programmazione. Scritto un file in un determinato formato, si può compilare e quello che si ottiene è un file ``oggetto'', ovvero un file intermedio, in un formato detto DVI, ovvero DeVice Indipendent format, da cui si ottiene un file in linguaggio per le stampanti, di solito un file PostScript.
TeX è un ottimo programma per l'impaginazione di libri. La sua nascita nel grande mondo del free software lo ha velocemente indirizzato verso le pubblicazioni tecniche, scientifiche ma anche quelle multilingue. Inoltre permette una potente gestione degli indici e dei riferimenti, nonchè estensioni per la gestione dei riferimenti bibliografici.
Un file sorgente di TeX è un file testo (come tutti i linguaggi di programmazione) con delle istruzioni aggiuntive (che iniziano per ``\'') che spiegano al programma come organizzare l'output.
Come tutti i buoni compilatori, piano piano è stato dotato di librerie, chiamate package che ne estendono le funzionalità. Le più note sono il LaTeX, che definisce un insieme di stili tipografici per fare libri, articoli e lettere, con tutti gli elementi importanti di questi stili (titoli per libri e articoli, indirizzi per le lettere) già predefiniti e pronti all'uso. Esistono poi parecchie estensioni al LaTeX, le principali sono l'AMSLaTeX, che permette di ampliare di molto la già completa gestione di equazioni matematiche del TeX (per la cronaca, quasi tutti i libri di matematica in commercio sono fatti in TeX) e Babel, che definisce la gestione di diverse lingue, anche contemporaneamente sullo stesso documento.
Come per Linux stesso, di TeX ce n'è uno solo, ma visto che ha bisogno comunque di librerie di font, programmi accessori... di distribuzioni ce ne sono tante. Si prende in considerazione qui la distribuzione teTeX.
Un file TeX è composto da un preambolo che definisce lo ``stile'' con cui è impaginato il testo e da un corpo, che comprende sia il testo che le formattazioni. Il corpo è quello che va dal comando \begin{document}
al comando \end{document}
, quello che c'è sopra è il preambolo, mentre quello che c'è dopo viene ignorato.
Nel preambolo vengono definite:
(o Stile, in LaTeX2.09) Definisce lo stile del documento, ovvero se deve essere un libro (book), lettera (letter), articolo (article), ...
definisce sia le opzioni interne, ovvero quelle delle varie classi (dimensione dei caratteri in punti, dimensione della carta, ...), sia i pacchetti (package) o stili aggiuntivi esterni, come il Babel stesso e il supporto per le accentate.
altre cose fanno parte del preambolo, come definizioni aggiuntive e strutture particolari, ma che ai fini del nostro studio sono inessenziali.
La definizione è quindi del tipo:
% Questo è il preambolo % Questa è la definizione della classe e le sue opzioni \documentclass[opz1, opz2, ...]{classe} % Questo è il caricamento dei pacchetti e le loro opzioni \usepackage[opz1, opz2, ...]{pacchetto1} \usepackage[opz1, opz2, ...]{pacchetto2} . . . % Qui inizia il testo \begin{document} [...] \end{document}
Si vede come nel LaTeX2e ci sia separazione logica tra le opzioni dello stile, o classe, e dei pacchetti aggiuntivi, cosa preferibile visto il proliferare di nuovi pacchetti e estensioni.
Tutta l'installazione del TeX di Linux si trova in /usr/lib/texmf
e subdirectory.
Per la configurazione di teTeX è sufficiente eseguire il programma di utilità texconfig(1). Le voci da (eventualmente) modificare sono:
permette di modificare le tabelle di sillabazione attive: selezionata questa opzione si entra automaticamente in un editor (di solito vi(1)) ed occorre ``scommentare'' (eliminare il carattere di commento ``%'') di fronte alla riga italian ithyph.tex
; dopo aver salvato il file ed essere usciti (con [Esc] [:] [w] [q] [Invio] se si tratta di vi) vengono automaticamente rigenerati i file di formato.
permette di scegliere la configurazione per la propria stampante: ATTENZIONE che questo non configura la stampa vera e propria, ma solo il modo di default con il quale vengono generati i font da dvips; quindi scegliete come valore la risoluzione maggiore che riuscite ad ottenere dalla vostra stampante o da tutte le stampanti che usate con il vostro computer
permette di scegliere la dimensione di carta di default e fare delle prove di stampa e di resa; è sufficiente scegliere l'opzione ``a4''
permette di definire anche qui il formato della pagina, gli offset sulla pagina stessa (zone di non stampabilità), il modo e la stampante di default; permette di fare la stesa operazione per un certo numero di stampanti addizionali
Alla fine di questa semplice operazione avrete la vostra installazione di TeX perfettamente funzionante.
Per le altre distribuzioni di TeX presenti nelle vecchie distribuzioni di Linux occorre al contrario del teTeX, editare e ricompilare a mano i file di formato (piú o meno ;). Non è una operazione semplice, troverete maggiori informazioni presso la documentazione allegata alla vostra distribuzione di TeX.
Una nota è da fare sulla distribuzione NTeX, che dalla versione 2.X.X e successive (non quindi quella contenuta nelle vecchie slackware...) contiene un programma di configurazione basato su una bella interfaccia grafica in Tcl-Tk. All'uscita dall'interfaccia grafica si ha un sistema TeX perfettamente funzionante e configurato, sillabazione compresa.
C'è da dire che le distribuzioni non usano più NTeX, probabilmente perché NTeX è cresciuta oltre modo (più di 160 MB, senza supporto per il giapponese!). Il riassunto è che, almeno fino all'uscita di teTeX 1.0 (che non ho idea come sarà strutturato), NTeX rappresenta una alternativa per esperti, che hanno bisogno di supporto per lingue poco diffuse od oscure (da Stefano Miccoli).
Attenzione che il teTeX fornito con la Slack 3.3 ha un'imprecisione: nel file italian.ldf
di Babel devi definire a mano la traduzione per la parola ``Dimostrazione'' che è lasciata all'inglese ``Proof'' (se ti serve l'ambiente proof nei tuoi documenti) (da Enrico Cavalli).
La tabella di sillabazione italiana presente nelle distribuzioni diverse da teTeX può essere vecchia o sbagliata. Cercate nelle sottodirectory di /usr/lib/texmf
il file hyphen.italian
o ithyph.tex
. Se è già presente, controllate (è un file di testo, usate pure less(1)!!!) che NON sia la tabella di sillabazione di G. Patergnani. Questa soffre di quella che io scherzosamente chiamo ``sindrome di Zio Paperone'', ovvero tende a mandare a capo malamente i suoi nipoti (qu-i, qu-o, qu-a).
Altrimenti, se la tabella non esiste o è quella del Patergnani, prendete il file aggiornati dai siti CTAN, uno per tutti ftp://ftp.dante.de/.
Ora, dopo tutte queste disquisizioni, abbiamo capito che c'è bisogno di:
Ovvero per stampare decentemente sulla nostra stampante.
Ovvero il supporto per le lettere accentate direttamente all'interno del file LaTeX, per evitare di ricorrere a pesanti sequenze di comandi.
Per il supporto della sillabazione italiana e di altre cose simpatiche senza stravolgere completamente la configurazione del TeX.
Piacerebbe avere l'opzione della dimensione del foglio A4 definita direttamente a livello di TeX, visto che è il nostro standard. Questa operazione, anche se possibile, è sconsigliata. In TeX la formattazione di certi documenti dipende fortemente da margini e dimensione della carta. Cambiare uno di questi parametri senza rivedere il layout del documento potrebbe portare a delle emerite schifezze (figure sovrapposte, ...). Quindi, se vogliamo stampare dei testi in inglese, dobbiamo reperire i sorgenti in TeX, editare il file, aggiungendo nel preambolo l'opzione:
\documentclass[opz1,opz2,...,a4paper]{classe}
e magari controllare con un previewer come ghostview, prima di stampare, che l'output sia accettabile.
Se invece stiamo costruendo un nuovo testo, e vogliamo che tutto funzioni alla perfezione, è sufficiente che il preambolo sia del tipo:
\documentclass[opt1,opt2,...,italian,a4paper]{classe} \usepackage{babel} \usepackage[latin1]{inputenc}
È bene mettere l'opzione ``italian'' come globale, visto che potrebbe essere utilizzata da altri pacchetti.
Inoltre per un maggiore ordine nella sillabazione, e molti altri buoni motivi (tra cui le guiellmots «») è bene adoperare anche un:
\usepackage[T1]{fontenc}
che permette di utilizzare i nuovi font ``ec'' in luogo dei vecchi ``cm'' di Knuth (da Lorenzo Maria Catucci).
Se avete intenzione di stampare semplicemente dei file TeX, queste conoscenze sono sufficienti.
Ulteriori informazioni possono essere reperite nella (nutrita!) documentazione che viene allegata alla distribuzione teTeX, e che potete trovare nella directory /usr/lib/texmf/doc
oppure facendo riferimento al teTeX HOWTO, anche in versione italiana.
Se invece avete intenzione di proseguire nella conoscenza del TeX, sono consigliabili, in particolare, i libri:
/usr/lib/texmf/doc/latex/general/lshort2e.dvi
, da cui si impara piú che dal Lamport, risparmiando giorni di studio (da Lorenzo Maria Catucci).E in particolare in italiano...