Il primo documento in ORG mode
In quest'articolo ti introdurrò la realizzazione del tuo primo documento ORG con Emacs e la sua trasformazione in un prodotto impaginato (in HTML o PDF). Questa è la base di tutto il sistema del flusso di lavoro su cui si basa questo blog. È un passo essenziale da fare.
Passo -1: Installazioni
Per Mac1 tutto quello che c'è bisogno di fare è2:
$ brew install emacs $ brew install mactex
Org Mode è invece già incluso nell'installazione di Emacs (alcuni pacchetti aggiuntivi saranno inclusi dall'interno stesso di Emacs).
Per rendere Emacs un po' più efficace e user-friendly io uso un sottosistema chiamato Prelude ( https://github.com/bbatsov/prelude ). Non è necessario ma potrebbe darti un'esperienza di Emacs un po' più sana e ragionevole di quella di default.
Passo 0: Prendere dimestichezza con Emacs
Emacs è un editor di testi. Non c'è niente di esoterico in questo (quasi). Il modo migliore per comprendere come si usa Emacs è eseguire il tutorial direttamente dall'interno di Emacs (menu Help, prima voce Emacs Tutorial, oppure C-h t[fn: Lo dico qua e poi non lo dico più: C-<lettera> è la combinazione siomultanea di tasti ottenuta premendo contemporaneamente il tasto che, se tutto è configurato bene, sulla tua tastiera dovrebbe essere il Control (CTRL) e insieme la lettera indicata dopo il trattino. Troverai altre combinazioni come s-<lettera> (raro, se ben configurato è lo start sulle tastiere Windows, quello con il simbolo windows, o il tasto option in Mac, quello con le lineette), o M-<lettera> che invece è la combinazione costruita con il tasto alt in Windows o il tasto command sulle tastiere Mac. Quest'ultima combinazione è tanto importante in Mac che esiste un modo alternativo per eseguirla ed è: premere il tasto ESC, rilasciarlo, e poi premere la lettera indicata nella combinazione. Mentre i tasti modificatori (C-, s-, M- possono essere configurati in modo pateticamente atipico, la combinazione ESC-<lettera> non può mai essere cambiata. In certi casi può essere l'ultima risorsa anche perché la combinazione M-x dà accesso a qualsiasi comando di Emacs e quindi può risolvere più o meno qualsiasi situazione).]. Dopo che ti si saranno incrociate un po' le dita premendo le combinazioni di tasti richieste e che sarai arrivato alla fine del tutorial avrai quel tanto di conoscenza da poter usare Emacs abbastanza bene. Fidati.
A quel punto, e solo a quel punto, sei autorizzato a scoprire che invece di alcune combinazioni di tasti che ti vengono insegnate nel tutorial si possono usare normalmente le frecce per andare su e giù e altri tasti di convenienza presenti sulla tua tastiera. Ovviamente il consiglio di ogni buon Emacsiano è di non usarli mai e continuare ad usare le combinazioni di tasti che il tutorial insegna, ma insomma… i tasti freccia stanno lì.
Post Scriptum: se non ti è chiaro dopo il tutorial lo ripeto chiaramate, l'unica combinazione di tasti di cui non puoi fare a meno è C-g che resetta l'editor rispetto all'ultimo comando. Se qualcosa non va, C-g è il tuo miglior amico. Premilo e poi riprova quello che volevi fare.
Fine delle lezioni su Emacs.
Passo 1: Scrivere
Scrivere in ORG mode è così semplice come… scrivere. «No drills, no frills, no needles», non c'è praticamente nulla da imparare. Apri l'editor, crea un file con l'estensione .org, mettilo a tutto schermo e scrivi. Distraction free, come si dice.
Quando hai finito la tua sessione di scrittura, nella quale non di sei preoccupato altro che di scrivere le parole una dietro l'altra, ti puoi preoccupare di vedere come è venuta l'impaginazione.
Chiedi all'ORG-mode di impaginare quello che hai scritto con C-c C-e ti si aprirà un pannello con molte scelte su vari formati di output, quelli che ci possono interessare per adesso sono: HTML, ODT (il formato di OpenOffice che anche Microsoft Word può usare) e PDF.
Proviamo l'HTML con la combinazione h o (quindi in definitiva la combinazione completa è C-c C-e h o[fn:Lo ripeto l'ultima volta: vuol dire premere il control assieme a c, rilasciare, poi control assieme ad e, rilasciare, poi h, rilasciare, e poi o. All'inizio è un po' difficile, ma quando avrai memorizzato la sequenza lo farai tanto velocemente che non ti accorgerai neppure di quello che hai fatto.]). Se tutto è configurato correttamente ti si aprirà il browser e vedrai quello che hai scritto come una (bruttina) pagina internet. In realtà è solo un file sul tuo disco in formato HTML corretto.
Puoi fare lo stesso con C-c C-e l o e ti si aprirà il tuo visualizzatore di PDF predefinito. Qui l'impaginazione è più gradevole perché il LaTeX fa bene il suo lavoro.
Con C-c C-e o O (nota la maiuscola), se hai una delle incarnazioni di OpenOffice (come LibreOffice) o un editor WYSIWYG3 compatibile con il formato ODT ti si aprirà con il testo.
Il punto importante qui è che tu ti sei concentrato sulla scrittura del testo e hai delegato al computer quello dell'impaginazione. Quindi — Prima lezione: l'impaginazione lasciala fare a chi sa farla, non tentare di pasticciare con un programma WYSIWYG tentando di ottenere un risultato sub-ottimo che sembri buono. Concentrati su quello che vuoi dire. Ecco… l'approccio dell'Org-mode non è WYSIWYG ma piuttosto DWIM (Do what I mean, fa quello che io intendo). Per questo motivo, seguendo la lezione del LaTeX e degli altri linguaggi cosiddetti di markup, in ORG è possibile introdurre nella scrittura elementi per significare le cose che si vogliono dire, piuttosto che tentare di rappresentarle. Quindi in ORG se, ad esempio, uno vuole inserire un titolo di paragrafo non dovrà far altro che anteporre un asterisco all'inizio della linea, seguito dal titolo. ORG capirà che quella linea non è testo comune, ma un titolo e lo impaginerà come tale. Se si vuole un livello inferiore di titolo, per una sottosezione di testo allora due asterischi, poi tre e così via. Tutto questo è molto più semplice che pasticciare con mouse e tastiera alla ricerca della combinazione visiva che sembra più adeguata all'occhio ma che, molto probabilmente, non è logicamente quello che dovrebbe essere.
Idem se si vuole indicare un corsivo, un grassetto o un sottolineato, ad esempio. Basta mettere la parola in mezzo a due caratteri speciali (rispettivamente lo slash /, l'asterisco * e l'underscore _). E via dicendo. Il Markup di ORG è molto ricco. Si può imparare sulle pagine del manuale.
Quindi nel testo non dovrai mai occuparti di come verranno rappresentati gli elementi di ciò che scrivi, ma solo di indicare correttamente cosa significano. Lascerai fare questo lavoro al processore. Se poi c'è qualcosa che non ti piace allora interverrai, mai nel testo stesso, ma nelle regole di traduzione.
Seguendo le regole del markup (e quindi studiando il manuale di ORG) è possibile realizzare un documento anche notevolmente sofisticato. Con elementi come:
- titoli delle sezioni
- enfasi
- liste puntate e numerate
- tabelle
- hyperlink
- note a piè pagine
- immagini con didascalie
- esempi, citazioni, blocchi di codice sorgente
- separatori orizzontali
Se il documento di arrivo è un impaginato con LaTeX è anche possibile inserire pezzi di codice LaTeX direttamente all'interno del documento ORG.
Tutte queste cose le imparerai da solo, un po' alla volta, quando ti serviranno.
I documenti ORG possono hanno anche un comodo outline mode ovvero è possibile "chiudere" il contenuto di una sezione lasciando visibile solo il titolo. In questo modo si può vedere a colpo d'occhio tutto un documento e "aprire" solo le sezioni su cui lavorare (con TAB si aprono e chiudono le sezioni).
Proprietà
L'unica cosa importante che devo aggiungere è che alcune proprietà speciali definiscono il titolo, l'autore e la data del documento. Di solito si trovano in testa al documento e sono scritte così:
#+TITLE:Workflow per le pubblicazioni in ORG mode #+AUTHOR:Emmanuele Somma #+DATE:<2021-01-11 Mon>
Queste proprietà saranno usate dai programmi di impaginazione nel modo giusto per riempire i giusti campi nei file realizzati (ad esempio il TITLE finirà nel tag title dell'HEAD in html, dove è giusto che sia, o nel titolo della pubblicazione del PDF e anche nei metadati, ecc. ecc., senza bisogno che tu te ne debba occupare).
Passo 2: Impaginare
Se emacs (e eventualmente LaTeX per ottenere un file PDF) sono correttamente installati si potrà a questo punto impaginare il documento con la combinazione di tasti C-c C-e. Si aprirà un nuovo buffer Emacs denominato Org Export Dispatcher. Con i tasti SPAZIO e CANC ci si sposterà da una pagina all'altra o con C-n (next) o C-p (previous) di una linea su o giù. Tra parentesi quadre la pagina indica le opzioni di impaginazione che sono evidenziate e gerarchizzate (vedi Figura 1). Le opzioni attive sono evidenziate e sono divise in due sezioni. In alto ci sono ci sono gli interruttori che possono essere attivati (ad esempio con C-b si esporterà solo il corpo del documento, senza impaginare titolo o altro, premendo la combinazione di tasti l'interruttore passa da Off a On).
Org Export Dispatcher con le opzioni principali evidenziate
Sotto gli interruttori ci sono i blocchi di comando, ad esempio con h si può impaginare in HTML, ma sarà necessario premere un altro tasto (vedi Figura 2) con cui si decide cosa effettivamente impaginare: con H (maiuscolo) crea l'HTML e verrà semplicemente aperto un buffer emacs con il contenuto; h (minuscolo) creerà il file su disco ma non il buffer invece o (o minuscolo) non solo creerà il file ma lancerà un browser e lo mostrerà come mostrato in Figura 3.
Org Export Dispatcher con le opzioni secondari per l'impaginazione HTML evidenziate
L'opzione p che vedi in Figura 1, tu potresti non averla e dipende dalle mie installazioni aggiuntive, comunque serve per ottenere un file impaginato in modo più gradevole (vedi Figura 4) attraverso un sottosistema chiama pandoc (di cui prima o poi ti parlerò).
Per verificare che con lo stesso file ORG è possibile impaginare in molti modi si può scegliere invece di C-c C-e h O che impagina in HTML, la combinazione C-c C-e l o che impagina in PDF. Il documento prodotto sarà notevolmente differente (vedi Figura 5) e sfrutterà le caratteristiche del sistema di impaginazione specifiche.
Conclusioni
Questa prima sessione di lavoro con ORG ha posto le basi di tutto il sistema del flusso di lavoro. Anche se l'impaginazione che si ottiene potrebbe non essere quella che si desidera e ci sarà ancora un po' di lavoro da fare per giungere ad un risultato definitivo si può notare subito quanto poco si sia dovuto fare per ottenere un risultato sicuramente accettabile. Soprattutto puoi notare come questo sistema, al prezzo di dover imparare qualcosa di nuovo, ti libera dalle pastoie e idiosincrasie dei singoli programmi, in modo da dedicarti specificamente a quello che il tuo principale interesse: scrivere.
In realtà forte di questa convinzione potresti già adottare subito il sistema e lasciare i dettagli a qualcun altro, ma ovviamente se così fosse non avrebbe senso questo blog.
Alcune cose che potrebbero essere fatte a questo punto:
- organizzare il proprio sistema di scrittura in modo coerente
- migliorare l'impaginazione dei formati stampabili
- pubblicare direttamente online quello che si scrive (es. avere un blog)
- costruirsi un sistema di citazioni efficace
Queste solo alcune idee che proverò ad esplorare in futuro. Se ne hai altre, o se hai già le soluzioni per queste scrivimi.
Footnotes:
Se qualche anima pia mi fornisse le istruzioni per realizzare una buona installazione di Emacs e LaTeX per Linux e Windows le aggiungo volentieri
Per installare brew su Mac OS X si possono seguire queste semplicissime istruzioni
WYSIWYG significa What You See Is What You Get, per indicare che sullo schermo del computer otterrai la stessa cosa che avrai in stampa (più o meno). In realtà il WYSIWYG è una inutile chimera.
