Chiunque si occupi di matematica a livello professionale sa quanto sia problematico scrivere le formule in modo leggibile e al tempo stesso semplice per chi le scrive. Per anni il LaTeX è stato lo standard per questo tipo di testi. Ora esiste un’alternativa che si chiama TeXmacs. Ce ne parla Massimiliano Gubinelli.
I can’t go to a restaurant and order food because
I keep looking at the fonts on the menu.
D. Knuth, “All Questions Answered” Notices
of the AMS 49 (2002)
Come ricercatore, insegnante e semplice appassionato, passo molto tempo a creare documenti elettronici che parlano di matematica, di fisica, o di altri vari argomenti tecnici, per esempio di programmazione. Usare il computer, invece che la carta e la penna, presenta il vantaggio che i documenti possono essere facilmente copiati, condivisi, replicati con piccole o grandi modifiche, proiettati su uno schermo e anche stampati, se proprio si ha nostalgia della carta e dell’esperienza sensoriale collegata. Ci sono anche molti svantaggi: la perdita dell’immediatezza legata all’utilizzo di uno strumento che abbiamo praticato per gran parte della vita; della libertà da uno schema preciso o la flessibilità di fare un disegno velocemente e di organizzare il testo in modi non codificati, senza formato prestabilito, senza che lo strumento richieda attenzioni eccessive, preoccupazioni accessorie. La cosa più importante nell’usare carta e penna, difficile da ottenere altrimenti, è la possibilità di concentrarsi sull’essenziale, ovvero sul comunicare, o semplicemente registrare, un’idea, un concetto, un risultato nuovo.
È possibile trovare una “terra di mezzo” tra queste due scelte apparentemente complementari? Uno strumento che permetta di conservare le qualità di entrambe? Chi ha usato programmi come Microsoft Word o il sistema TeX di Knuth è ben cosciente che scrivere formule al computer non è cosa facile. Nel primo l’immediatezza è ricompensata con la sciatteria del risultato e da interfacce grafiche che tendono a infantilizzare l’utente. Nel secondo invece la perfezione del risultato si paga con una interfaccia utente concepita per i computer degli anni ’80 e che rappresenta i contenuti in una forma più adatta all’elaborazione elettronica che ai bisogni espressivi dello scrittore umano.
All’università imparare ad usare il sistema TeX/LaTeX è un obbligo per chi fa matematica o fisica o ha comunque a che fare con più di una o due formule qua e là. Come molti altri anch’io l’ho usato per molti anni, con un misto di ammirazione e disgusto. I giorni pari pensavo che fosse un’opera di alto artigianato (di sapore medievale, intrisa di lavorio, abnegazione, misticismo, fatto testimoniato anche dalla inesorabile convergenza verso \(\pi = 3, 1415 \ldots\) del numero che rappresenta le successive versioni del programma). I giorni dispari mi guardavo attorno per capire come venir fuori dalla tortura continua (forse conseguenza dello stesso spirito medievale) di comporre i miei lavori in LaTeX.
Ad un certo punto però sono incappato in TeXmacs. TeXmacs è un progetto nato negli anni ’90 con lo scopo di permettere ai matematici di esprimere le loro idee in modo naturale e immediato e allo stesso tempo produrre dei documenti della più alta qualità possibile sui computer attuali. In principio il matematico coinvolto era solo uno, Joris van der Hoeven, che aveva iniziato a immaginare una alternativa al TeX e allo stesso tempo aveva iniziato anche a realizzarla programmando TeXmacs, un sistema di edizione scientifica. Il nome proviene da TeX (ovvio) ed Emacs (un altro famigerato sistema medievale, un editor di testi programmabile), ma alla fine risulta che TeXmacs non abbia più molto a che fare con nessuno dei due, se non ereditarne due ambizioni: quella all’eccellenza tipografica e quella all’estensibilità completa. Van der Hoeven voleva mettere nel computer le sue idee nella forma più piacevole possibile: piacevole da digitare e piacevole da guardare. Voleva potersi concentrare sul contenuto la maggior parte del tempo, sui teoremi, le dimostrazioni, le note a margine, gli schemi esplicativi, le tabelle di riferimento. E contemporaneamente, ma solo al momento giusto, voleva potersi concentrare sui piccoli dettagli tecnici, e voleva pure che fosse facile cambiare l’interfaccia del programma per adattarsi ai vari tipi di utilizzo ed utilizzatore.
Il sistema TeXmacs insomma è nato dall’idea di far diventare la scrittura matematica al computer tanto immediata e gratificante quanto quella su carta e penna. Questo è possibile solo partendo da zero e costruendo un nuovo programma: TeXmacs non è derivato da TeX e non cerca di essere compatibile al 100% con esso.
TeXmacs è un “free software”: non è solo gratuito, ognuno lo può usare, copiare e modificare come vuole. In pratica però c’è una piccola comunità di sviluppatori ed utilizzatori che si occupano di mantenerlo in buona forma e di farlo crescere. Poco dopo averlo scoperto per caso, nelle mie ricerche di una alternativa a LaTeX, ho cominciato ad utilizzarlo ed ora io, come molti altri utenti, lo uso tutti i giorni. Ci scrivo le mie lezioni, i fogli di esercizi per gli studenti, gli articoli scientifici, e lo uso per “pensare”, fare calcoli e prendere appunti per nuove ricerche. Questo articolo, per esempio, lo sto componendo in TeXmacs, più tardi forse lo potrò esportare in PDF o HTML o persino LaTeX a seconda dei bisogni, ma per ora posso concentrarmi sul testo senza “rumore visivo” sullo schermo del mio computer (Figura 2).
Però devo essere onesto. La prima volta che ho provato a usare TeXmacs non mi è veramente piaciuto: quello che provavo a fare non funzionava e avevo velocemente decretato che era un prodotto amatoriale, come molti progetti open source partiti su buone basi ed entusiasmo senza che questo fosse abbastanza per raggiungere un risultato serio. Insomma, LaTeX era molto meglio. Per caso però poi ci sono ricaduto sopra, e con un po’ di pazienza e mente aperta ho dato un’occhiata al manuale per capire meglio la logica del programma e il suo utilizzo. E mi sono reso conto che TeXmacs è invece un sistema maturo, basato su una serie di concetti che investono in maniera profonda tutti gli aspetti del programma: la natura gerarchica dei documenti e la relativa edizione strutturata, la navigazione visiva, l’utilizzo di combinazioni di tasti intuitive, la deduplicazione dei modi di invocare i vari comandi.
Le idee sono semplici ma non si incontrano frequentemente tutte insieme in altri programmi di uso più comune. Per questa ragione richiedono, da parte dell’utente alle prime armi, un po’ di umiltà e curiosità intellettuale. Se non altro quella di dare un’occhiata al manuale prima di decretare che il programma non funzioni correttamente. TeXmacs richiede la comprensione di principi di base che non possono essere ricondotti all’esperienza intuitiva dell’utilizzatore familiare con Word o con LaTeX.
In cambio di questo piccolo sforzo iniziale, si può iniziare a scrivere in modo più fluido anche formule o equazioni, vedendole comparire sullo schermo mentre vengono scritte. È veramente alla portata di tutti. Durante il lockdown della primavera scorsa uno dei miei figli (frequentante la scuola media) doveva mandare delle soluzioni di esercizi di matematica al suo professore. È bastata una veloce dimostrazione di qualche minuto per permettergli di usare TeXmacs: iniziare una formula, scrivere delle frazioni e così via. Nulla di complicato in sé, ma difficile da ottenere in modo soddisfacente in Word e impossibile da avere facilmente in LaTeX. In poco tempo mio figlio è riuscito a mandare i suoi risultati al professore in un documento PDF esteticamente gradevole.
Trovo che sia una valida alternativa al LaTeX, sia per l’utilizzo tipico nell’università, sia per usi nella scuola superiore: i professori possono usarlo per redigere fogli di esercizi o dispense, gli studenti per scrivere le loro tesi o ricerche. TeXmacs permette facilmente di creare presentazioni (nello stile “beamer”) velocemente e si presta anche ad un utilizzo tipo “lavagna elettronica”, utile sopratutto in questo periodo di insegnamento a distanza forzato. Per esempio io faccio lezione condividendo una finestra TeXmacs via Zoom con i miei studenti e scrivo quello che avrei scritto alla lavagna in altri tempi. Alla fine posso produrre un PDF da inviare loro a guisa di note del corso (Figure 3 e 4).
Per chi è un appassionato di programmazione TeXmacs presenta anche l’opportunità di contribuire a (o semplicemente contemplare) la struttura di un sistema estremamente complesso che deve eseguire una serie di compiti molto vari: una parte si occupa della composizione tipografica del documento (con algoritmi simili a quelli usati in TeX), un’altra si occupa dell’interazione con l’utente (interfaccia grafica, gestione del mouse e dello schermo), un’altra della conversione da e verso altri formati (HTML, PDF, LaTeX), un’altra delle referenze bibliografiche, un’altra ancora dell’edizione di semplici contenuti grafici vettoriali. L’interfaccia utente è scritta in Scheme (un dialetto del Lisp, a sua volta ispirato al lambda calcolo di Church). Questo permette di programmare comportamenti complessi in maniera relativamente semplice e anche di aumentare le capacità del programma senza doverlo ricompilare. Le parti più critiche sono invece scritte in C++ per garantire reattività nell’interazione con l’utente.
Riassumendo: TeXmacs è da una ventina di anni una risorsa a disposizione di matematici professionisti e di un pubblico più ampio, comprendente per esempio gli studenti universitari e i professori e studenti delle scuole superiori. Maggiori informazioni si trovano sul sito web dedicato al programma www.texmacs.org, inclusa la documentazione e qualche video introduttivo. Vari tutorial e dimostrazioni sono ospitati anche su YouTube. TeXmacs è anche un progetto comunitario che raduna matematici (e non) appassionati di programmazione e di condivisione. Regolarmente vengono proposte nuove versioni sia per eliminare gli immancabili “bachi” che per introdurre nuove funzionalità. Negli anni il programma si è evoluto, migliorato e adattato al panorama informatico, ma l’idea di fondo resta sempre la stessa: quella di aspirare ad essere uno strumento che consenta allo scrittore una esperienza di grande “qualità”: come una penna stilografica, uno strumento musicale o linguaggi di programmazione come Lisp o Haskell. Cercando di spiegare la ragione di essere di TeXmacs, van der Hoeven dice:
Lo strumento di scrittura ideale deve comportarsi come la tua prima
penna calligrafica: liberare il tuo desiderio di scrivere, farti
sentire una cosa sola con lo strumento e, occasionalmente,
sorprenderti con la bellezza delle tue proprie parole.
J. van der Hoeven, “The Jolly Writer”, 2020.
Guarda il video: Typing your first article with GNU TeXmacs