Riepilogo
Questa lezione apre la prima unità del corso, dedicata ai primi passi con LaTeX. Spiega a che cosa serve l’unità: portare chi non ha mai usato LaTeX al punto di scrivere, compilare e correggere da sé un documento breve; presenta le sue quattro lezioni e il filo che le unisce, dall’idea di composizione tipografica fino alla lettura degli errori; precisa il poco che si dà per scontato, cioè la gestione di file e cartelle su un computer; formula il problema che l’unità risolve, quello di passare da un file vuoto a un documento composto e, quando qualcosa non va, dal messaggio del motore alla sua causa; e mostra che lo stesso ciclo serve tanto a una relazione di laboratorio quanto a un saggio di filosofia o all’edizione di un testo latino.
Obiettivi di apprendimento
- Descrivere la sequenza dei contenuti dell’unità e spiegare che cosa ciascuna lezione apporta alla successiva.
- Riconoscere le conoscenze preliminari che l’unità presuppone e preparare il computer di conseguenza, in particolare la visibilità delle estensioni dei file.
- Spiegare, con un esempio, perché un documento LaTeX può non produrre alcun risultato e perché l’errore non sempre viene segnalato dove si trova.
- Riconoscere in altre discipline e nelle unità successive il ciclo di scrivere, compilare e correggere che l’unità costruisce.
Valutazione d’ingresso
Prima di percorrere l’unità conviene misurare il punto di partenza. Questa valutazione è un’autovalutazione: non dà voti, e il suo unico scopo è orientare lo studio. Le sue otto domande toccano, a due a due e in ordine, le quattro lezioni dell’unità; chi non ha mai usato LaTeX non deve aspettarsi di rispondere correttamente, e non importa: ogni risposta, esatta o no, spiega il punto e indica la lezione che lo tratta. Le stesse abilità si misurano di nuovo alla fine, nella lezione di sintesi; poiché questa è la prima unità del corso, non ci sono domande su unità precedenti.
Prima di iniziare l’unità, misura il tuo punto di partenza. È un’autovalutazione breve: non riceve voto e il risultato resta solo nel tuo browser.
Domanda 1Una ricercatrice scrive in italiano un articolo che cita passi in greco politonico, e la rivista richiede un carattere OpenType che lei ha installato sul proprio computer. Con quale motore conviene compilarlo, secondo il criterio di questo corso?
La sua velocità non compensa ciò che non fa: pdfLaTeX non carica direttamente i caratteri OpenType del sistema, e una lettera greca scritta in Unicode ne arresta la compilazione se non si predispongono codifiche e caratteri speciali.Capiscono lo stesso LaTeX, ma differiscono nel modo di leggere il testo e nei caratteri che possono usare; fontspec, che carica il carattere del sistema, richiede XeLaTeX o LuaLaTeX.Texmaker è l’editor, non un motore: vi si scrive il sorgente, ed esso chiama il motore fornito dalla distribuzione installata. La domanda è quale di quei motori debba chiamare.LuaLaTeX scrive il greco direttamente, con i suoi accenti e spiriti, e carica il carattere richiesto con\setmainfont. Anche XeLaTeX andrebbe bene; il corso adotta LuaLaTeX perché tutti i suoi documenti si compilino allo stesso modo.Ripassare: Che cos’è LaTeX
Domanda 2Che cosa stampa la riga
È stato promosso il 70% degli studenti.scritta così com’è nel corpo di un documento?Il segno di percentuale è uno dei caratteri che LaTeX riserva: scritto così com’è, non si stampa, ma fa qualcosa.Un commento non è un errore; per questo la svista è pericolosa: il motore scarta mezza frase senza segnalare nulla, e ce ne si accorge solo leggendo il risultato.Il commento non si limita al segno: comprende tutto ciò che segue fino alla fine della riga.Il segno di percentuale apre un commento: il motore ignora tutto ciò che segue fino alla fine della riga, compreso il ritorno a capo, e non avvisa. Per stampare il segno si scrive\%.Ripassare: Che cos’è LaTeX
Domanda 3La cartella di una tesi contiene
tesi.tex,tesi.aux,tesi.log,tesi.toc,tesi.pdfemappa.png, una figura che la tesi include. Chi è coautore compilerà la tesi sul proprio computer. Qual è il minimo che deve ricevere?I file ausiliari si rigenerano compilando e non servono; un.auxaltrui può persino trascinare riferimenti non aggiornati fino alla compilazione successiva.La figura non la produce la compilazione, ma la usa: senzamappa.pngil motore si arresta perché non trova il file.L’indice si ottiene con una seconda compilazione, e la figura, che invece è indispensabile, è rimasta fuori.Serve esattamente ciò che il motore non può produrre: ciò che l’autore ha scritto o fornito. Gli altri file li rigenera la compilazione.Ripassare: L’ambiente di lavoro
Domanda 4Uno studente corregge il sorgente e compila, ma il PDF che vede nel visualizzatore non cambia. Il file di log termina con la riga
Fatal error occurred, no output PDF file produced!. Quale PDF sta guardando?Questo accade quando il log termina senza errori e il PDF nella cartella reca l’ora dell’ultima compilazione; qui il log dice che non è stato prodotto alcun PDF.Se fosse danneggiato, il visualizzatore non mostrerebbe nulla; mostra invece un documento completo e leggibile, soltanto vecchio.Sarebbe un altro guasto possibile, ma il log lo esclude: dice che non è stato prodotto alcun PDF, sicché non c’è un PDF nuovo.Un errore grave ha arrestato la compilazione prima che scrivesse il risultato; il PDF nella cartella è l’ultimo prodotto con successo, e il visualizzatore lo mostra come se nulla fosse. Bisogna correggere l’errore che il log segnala.Ripassare: L’ambiente di lavoro
Domanda 5Nel corpo di un documento, dopo vari paragrafi, l’autore scrive
\usepackage{amsmath}. Che cosa succede compilando?Così si comportano alcune dichiarazioni, come\setmainfont, che agiscono nel corpo a partire dal punto in cui si scrivono; i pacchetti no.Il motore non riordina il sorgente: lo legge in ordine, e ciò che trova fuori posto lo segnala come errore.È vero che non compone testo, ma ciò permette solo di metterlo prima del corpo; non lo autorizza a stare dentro di esso.Arrivati a\begin{document}, la configurazione si chiude, e un pacchetto caricato dopo potrebbe cambiare decisioni già applicate; per questo i pacchetti si caricano solo nel preambolo.Ripassare: Anatomia di un documento
Domanda 6Nel corpo di un documento compare, scritta così com’è, la frase
Salvare il file come relazione_finale.tex.Che cosa succede compilando?Il trattino basso è uno dei dieci caratteri riservati: scritto così com’è, non si stampa.Questo lo fa il segno di percentuale, che apre un commento; il trattino basso ha un’altra funzione, quella dei pedici.Il motore tenta qualcosa di simile, ma solo dopo aver segnalato l’errore, quando inserisce di sua iniziativa il segno di dollaro che crede mancante; il risultato non è quello voluto.Il trattino basso scrive pedici all’interno delle formule; nel testo, il motore suppone che manchi l’apertura di una formula e lo segnala. Per stamparlo si scrive\_.Ripassare: Anatomia di un documento
Domanda 7Il log di una compilazione contiene l’errore
! Undefined control sequence.e, sotto, la rigal.7 \sectoin. Che cosa indica?Un’istruzione non definita può dipendere da un pacchetto non caricato; ma\sectionnon ne richiede nessuno, e l’istruzione che il log mostra tradisce un refuso nel nome.L’indicazionel.7rimanda al sorgente, che è ciò che si corregge; il log si limita a informare.Il numero è quello di una riga del sorgente, non quello di una sezione del documento.L’errore nomina il guasto, un’istruzione non definita; l’indicazionel.7dà il numero di riga del sorgente, e il testo che la segue termina proprio sull’istruzione sconosciuta.Ripassare: Compilare e correggere gli errori
Domanda 8La compilazione produce il PDF, ma il log contiene la riga
Overfull \hbox (3.21451pt too wide) in paragraph at lines 20--24. Che cosa significa?Gli errori cominciano con un punto esclamativo; questa riga è un avvertimento sulla composizione, e il PDF è valido.I numeri sono righe del sorgente, non pagine del PDF, e ciò che sporge è una riga di testo, non una pagina.La lunghezza del paragrafo non conta: il problema è una sola riga che non si è potuta spezzare bene, e si risolve in essa.Il motore non ha trovato un modo accettabile di spezzare una riga di quel paragrafo, per esempio a causa di una parola lunga che non sa dividere, e l’ha lasciata più larga della gabbia del testo. Il PDF è stato prodotto; conviene guardarvi quel paragrafo e decidere se occorre intervenire.Ripassare: Compilare e correggere gli errori
I contenuti dell’unità
Questa unità serve al primo degli obiettivi del corso, produrre e compilare documenti diagnosticandone e correggendone gli errori, ed è la condizione di tutti gli altri: comporre testi in più lingue e scritture, strutturare documenti lunghi, scrivere matematica e logica, presentare tabelle e figure, gestire la bibliografia e scegliere la classe adatta a ciascun genere accademico presuppongono che il ciclo di scrivere, compilare e correggere non offra più difficoltà. La sua meta è che chi non ha mai usato LaTeX possa, al termine, scrivere un documento breve a partire da un file vuoto, compilarlo con LuaLaTeX in Texmaker o in Overleaf e, quando non compila, trovarne e correggerne da sé la causa. Le sue quattro lezioni formano una catena in cui ciascuna si appoggia alle precedenti.
- Che cos’è LaTeX. Spiega la composizione tipografica, confronta il linguaggio di marcatura con l’elaboratore di testi, racconta l’origine di TeX e di LaTeX e il loro principio di separare il contenuto dalla forma, giustifica la scelta di LuaLaTeX e mostra come un sorgente diventa un PDF. Fissa il lessico di tutta l’unità: sorgente, motore, compilazione, preambolo, corpo e log.
- L’ambiente di lavoro. Installa ciò che la prima lezione ha descritto: una distribuzione di TeX, con il suo gestore di pacchetti, e l’editor Texmaker, configurato per compilare con LuaLaTeX e salvare in UTF-8; presenta Overleaf come alternativa nel browser e spiega quali file lascia la compilazione e quali si conservano. Termina con due documenti di prova che verificano l’installazione.
- Anatomia di un documento. Scompone il sorgente nei suoi pezzi: il preambolo e il corpo, le istruzioni con i loro argomenti, i gruppi che limitano l’ambito delle dichiarazioni, gli ambienti, i dieci caratteri riservati, i commenti, i pacchetti e la classe. Con essa il documento minimo della prima lezione smette di essere una ricetta e diventa una struttura che si capisce pezzo per pezzo.
- Compilare e correggere gli errori. Insegna a leggere il log: distinguere gli errori dagli avvertimenti, localizzare ogni errore nel sorgente, riconoscere i messaggi più frequenti e isolare la causa quando il messaggio non basta. Riunisce quanto precede, perché quasi ogni errore è la violazione di una regola dell’anatomia del sorgente, e la sua diagnosi si appoggia all’ambiente di lavoro.
L’unità termina con la lezione di sintesi e sfide, che raccoglie i risultati in una catena di concetti e procedimenti, ripete nella valutazione d’uscita le abilità della valutazione d’ingresso e propone sfide che combinano più lezioni.
Ciò che si dà per scontato
L’unità parte quasi da zero. Non presuppone di aver usato LaTeX, né di saper programmare, né conoscenze di matematica; non presuppone neppure la conoscenza dell’inglese, benché i messaggi del motore siano in quella lingua, perché il corso spiega ciascuno di quelli che presenta. Presuppone solo l’uso corrente di un computer: creare una cartella, salvare un file con un nome stabilito e in una cartella stabilita, ritrovarlo poi, copiare, spostare ed eliminare file, e installare un programma, oppure disporre di un browser e di un account su Overleaf.
Ne segue un’unica preparazione preliminare, che conviene fare prima della lezione sull’ambiente di lavoro. Il nome di un file consta di una base e di un’estensione, la parte che segue l’ultimo punto: in relazione.tex, la base è relazione e l’estensione tex. Ora, Esplora file di Windows e il Finder di macOS nascondono per impostazione predefinita le estensioni note, cosicché relazione.tex e relazione.pdf appaiono entrambi come relazione, e i file ausiliari della compilazione, che si distinguono solo per l’estensione, diventano indistinguibili. Pertanto conviene attivare l’opzione che mostra le estensioni: in Windows, nel menu Visualizza di Esplora file; in macOS, nelle impostazioni avanzate del Finder. In Linux, i gestori di file le mostrano per impostazione predefinita.
Il problema che l’unità risolve
Chi scrive in un elaboratore di testi vede il risultato man mano che scrive. In LaTeX, tra il sorgente e la pagina c’è un programma che legge il sorgente alla lettera, e il risultato compare solo compilando. Ciò pone due problemi, che sono quelli dell’unità. Il primo è come si passa da un file vuoto a un documento composto: che cosa bisogna installare, che cosa deve contenere come minimo il sorgente e che cosa ne fa il motore. Il secondo è che cosa fare quando il documento non esce, o esce diverso da come lo si voleva: il motore non mostra l’errore sulla pagina, ma lo descrive nel log, in un linguaggio suo, e talvolta lo segnala lontano dal punto in cui è stato commesso. L’esempio seguente mostra entrambi i problemi in un documento di quindici righe.
Il sorgente seguente è un documento completo: dichiara la classe, carica i pacchetti, memorizza il titolo, l’autore e una data vuota, e compone due sezioni. Compilato con LuaLaTeX, produce questo risultato.
\documentclass{article}\usepackage{fontspec}\usepackage[italian]{babel}\title{Relazione di lettura}\author{Anna Rossi}\date{}\begin{document}\maketitle\section{La domanda}Il testo esamina un’\emph{ipotesi} sul 40\% dei casi.\section{La risposta}La risposta si fonda sulla sezione precedente.\end{document}Se nell’undicesima riga si omette la graffa che chiude l’argomento di \emph, il motore non produce alcun PDF, e il log contiene, fra le altre, queste righe.
Runaway argument?{ipotesi sul 40\% dei casi. \par \section {La risposta} La risposta s\ETC.! File ended while scanning use of \emph ....! ==> Fatal error occurred, no output PDF file produced!L’errore non viene segnalato nell’undicesima riga, ma alla fine del file: il motore ha continuato a leggere l’argomento di \emph attraverso il paragrafo, la sezione successiva e \end{document}, finché il file non è terminato. Ora, il log dà l’indizio che manca: la riga che segue «Runaway argument?» riproduce l’argomento fuori controllo dal suo inizio, e quell’inizio, la graffa che precede «ipotesi», è esattamente il luogo dell’errore. Leggere così il log è ciò che insegna la lezione su la compilazione e la correzione degli errori; capire perché una graffa non chiusa trascina con sé tutto ciò che segue è ciò che insegna quella sull’anatomia di un documento.
La risposta dell’unità a questi due problemi ha dunque due parti. Per il primo, un ambiente installato e collaudato, e un sorgente la cui struttura si capisce pezzo per pezzo, cosicché nulla in esso è una formula magica. Per il secondo, un metodo: leggere il log dal primo errore, collocare l’errore nel sorgente, riconoscere la regola violata e, se il messaggio non basta, isolare la causa disattivando parti del sorgente. Nessuna delle due parti richiede di memorizzare istruzioni; entrambe richiedono di leggere il sorgente come lo legge il motore.
L’unità nelle discipline
Il ciclo che l’unità insegna è lo stesso in tutte le discipline, e ciò che cambia dall’una all’altra è soltanto ciò che si scrive. Una relazione di laboratorio di chimica, un saggio di filosofia con un centinaio di note a piè di pagina, un commento a un passo di Cicerone con il testo latino e la sua traduzione, un elaborato di economia con tabelle, una tesi di storia con documenti d’archivio e un articolo di matematica con teoremi cominciano allo stesso modo: una cartella, un file sorgente con il suo preambolo e il suo corpo, una compilazione e la lettura del suo log. Allo stesso modo, gli errori di questa unità, una graffa non chiusa, un carattere riservato scritto così com’è, un pacchetto caricato fuori posto, compaiono in qualunque di quei documenti, senza distinzione di disciplina.
Per questo ciò che l’unità insegna si usa negli altri corsi del sito. Gli elaborati e gli appunti di Logica Aristotelica o di Fondamenti di Meccanica possono essere scritti in LaTeX fin dalla prima settimana; in Analisi dei Dati con R, i risultati di un’analisi si incorporano in un documento composto; e in Programmazione in C++ I il ciclo è, nell’essenziale, lo stesso: si scrive un sorgente, un compilatore lo legge, e i suoi messaggi, che rimandano a numeri di riga, si leggono con il metodo che questa unità insegna.
Dove conduce
Al termine dell’unità il documento minimo sarà un punto di partenza noto, e le unità successive vi costruiranno sopra. La seconda si occuperà del testo stesso: le lingue e le scritture, fra cui il greco e il latino, i caratteri tipografici, le note a piè di pagina e le citazioni lunghe. La terza, della struttura dei documenti lunghi, con i loro capitoli, il loro indice e i loro riferimenti interni, distribuiti in più file. La quarta, della scrittura della matematica e della logica con la notazione corretta; la quinta, delle tabelle e delle figure; la sesta, della bibliografia e delle convenzioni di citazione di ciascuna disciplina; e la settima, delle classi di documento adatte a ciascun genere accademico, dalle presentazioni alle lettere e ai poster. In tutte, ogni nuova istruzione sarà scritta, compilata e, quando fallisce, corretta con ciò che si è imparato in questa.