Vai al contenuto
Topos Uranos

Riepilogo

Questa lezione chiude la quinta unità del corso, dedicata alle tabelle e alle figure. Ricostruisce la catena di principi e meccanismi che va dalla tabella più semplice al disegno con TikZ collocato in una figura, indicando in ogni anello quale principio si usa e in quale lezione si stabilisce; colloca ciò che si è ottenuto rispetto al piano del corso e precisa quali questioni, appena anticipate, restano per le unità successive; ripete nella sua valutazione d’uscita le competenze della valutazione d’ingresso; e termina con sei sfide, di difficoltà superiore a quella dei problemi delle lezioni, che richiedono di combinarne diverse per comporre la tabella di una relazione di laboratorio secondo la norma di una facoltà, diagnosticare un documento che compila senza avvisi e mostra sei difetti, comporre una figura con una fotografia e uno schema disegnato, generare una tabella da un file di dati, rifare un diagramma che non sopravvive al passaggio a due colonne e scegliere l’ambiente di tre tabelle diverse.

Obiettivi di apprendimento

  1. Ricostruire l’ordine dei meccanismi dell’unità, individuando il principio su cui si appoggia ciascuno.
  2. Spiegare perché tanti difetti delle tabelle, delle immagini e degli oggetti mobili compilano senza avvisi, e dove cercarne la traccia nel risultato.
  3. Distinguere ciò che l’unità ha stabilito da ciò che ha solo anticipato e che le unità successive svilupperanno.
  4. Comporre tabelle e figure che combinino cifre allineate, didascalie, nomi, rinvii, sottofigure e disegni, e prevedere che cosa produce un sorgente che li combina.
  5. Scegliere, per ogni tabella, immagine o disegno, l’ambiente, la misura e il luogo che resistono ai cambiamenti del documento.

Ciò che l’unità ha ottenuto

L’unità si è proposta che i dati, le immagini e i disegni di un lavoro si leggano con la stessa chiarezza del testo, si numerino e si rinviino come le sue sezioni ed equazioni, e trovino il loro posto nella pagina senza che l’autore lo fissi a mano. Lo scopo è stato raggiunto appoggiandosi su ciò che l’introduzione ha dichiarato noto dalle unità precedenti: i rinvii, che dipendono da ciò che un’etichetta registra; l’allineamento dell’unità precedente, in cui ogni \\ apre una riga e ogni & separa una cella; e il preambolo con i suoi comandi propri, dove le decisioni si prendono una volta. Con ciò, il cammino percorso si può leggere come un’unica catena in cinque tratti.

Tabelle leggibili

La lezione sulle tabelle leggibili ha applicato al testo il principio dell’allineamento: tabular costruisce una riga per ogni \\ e una cella fra ogni coppia di &, con una lettera di colonna per cella, e l’insieme è una scatola che il motore colloca intera. Dalla regola del conto ha ricavato le sue due classi di errori: quello rumoroso, «Extra alignment tab», che, quando manca un \\, viene segnalato alla riga seguente, e quello silenzioso, la riga con meno celle, che il motore ammette. Ha sostituito la griglia con i tre filetti di booktabs, con \cmidrule accorciato e \addlinespace; ha allineato le cifre sulla virgola con la colonna S di siunitx, il cui table-format riserva uno spazio che un numero più largo supera senza altra traccia che un «Overfull \hbox» nel log, che non nomina la cella, e la cui virgola va dichiarata con \sisetup, perché siunitx non la prende da babel; ha portato le unità nelle intestazioni, fra graffe nelle colonne S; e ha composto testo a bandiera con \raggedright\arraybackslash.

Tabelle complesse e lunghe

La lezione sulle tabelle complesse e lunghe ha esteso la regola del conto a \multicolumn, che occupa il posto di più celle, e ha mostrato che un & iniziale dimenticato sposta un’intestazione raggruppata senza che il motore se ne accorga, perché i filetti parziali dipendono solo dai loro numeri. Ha dato alle tabelle la larghezza della riga con tabularx o con tabular* e \extracolsep{\fill}, e ha scartato \resizebox, che cambia il corpo del carattere; ha distribuito le tabelle lunghe su più pagine con longtable, che ripete le sue intestazioni, numera una sola volta se la continuazione porta \caption[], ha bisogno di un’altra passata per fissare le sue larghezze e perde righe se lo si chiude in table; e ha generato le tabelle da un’unica origine, il file di dati, con csvsimple e pgfplotstable, avvertendo che filecontents* senza overwrite non riscrive il file.

