Vai al menù, saltando i contenuti (access key "m")
TeX e LaTeX
Le tabelle
Le tabelle sono uno degli elementi fondamentali di un testo scientifico. Devono essere chiare e ben composte.
Come si compone una tabella professionale
Deve essere chiara. No filetti verticali. Filetti orizzontali quando necessari, il superiore e inferiore devono essere più spessi. Solitamente la didascalia di una tabella va posta al di sopra di questa e non sotto come si fa con le figure.
Creare tabelle in LaTeX
Una tabella in testo si crea con l'ambiente tabular
o tabular*
.
Il primo crea una tabella normale, il secondo permette di specificare la sua larghezza.
I tipi di allineamenti a a disposizione per le colonne sono paragrafo, centrato, sinistra e destra che si ottengono con p{width},c,l,r. Esiste poi @{...} che serve per eliminare lo spazio tra due colonne e inserire qualcos'altro.
Ecco un esempio di tabella normale
\begin{tabular}{lcr} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ \end{tabular}
Ecco un esempio di tabella con larghezza fissa (nel nostro caso fissata pari alla larghezza della colonna di testo)
\begin{tabular*}{\textwidth}{lcr} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ \end{tabular*}
Per cambiare la spaziatura tra le righe si deve assegnare un nuovo valore alla variabile
\arraystretch
. Questa variabile va a moltiplicare la spaziatura di default tra le righe.
Il suo valore è di default è chiaramente pari a 1.0.
Ecco un esempio che aumenta la spaziatura del 20%
\renewcommand\arraystretch{1.2}
La ridefinizione se fatta nel preambolo ha effetto su tutte le tabelle del documento (sconsigliato). Se lo si vuole applicare tabella per tabella, basta racchiudere il codice tra parentesi graffe o metterla in un ambiente da cui la definizione non possa propagarsi. Esempio:
{ \renewcommand\arraystretch{1.2} \begin{tabular}{lcr} ... \end{tabular} }
Per cambiare la spaziatura fra le colonne bisogna cambiare il valore di \tabcolsep. Nel seguente esempio viene assegnato il valore di 2 mm a tabcolsep.
\setlength{\tabcolsep}{2mm}
Cambiare il valore di tabcolsep è utile soprattutto quando si cerca di fare una tabella larga quanto la colonna del testo. È però preferibile usare una variazione rispetto al valore di default piuttosto che specificare un valore assoluto:
\addtolength{\tabcolsep}{-0.5mm}
In questo modo verrà aggiunta una certa lunghezza a quella di default.
Tabelle mobili
Una tabella mobile invece si crea racchiudendo
l'ambiente tabular
o tabular*
in un ambiente table
o table*
.
L'ambiente table
crea un oggetto flottante che però può essere largo al massimo
quanto la colonna del testo. L'ambiente table*
invece crea un oggetto mobile adatto per
documenti a due colonne che può occupare la larghezza di tutte e due le colonne anziché una sola.
Il pacchetto booktabs
Tra i pacchetti quasi obbligatori c'è booktabs
che migliora la spaziatura tra gli elementi di
tabular
e mette a disposizione, tra gli altri, i comandi \toprule
, \midrule
,
\bottomrule
che servono a sostituire il brutto comando \hrule
(vedere documentazione di booktabs
per ulteriori dettagli).
\toprule[width] \midrule[width] \bottomrule[width] \cmidrule[width](trim){n-m} \heavyrulewidth \lightrulewidth
Esempi
\usepackage{booktabs} ... \begin{table} \caption{Questa è la didascalia.} \label{tab:etichetta} \small % Comando per rimpicciolire tutto il testo della tabella % \renewcommand\arraystretch{1.2} % \addtolength{\tabcolsep}{-0.5mm} \centering % eventuale comando per centrare la tabella \begin{tabular}{cc} \toprule primo numero & secondo numero \\ \midrule 1 & 2 \\ 3 & 4 \end{tabular} \bottomrule \end{figure}
Personalizzare lo stile delle didascalie
Usare il pacchetto caption
.
Il pacchetto array
Il pacchetto array è utile in moltissime circostanze. Estende le funzionalità degli ambienti tabular e array. Definisce nuovi tipi di colonne: m e b. Inoltre definisce due specificatori particolari >{decl} e <{decl} che possono essere usati rispettivamente a sinistra e destra di uno specificatore di colonna e permettono di aggiungere parti di codice rispettivamente all'inizio e alla fine di ogni cella di quella colonna senza scrivere il codice a mano per tutte le celle. Infine migliora l'uso di |, per le linee verticali, e introduce il nuovo comando !{decl} che al posto di una linea verticale ripete decl.
Esistono poi il comando per definire nuovi tipi di colonna, per esempio:
\newcolumntype{C}{>{$}c<{$}} \newcolumntype{L}{>{$}l<{$}} \newcolumntype{R}{>{$}r<{$}} \newcolumntype{e}{@{\extracolsep{\fill}}
Per allargare lo spazio tra le righe: \setlength{\extrarowheight}{1pt}
Righe nelle tabelle: \firsthline, \lasthline che sono regolate dallo spazio \extratabsurround. \setlength{\arrayrulewidth}{5pt} spessore righe.
Tabelle su più pagine
Il pacchetto longtable. L'altro pacchetto, xtab, è meglio lasciarlo perdere. Diffidate anche da tutti gli altri.
Il pacchetto tabularx
Questo pacchetto serve per specificare in maniera migliore rispetto a tabular* la larghezza di una tabella introducento il tipo di colonna X (come p ma senza specificare la larghezza). Solo le colonne di tipo X verranno allargate. Un altro uso è quello di avere alcune o tutte le colonne di una tabella della stessa larghezza. Se si definisce un nuovo tipo di colonna, usando X bisogna mettere anche il comando \arraybackslash.
\newcolumntype{U}{>{\centering\arraybackslash$}X<{$}}
Il pacchetto widetable
Come il pacchetto tabularx ma migliore. Realizzato da Claudio Beccari.
Il pacchetto rotating
Mette a disposizione l'ambiente sidewaystable che serve per ruotare le tabelle di 90° in una pagina nel caso la tabella sia troppo larga.