Scrivere atti telematici avanzati in LaTeX (parte I): Perché e come?
Come ho già scritto su queste pagine nell’ultimo periodo ho intrapreso una quest per creare un mio flusso di lavoro per creare atti telematici avanzati e non solo, possibile sia su macOS che su iOS (a dir il vero su iPadOS).
1. Il problema
Inizialmente avevo iniziato usando un escamotage e mi collegavo da iPad ad un Mac remoto. Questo mi permetteva di avere un flusso di lavoro identico ma richiedeva di collegarmi ad un computer remoto, cosa che non è sempre possibile.
Tra le mie varie sperimentazioni c'è stata anche la possibilità di utilizzare un Raspberry Pi collegato all’iPad per avere il computer offline ma, seppur interessante (forse una volta ve ne parlerò in dettaglio), non era la soluzione ideale.
Nel mio ultimo tentativo sono riuscito a trovare la quadra.
In particolare per fare ciò ho dovuto passare dalla scrittura dei miei atti e documenti in Markdown con qualche spruzzata qua e là di LaTeX, ad usare LaTeX punto e basta.
Per quanto mi riguarda il salto è stato relativamente indolore … nel tempo avevo accumulato comunque una certa esperienza, ma per chi iniziasse da zero credo possa essere un po' frastornante.
Per voi e per me ho quindi deciso di scrivere questa serie di articoli sull’argomento.
Cercherò di spiegare il mio punto di vista, come ho approcciato il tutto ed un prontuario pratico di cosa possa servire ad un avvocato per iniziare a produrre documenti con questo metodo di lavoro, oltre che dare una infarinatura generale all’utente novizio o totalmente digiuno di LaTeX.
2. Approfondimenti utili
Ciò detto mi sembra utile consigliare per chi volesse approfondire delle idonee lettura e fonti di ispirazioni, quello che ho voluto fare io potrebbe non essere quello che volete fare voi.
Credo che la prima lettura utile in italiano sia L’arte di scrivere con LaTeX di Lorenzo Pantieri.
Secondariamente vi suggerisco il sito GuiT il sito del TeX User Group italiano. In particolare vi segnalo questa pagina dove trovate tutta la documentazione in italiano presente su LaTeX.
Infine vi segnalo il blog del collega Franco Pasut da cui ho copiato svariate cose e di cui vi consiglio la lettura.
3. Alcune avvertenze
Ultima dovuta premessa: non sono un esperto di LaTeX.
Ho rubato qua e là consigli e configurazioni che ritengo utili e che uso per creare senza troppe complicazioni documenti giuridici. Questa serie di articoli è, quindi, pensata come guida pratica su come poter mettersi a lavorare in poco tempo, ottenendo atti giuridici con caratteristiche superiori a quelle che otterreste con software come Microsoft Word, e pensata per gli avvocati.
In conclusione mi sembra anche utile dire di cosa non parlerò in questi articoli. LaTeX, oltre ad essere un ottimo strumento per avere documenti elaborati in modo tipograficamente corretto, è il miglior strumento per tipo-comporre formule matematiche. I numeri ed in particolare le formule matematiche non sono il pane quotidiano di un avvocato e quindi qui non ne troverete alcun cenno.
Se invece dovete scrivere relazioni, o documenti da presentare in pubblico i suggerimenti che vi darò possono tranquillamente applicarsi a voi (fatta la tara alle caratteristiche specifiche dei documenti legali).
4. Gli strumenti di lavoro
Come anticipavo il risultato finale di questo sistema è poter lavorare in modo indifferente tra Mac ed iPad. Quindi mi pare giusto spiegare cosa serve per tutte e due le piattaforme.
Segnalo, per chi è incuriosito ma indeciso se provare, che tutti i software di cui parlerò sono open-source e gratuiti … per cui non avete scuse per non provare. Non è detto che faccia per voi ma credo che i risultati che otterrete potrebbero stupirvi. Personalmente una volta visto un atto scritto con LaTeX tornare indietro è impossibile.
4.1 Per Mac
- MacTeX: ho fatto un video su come installare MacTeX attraverso HomeBrew e scritto un articolo su come reperirlo come DMG (al punto 4), per cui non mi ripeto. Questo software è la versione per Mac di LaTeX.
- Vim o altro editor di testo: personalmente utilizzo Vim come editor di testi e, lo ammetto, questo ha inciso notevolmente sulle scelte fatto per questo mio flusso di lavoro. Ciò detto un qualsiasi text editor è sufficiente per lavorare in LaTeX. Se siete “pigri” e non volete fare altro con MacTeX viene scaricato anche un programma per scrivere e visualizzare i documenti in LaTeX. Personalmente non lo utilizzo e non sarà oggetto di questi articoli ma ve lo segnalo.
4.2 Per iPad
- a-Shell: ho già dedicato un articolo al perché ho scelto questa app per iPhone ed iPad e sulle personalizzazioni di Vim che ho fatto per rendermi più comodo l’utilizzo di questa app, anche qui non mi ripeto. Segnalo che a-Shell è gratuita e la potete scaricare senza alcun costo. Qui basti sottolineare che, dopo aver scaricato l’app dall’appStore, dovrete procedere anche a scaricare LaTeX (vi basta digitare latex nella riga del terminale di a-Shell o andare nelle Impostazioni di iOS / iPadOS, in a-Shell e spuntare Enable Tex e LuaLaTeX, ci vorrà un po' perché scaricherà circa 1 Gb di file ma sono indispensabili).
- Sistema di sincronizzazione cloud: di fatto è possibile lavorare direttamente su iPad ma poi dovreste copiare i documenti sul vostro Mac a mano; personalmente per avere i dati sincronizzati tra Mac ed iPad utilizzo Secure ShellFish che consiglio caldamente (ha un suo costo ma la sicurezza dei dati dei vostri clienti vale ben più dei 30 € circa che costa l’app). Alternativamente dovete utilizzare iCloud ma personalmente non lo consiglio. Gli altri “cloud” blasonati non si integrano perfettamente con il sistema di File di iOS ed iPadOS. Ciò detto, se volete solo provare il sistema, non è strettamente necessaria la sincronizzazione anche se, una volta implementato in modo permanente, credo sia indispensabile.
5. Le basi di LaTeX e la scelta di utilizzare LuaLaTeX
Entriamo quindi nel vivo dell’argomento e parliamo un po' di come funziona TeX e LaTeX. Anche qui, cercherò di essere divulgativo e pertanto semplificherò molto, gli esperti di LaTeX non me ne vogliano.
Anzitutto vediamo la differenza di TeX e LaTeX. Il primo è il motore di tipo composizione (quello che impagina il nostro documento per intenderci) il secondo invece è un linguaggio di marcatori (markup in inglese) che permette di interfacciarsi in modo “semplice” con TeX. Oltre a LaTeX esistono altri linguaggi di markup basati su Tex, ma qui non approfondiremo.
5.1 La filosofia
Rispetto ad un programma di video-scrittura come Word, dove quel che vedi è quel che ottieni e dove il programma oltre che a scrivere il testo lo impagina istantaneamente a video, LaTeX suddivide le due fasi e produce una composizione asincrona. Prima si scrive il testo (in testo semplice integrato con i marcatori che vedremo poi) e poi questo file di testo viene “compilato” per ottenere il risultato finale (per noi un PDF ma si possono ottenere anche differenti formati).
5.2 La scelta di usare LuaLaTeX
Quando ho iniziato a sperimentare con LaTeX (con Pandoc e Markdown per la precisione) mi sono accorto di un problema di fondo che mi ha fatto scegliere per un motore specifico di compilazione, ovvero XeLaTeX.
Il problema che ho infatti fin da subito dovuto affrontare è che la versione di “base” di LaTeX non gestisce i caratteri UTF-8 ovvero i caratteri speciali come ad esempio le lettere accentate o ancora peggio caratteri nascosti che, spesso, si copiano involontariamente se si effettua un taglia incolla da PDF o pagine web. Questo da problemi infiniti di compilazione del documento finale.
All’epoca avevo scelto, per pura semplicità, XeLaTeX che, come LuaLaTeX, gestisce nativamente i caratteri UTF-8.
Dovendo utilizzare a-Shell tuttavia ho scelto LuaLaTeX come compilatore perché è l’unico compilatore oltre a LaTeX supportato dall’app.
Di seguito riporto la distinzione più tecnica che trovate in inglese qui ma che per comodità ho tradotto.
Sia LuaTeX che XeTeX sono motori UTF-8 per l'elaborazione di documenti TeX. Ciò significa che l'input (file .tex) può contenere caratteri che con pdfTeX sono difficili da usare direttamente. Entrambi possono anche utilizzare i caratteri di sistema, ancora una volta in contrasto con pdfTeX. Tuttavia, i due sono molto diversi nell'approccio.
XeTeX utilizza librerie specifiche del sistema per funzionare. Ciò significa che è molto facile da usare "pronto all'uso" per caricare i caratteri di sistema e altre attività UTF-8. In effetti, è stato scritto per questo scopo: supportare i linguaggi, ecc., Con cui TeX tradizionale fa fatica. Questo rende un motore facile da usare per gli utenti finali, in particolare se usi il pacchetto fontspec su LaTeX. Tuttavia, poiché le cose sono "affidate" al sistema operativo, c'è un compromesso in termini di flessibilità.
Al contrario, LuaTeX ha obiettivi più grandi. L'idea è di aggiungere un linguaggio di scripting (Lua) a TeX e di aprire le parti interne di TeX a questo linguaggio. Il risultato è che molto è possibile, ma deve essere programmato. C'è un crescente supporto LaTeX per LuaTeX: fontspec v2 lo supporta e nuovi pacchetti vengono scritti per utilizzare più delle nuove funzionalità.
In conclusione
Come anticipato questo è i primo articolo di una serie su come scrivere atti telematici (e non) con LaTeX. Spero di avervi dato una prima introduzione all’argomento ed alle potenzialità di lavoro su tablet così come su Mac di questo flusso di lavoro. Nei prossimi articoli mi addentrerò maggiormente sui funzionamenti e sulle regole di LaTeX.
Da ultimo, se siete incuriositi e volete approfondire con me l’argomento, sto organizzando per ottobre / novembre 2021 un workshop sull’argomentoqui trovate maggiori informazioni.
In questo articolo ti mostro come ho creare con Comandi Rapidi una automazione per incorporare il LaTeX l’elenco dei documenti generato da un LLM locale con Ollama.
Leggi tutto …