Immagini nel documento

La lezione sulle immagini nel documento ha stabilito che \includegraphics produce una scatola che il motore mette nella riga come una lettera grande, e ne ha dedotto il rientro che fa sporgere un’immagine dalla larghezza della riga, il modo di centrarla e quello di affiancarne due. Ha espresso le dimensioni rispetto a \linewidth, che si adatta al luogo; ha mostrato che larghezza e altezza senza keepaspectratio deformano senza avviso e che le opzioni si applicano nell’ordine scritto; ha distinto i grafici vettoriali, che si esportano in PDF, dalle fotografie, di cui il motore non verifica la risoluzione; e ha studiato la ricerca dei file: senza estensione, il PDF è preferito al PNG senza avviso, e \graphicspath esige graffe doppie.

Figure e tabelle mobili

La lezione sulle figure e le tabelle mobili ha dedotto dalla scatola indivisibile la mobilità: ciò che non si spezza e non entra viene portato dove entra, e perciò vi si rinvia con il suo numero. Ha spiegato gli specificatori come luoghi permessi, l’ampliamento di [h] in [ht], i vuoti di [H] e la figura senza luogo possibile che trattiene le altre; ha composto la didascalia, che numera, annota nell’elenco e va sopra nelle tabelle con la spaziatura del pacchetto caption; ha cambiato «Tabella» in «Tavola» con \setlocalecaption, perché babel annulla il \renewcommand, e ha corretto cleveref con \crefname; ha verificato che caption denuncia l’etichetta messa prima della didascalia; e ha composto sottofigure, figure indipendenti in un solo figure e note di tabella con threeparttable, dopo aver mostrato che \footnote perde il suo testo in un oggetto mobile.

Disegni con TikZ

La lezione sui disegni con TikZ è passata dall’immagine che si inserisce a quella che si scrive. Ha cominciato dal preambolo: i moduli di babel di lingue come lo spagnolo rendono attivo il segno > delle frecce, e senza \usetikzlibrary{babel} la prima freccia produce una cascata di errori. Ha percorso le coordinate cartesiane, polari e relative, con la differenza fra + e ++; i percorsi, le opzioni del tratto e le punte di arrows.meta; i nodi con nome e ancore, collocati gli uni rispetto agli altri con positioning; gli stili di \tikzset e le ripetizioni di \foreach; i diagrammi di varie discipline, il grafico di una funzione, il cui seno si misura in gradi senza avviso, e pgfplots; e ha terminato mettendo il disegno in una figura e confrontando i tre modi di ridurlo.

La figura seguente riunisce i cinque tratti in un’unica catena. Ogni nodo della colonna è un meccanismo o una regola, numerato secondo l’ordine in cui si appoggiano gli uni sugli altri e unito da un arco agli anelli precedenti che usa; attorno fluttuano i sostegni, cioè i principi a cui la catena ricorre di continuo, ciascuno unito da un tratto pieno agli anelli che vi si appoggiano e da uno punteggiato all’anello in cui viene stabilito, salvo quelli stabiliti in unità precedenti, che si disegnano come anelli vuoti. Facendo clic su un sostegno si evidenziano tutti gli anelli che lo usano, e ogni anello rimanda alla lezione in cui si studia.

