Scrivere un documento multiformato

Scrivere oggigiorno un documento multiformato significa poterlo generare in formato pdf (Adobe Portable Document Format) e html (Hyper Text Markup Language). Questi formati infatti danno la garanzia che un documento sarà leggibile nell'ambito di un qualsiasi sistema operativo (in particolare il formato pdf ci garantisce che il documento verrà correttamente stampato). Quando ci si orienta sulla composizione di un documento compatibile con diversi tipi di modalità di fruizione e formato (libro stampato, guida interna di sistema, ipertesto in rete) bisogna pianificare fin dall'inizio i formati di uscita e rinunciare a pretese stilistiche particolari.

Cosa offre il panorama Debian per soddisfare questa esigenza? Come spesso accade nel software libero, sono disponibili numerosi strumenti; è pertanto giocoforza selezionarne solo alcuni: qui si privilegerà la facilità d'uso e la potenza del software, cercando comunque di non suggerire un numero eccessivo di candidati.

In base a questi criteri la scelta si riduce sostanzialmente a tre prodotti:

Scribus
 
OpenOffice
 
LYX
 
Scribus, scritto avvalendosi delle librerie QT, è un programma di impaginazione professionale, ideale per la produzione di pubblicazioni anche complesse come giornalini, manifesti, riviste, libri su piccola scala. Il programma è basato sull'uso dei frame - bisogna cioè creare uno spazio per gli elementi della pagina prima di importarli. Scribus possiede un supporto estensivo al formato pdf, in particolare può produrre documenti nel formato PDF/X-3, basato su Postscript Language 3. Lo sviluppo del programma continua a ritmi sostenuti ma già adesso è ampiamente usabile e molto promettente:

# aptitude install scribus scribus-doc
Un grave difetto del programma è la scarsità di manuali d'uso gratuiti.

OpenOffice ha una lunga storia di sviluppo e si presenta come la passerella ideale per chi proviene dal software proprietario di automazione d'ufficio e vuole la soluzione meno traumatica possibile, senza perdere molto in termini di sofisticazione, facilità d'uso e compatibilità con i formati proprietari di una nota multinazionale americana. Da Ottobre 2003 è possibile sostenere l'esame ECDL (Patente europea del computer) interamente su Linux/OpenOffice:

# aptitude install openoffice.org
LYX è, come si dice, una categoria a parte. Esso è, in sintesi, un'interfaccia grafica molto curata (nella versione QT), anche se non facilissima da usare, al linguaggio LATEX, un potente formattatore di testi. LATEX a sua volta è un'estensione di un altro linguaggio di formattazione più primitivo chiamato TEX, creato dal matematico Donald Knuth e risalente al 1978. LATEX esiste quindi da oltre venti anni, è usato da studenti e ricercatori di tutto il mondo e funziona molto bene, soprattutto nella gestione di documenti molto complessi come libri, tesi, oppure pubblicazioni scientifiche che contengano molta matematica.

Lo svantaggio principale di LATEX è che esso è un linguaggio di ``programmazione'' del testo, pertanto un documento si presenta nella forma di un vero e proprio codice sorgente, che ha bisogno della compilazione per essere visualizzato (LYX però è in grado di operare una parziale visualizzazione del documento già in fase di scrittura). LATEX non è adatto per scrivere documenti, magari semplici, in cui è necessario controllare manualmente la posizione degli elementi sul foglio, perchè questo lo fa il programma in modo esclusivo secondo le regole tipografiche standard. Per contro, LATEX elabora il testo nel suo insieme e può quindi avere una visione globale e capacità di impaginazione e indicizzazione automatiche; per esempio è molto facile produrre indici generali.

Per usare LYX è necessario il supporto completo a LATEX inserendo:

# aptitude install tetex-extra tetex-doc latex2html
che installa la distribuzione TeTEX, cioè il supporto a LATEX con i suoi programmi di servizio così come più o meno accorpati da Thomas Esser, oppure direttamente:

# aptitude install lyx
TeTEX è presente in tutti i moderni sistemi Linux. Una guida in italiano a LATEX (Impara Latex) è reperibile presso:

www.manuali.it

che è una traduzione dal francese a cura di Alessandro Cannarsi del centro Cefriel di Milano. Un'altra guida, anch'essa tradotta in italiano, è contenuta nella distribuzione TeTEX stessa, accessibile sul vostro sistema nel file (compresso):

/usr/share/doc/texmf/latex/general/lshort.dvi.gz

Purtroppo Debian installa TeTEX senza il supporto sillabico (hyphenation patterns) dell'italiano, per cui se non si interviene sulla configurazione predefinita ci ritroveremo con gran parte delle parole che vanno a capo del rigo in maniera sbagliata; per rimettere le cose a posto bisogna modificare la configurazione di TeTEX digitando:

# dpkg-reconfigure tetex-bin
e rispondere alle varie domande confermando i suggerimenti di debconf, fino a quando non vi viene chiesto se intendete usare debconf per gestire il file language.dat: questa volta ignorate il suggerimento (negativo) e rispondete di si; avrete a questo punto la possibilità di selezionare sullo schermo i supporti sillabici da utilizzare. Abbiate cura di selezionare almeno quello dell'italiano!

Una volta ottenuto da LYX il sorgente LATEX del documento (che è sempre un file con estensione .tex) si possono usare due ulteriori programmi di servizio per generare i formati pdf e html del documento. Per generare il formato pdf inserire:

$ pdflatex nomefile.tex
mentre per generare il formato html inserire:

$ latex2html nomefile.tex
che in verità nell'esperienza dell'autore ha funzionato correttamente solo con file semplici e di piccole dimensioni.

Per ottenere i migliori risultati personalizzati è necessario studiare i relativi manuali dei programmi citati. Per esempio, se aggiungete un indice analitico, per far farlo includere nel documento pdf dovrete passare attraverso diverse compilazioni del documento stesso:

$ pdflatex nomefile.tex

$ makeindex nomefile.idx

$ pdflatex nomefile.tex

$ pdflatex nomefile.tex

E' probabile, se non altro allo stato attuale, che LATEX non sia molto adatto all'utente comune, poco avvezzo a linguaggi di programmazione e compilazioni, sia pure oscurati da interfacce grafiche più o meno attraenti. Se però siete arrivati fin qui a leggere, potreste trovarvi a vostro agio in LATEX, apprezzandone nel contempo l'enorme potenza.

Mauro Darida 2006-07-25