Sostegni della catena

  • ACiò che registra un’etichetta. Un’etichetta registra l’ultimo numero assegnato prima di essa, all’interno del suo ambiente, senza sapere a che cosa è unita. Si stabilisce nella terza unità. Ammesso senza dimostrazione in questa unità.
  • BUn allineamento è una tabella. Un ambiente di allineamento costruisce una riga per ogni \\ e una cella per ogni tratto fra due &, anche se la riga resta incompleta. Si stabilisce nell’unità precedente. Ammesso senza dimostrazione in questa unità.
  • CDecidere una volta. Ciò che si decide in un solo luogo (un comando o un formato nel preambolo, uno stile, un file di dati) cambia in tutto il documento quando lo si cambia lì; ciò che si copia a mano smette di concordare. Si stabilisce nelle unità precedenti. Ammesso senza dimostrazione in questa unità.
  • DPassate. Il motore annota nei file ausiliari ciò che calcola in una passata, e lo usa nella successiva. Si stabilisce nella prima unità. Ammesso senza dimostrazione in questa unità.
  • ECiò che fa babel in italiano. Il modulo italiano non rende attivo nessuno dei segni che usa TikZ; fissa i suoi nomi all’inizio del documento e non cambia il separatore decimale, mentre altri moduli, come lo spagnolo, rendono attivi < e >. Si stabilisce in parte nell’unità precedente. Ammesso senza dimostrazione in questa unità.
  • FUna scatola non si spezza. Una tabella, un’immagine o un disegno è una scatola che il motore colloca intera, come una lettera grande, e che non si taglia fra due pagine. Stabilito in: 1. Righe e celle.
  • GCiò che è valido non avvisa. Il motore avvisa solo di ciò che non può comporre; un sorgente valido che non dice ciò che l’autore voleva compila senza avvisi, e il difetto si vede solo nel risultato. Stabilito in: 1. Righe e celle.
  • HSpostare e rinviare. Ciò che non si spezza e non entra dove è stato scritto viene portato dove entra; perciò a un oggetto mobile si rinvia con il suo numero, e mai con il suo luogo. Stabilito in: 13. Perché si spostano.
  1. Tratto 1 Tabelle leggibili

    • Scegliere fra tabella, elenco e figura secondo il modo in cui i dati saranno consultati.
    • Comporre una tabella con tabular e i filetti di booktabs, senza griglia.
    • Allineare le cifre sulla virgola decimale con la colonna S.
    • Diagnosticare gli errori di una tabella, anche quelli che non avvisano.
    1. Righe e celle. tabular porta nel testo la regola dell’allineamento: una lettera per colonna, & fra le celle e \\ alla fine della riga; una riga con più celle dà «Extra alignment tab», alla riga seguente se manca il \\, una con meno è valida, e l’insieme è una scatola che non si spezza.

      Si appoggia su: B (Un allineamento è una tabella), F (Una scatola non si spezza), G (Ciò che è valido non avvisa). Dimostrato in: Tabelle leggibili.

    2. Filetti al posto della griglia. Niente linee verticali né doppie: \toprule, \midrule e \bottomrule, \cmidrule con i suoi accorciamenti e \addlinespace; \hline mescolata con essi non dà avviso e lascia due sistemi di linee.

      Usa: 1. Righe e celle. Si appoggia su: G (Ciò che è valido non avvisa). Dimostrato in: Tabelle leggibili.

    3. Cifre sulla virgola. La colonna S allinea sul separatore; table-format riserva lo spazio, e un numero più largo sporge senza altra traccia che un «Overfull \hbox» nel log, che non nomina la cella; \sisetup fissa la virgola, senza la quale siunitx stampa il punto, qualunque cosa dica babel; una virgola delle migliaia copiata dall’inglese si legge come decimale.

      Usa: 1. Righe e celle. Si appoggia su: E (Ciò che fa babel in italiano), G (Ciò che è valido non avvisa), C (Decidere una volta). Dimostrato in: Tabelle leggibili.

    4. Intestazioni e testo. L’unità va una volta nell’intestazione, che in una colonna S va fra graffe; \makecell spezza un’intestazione lunga; la colonna di paragrafo a bandiera porta \raggedright\arraybackslash, e senza \arraybackslash compare «Misplaced \noalign».

      Usa: 3. Cifre sulla virgola, 2. Filetti al posto della griglia. Si appoggia su: B (Un allineamento è una tabella). Dimostrato in: Tabelle leggibili.

  2. Tratto 2 Tabelle complesse e lunghe

    • Raggruppare colonne e contare le celle di ogni riga.
    • Dare a una tabella la larghezza della riga senza ridimensionarla.
    • Distribuire una tabella lunga su più pagine.
    • Generare una tabella dal suo file di dati.
    1. Celle che abbracciano colonne. \multicolumn occupa il posto di più celle, e il conto di una riga non deve superare il preambolo; un & iniziale dimenticato sposta il gruppo senza avviso, perché \cmidrule dipende solo dai suoi numeri; la larghezza in eccesso va all’ultima colonna del gruppo.

      Usa: 1. Righe e celle, 2. Filetti al posto della griglia. Si appoggia su: B (Un allineamento è una tabella), G (Ciò che è valido non avvisa). Dimostrato in: Tabelle complesse e lunghe.

    2. La larghezza della riga. tabularx allarga le sue colonne X, o una L dichiarata con \newcolumntype; tabular* distribuisce il bianco fra le colonne con \extracolsep{\fill}; \resizebox si scarta, perché dà a ogni tabella un altro corpo del carattere.

      Usa: 4. Intestazioni e testo. Si appoggia su: F (Una scatola non si spezza), C (Decidere una volta). Dimostrato in: Tabelle complesse e lunghe.

    3. Tabelle di più pagine. longtable si spezza e ripete le sue intestazioni con \endfirsthead e \endhead; numera con \caption e prosegue con \caption[]; annota le sue larghezze e chiede un’altra passata; dentro table torna a essere una scatola e perde righe.

      Usa: 5. Celle che abbracciano colonne. Si appoggia su: F (Una scatola non si spezza), D (Passate). Dimostrato in: Tabelle complesse e lunghe.

    4. Tabelle dai dati. I dati hanno un’unica origine, il file: csvsimple ne copia il testo e pgfplotstable dà formato ai suoi numeri; filecontents* senza overwrite non riscrive un file esistente e si limita a segnalarlo.

      Usa: 3. Cifre sulla virgola, 7. Tabelle di più pagine. Si appoggia su: C (Decidere una volta), G (Ciò che è valido non avvisa). Dimostrato in: Tabelle complesse e lunghe.

  3. Tratto 3 Immagini nel documento

    • Dimensionare un’immagine rispetto alla riga e prevederne le misure.
    • Scegliere il formato di ogni immagine e verificarne la risoluzione.
    • Nominare, collocare e trovare i file d’immagine.
    • Collocare un’immagine nella riga come un carattere.
    1. L’immagine è una lettera grande. \includegraphics produce una scatola appoggiata sulla linea di base: dopo il rientro, un’immagine di width=\linewidth sporge; per centrarla si centra la riga, e due immagini vanno affiancate se vi entrano.

      Si appoggia su: F (Una scatola non si spezza). Dimostrato in: Immagini nel documento.

    2. Dimensioni e ordine delle opzioni. Le misure relative a \linewidth si adattano al luogo; larghezza e altezza senza keepaspectratio deformano senza avviso; le opzioni si applicano nell’ordine scritto; trim chiede clip, e una pagina inesistente arresta la compilazione.

      Usa: 9. L’immagine è una lettera grande. Si appoggia su: G (Ciò che è valido non avvisa). Dimostrato in: Immagini nel documento.

    3. Formati e risoluzione. I grafici sono vettoriali e si esportano in PDF alla dimensione d’uso; le fotografie sono raster e chiedono circa 300 pixel per pollice, che il motore non verifica; un SVG si converte prima, e un EPS lo converte graphicx.

      Usa: 10. Dimensioni e ordine delle opzioni. Si appoggia su: G (Ciò che è valido non avvisa). Dimostrato in: Immagini nel documento.

    4. Nomi e percorsi. Senza estensione, il motore prova un ordine fisso e usa il PDF prima del PNG, senza avviso; \graphicspath chiede graffe doppie, e con graffe semplici ogni lettera è una cartella; la modalità bozza mostra quale file si è usato.

      Usa: 11. Formati e risoluzione. Si appoggia su: G (Ciò che è valido non avvisa). Dimostrato in: Immagini nel documento.

  4. Tratto 4 Figure e tabelle mobili

    • Spiegare perché una figura è mobile e rinviarvi con il suo numero.
    • Orientare e contenere il luogo degli oggetti mobili.
    • Dare a ogni oggetto mobile la sua didascalia, il suo nome e la sua etichetta.
    • Comporre sottofigure e note dentro una tabella.
    1. Perché si spostano. figure e table portano la scatola dove entra, e si rinvia con il numero; le lettere sono luoghi permessi, [h] si amplia solo in [ht], [H] lascia vuoti, e una figura senza luogo possibile trattiene quelle della sua classe.

      Usa: 1. Righe e celle, 9. L’immagine è una lettera grande. Si appoggia su: F (Una scatola non si spezza), H (Spostare e rinviare). Dimostrato in: Figure e tabelle mobili.

    2. La didascalia. \caption numera, compone e annota nell’elenco, che ha bisogno di un’altra passata, e ammette un titolo breve; va sopra nelle tabelle e sotto nelle figure, e il pacchetto caption ne fissa la spaziatura e il formato per tutto il documento.

      Usa: 13. Perché si spostano. Si appoggia su: D (Passate), C (Decidere una volta). Dimostrato in: Figure e tabelle mobili.

    3. Nome e rinvio. \setlocalecaption{italian}{table}{Tavola} dà «Tavola» alla didascalia, e il titolo dell’elenco esige il proprio, perché babel annulla \renewcommand{\tablename}; cleveref chiede \crefname{table}{tavola}{tavole}; l’etichetta va dopo la didascalia, e con caption quella messa male dà un avviso e due punti interrogativi.

      Usa: 14. La didascalia. Si appoggia su: A (Ciò che registra un’etichetta), E (Ciò che fa babel in italiano). Dimostrato in: Figure e tabelle mobili.

    4. Sottofigure e note. subcaption dà lettere alle parti di una figura, che cleveref chiama «fig. 1b»; le figure indipendenti vanno in minipage dentro un solo figure, mai il contrario; \footnote in un oggetto mobile perde il suo testo senza avviso, e threeparttable unisce la nota alla tabella.

      Usa: 15. Nome e rinvio, 9. L’immagine è una lettera grande. Si appoggia su: H (Spostare e rinviare), G (Ciò che è valido non avvisa). Dimostrato in: Figure e tabelle mobili.

  5. Tratto 5 Disegni con TikZ

    • Preparare il preambolo di un documento per disegnare.
    • Collocare punti con coordinate assolute, polari e relative.
    • Comporre diagrammi con nodi dotati di nome e stili propri.
    • Mettere un disegno in una figura e ridurlo senza perdere il carattere del testo.
    1. TikZ e le scorciatoie di babel. Un modulo che rende attivo il > delle frecce, come lo spagnolo, dà una cascata di errori alla prima freccia, in qualsiasi ordine di caricamento; \usetikzlibrary{babel} lo corregge; senza arrows.meta o senza positioning, i messaggi sono «Unknown arrow tip kind» e «Unknown function of».

      Si appoggia su: E (Ciò che fa babel in italiano). Dimostrato in: Disegni con TikZ.

    2. Coordinate e percorsi. Le coordinate sono cartesiane, polari o relative: ++ sposta il punto di riferimento e + no; un punto e virgola dimenticato si segnala alla riga seguente, e sin(\x) misura l’angolo in gradi senza avviso.

      Usa: 17. TikZ e le scorciatoie di babel. Si appoggia su: G (Ciò che è valido non avvisa). Dimostrato in: Disegni con TikZ.

    3. Nodi e stili. Un nodo è una scatola con nome e ancore; positioning lo colloca rispetto a un altro secondo la distanza fra i bordi, sicché il diagramma si risistema da sé; \tikzset fissa gli stili e \foreach ripete.

      Usa: 18. Coordinate e percorsi. Si appoggia su: F (Una scatola non si spezza), C (Decidere una volta). Dimostrato in: Disegni con TikZ.

    4. Il disegno nella figura. Il disegno è una scatola e va in figure con la sua didascalia e la sua etichetta; scale conserva il carattere, transform shape lo riduce e \resizebox riduce tutto; pgfplots, con compat, chiede la virgola decimale con use comma, perché babel in italiano non la dà.

      Usa: 19. Nodi e stili, 15. Nome e rinvio, 6. La larghezza della riga. Si appoggia su: H (Spostare e rinviare), E (Ciò che fa babel in italiano). Dimostrato in: Disegni con TikZ.

Verso la bibliografia. La catena si ferma dove le tabelle, le immagini e i disegni sono composti, numerati e rinviati: la provenienza dei dati e delle immagini altrui, che qui si è dichiarata a mano in una riga di credito, sarà citata nell’unità successiva da una base bibliografica, con lo stile di ogni disciplina.