Usare le tabelle
della serie: Rest - Pagine di aiuto
Attenzione!
Lavorare con le tabelle in reST non è per deboli di cuore. Nonostante il risultato possa essere più che soddisfacente, è noto che il metodo per ottenerle fa perdere i capelli.
Introduzione
Un trucco per creare tabelle con il reST è quello di tenere presente come la tabella dovrebbe apparire in plain text.
Tabelle semplici
Ciascuna cella della tabella può essere larga una unità (di larghezza) ed alta una unità (di altezza). Non si possono quindi avere celle espanse su più colonne o righe. Tutte le colonne devono avere il contenuto allineato a sinistra ed ogni colonna deve essere spaziata dalla precedente di almeno uno spazio.
Parti della tabella
Una tabella semplice consiste in tre parti:
- I titoli: ciascuna colonna della tabella deve avere un titolo che spiega cosa contiene.
- I simboli di delimitazione: Sono segni di "uguale" (=) che delimitano quanto sono larghe le colonne e quando inizia e finisce la tabella.
- I contenuti delle celle: Il testo che deve apparire nella tabella
Esempio 1: Tabella semplice a due colonne
======== ======== <-- Delimitazione iniziale della tabella Titolo 1 Titolo 2 <-- riga dei titoli ======== ======== <-- Delimitazione del riquadro dei titoli cella 1A cella 2A <-- contenuti delle celle cella 1B cella 2B <-- queste possono essere lunghe quanto si vuole cella 1C cella 2C <-- e devono arrivare fino alla delimitazione finale ======== ======== <-- Delimitazione finale della tabella
che così appare quando viene interpretata:
| Titolo 1 | Titolo 2 |
|---|---|
| cella 1A | cella 2A |
| cella 1B | cella 2B |
| cella 1C | cella 2C |
Esempio 2: Tabella semplice a più colonne
L'esempio successivo mostra tre cose:
- la lunghezza del delimitatore dell'ultima colonna è sufficente sia lungo almeno cinque =.
- Ciascuna colonna tranne l'ultima deve essere larga almeno quanto il contenuto più lungo. (vedi la riga PRIMA sotto)
- Si può notare come l'ultima colonna di destra può essere larga quanto la pagina e che i contenuti della colonna più a destra possono anche andare a capo nella stessa cella. (vedi la riga Terza sotto)
======= ============== ===== stretta colonna larga colonna veramente larga ======= ============== ===== PRIMA Questa è larga Questa è la colonna più larga. Seconda anche questa Si può vedere che questa colonna può sbordare. TERZA e pure questa Si può vedere che l'ultima colonna può estendersi fino a che non si interrompe con un a capo. ======= ============== =====
che viene così interpretata:
| stretta | colonna larga | colonna veramente larga |
|---|---|---|
| PRIMA | Questa è larga | Questa è la colonna più larga. |
| Seconda | anche questa | Si può vedere che questa colonna può sbordare. |
| TERZA | e pure questa | Si può vedere che l'ultima colonna può estendersi fino a che non si interrompe con un a capo. |
Vedi anche il breviario e le specifiche tecniche delle Tabelle semplici.
Esempio 3: Tabella semplice con celle a più righe
Nelle tabelle semplici è possibile introdurre celle con più righe. Gli spazi della prima colonna implicano che nelle colonne successive il testo continua. Per esempio:
========= =========
colonna 1 colonna 2
========= =========
1 Seconda colonna della riga 1.
2 Seconda colonna della riga 2.
Seconda linea del paragrafo.
3 Seconda colonna della riga 3.
Secondo paragrafo della riga 3,
colonna 2
.. Quarta riga di celle
(notare il commento nella prima colonna per forzare una cella
vuota)
========= =========
| colonna 1 | colonna 2 |
|---|---|
| 1 | Seconda colonna della riga 1. |
| 2 | Seconda colonna della riga 2. Seconda linea del paragrafo. |
| 3 | Seconda colonna della riga 3. Seconda paragrafo della riga 3, colonna 2 |
Quarta riga di celle (notare il commento nella prima colonna per forzare una cella vuota) |
Limiti di questo approccio:
- Le celle della prima colonna sono limitate ad una sola riga di testo.
- Le celle della prima colonna devono contenere del testo; Celle vuote causano errore. Un commento vuoto è però sufficente.
Tabelle complesse
Con il reST è possibile realizzare tabelle veramente complesse.
+------------+------------------+--------------------+ | Titolo 1 | Titolo 2 | Titolo 3 | +============+==================+====================+ | riga num 1 | colonna 2 | colonna 3 | +------------+------------------+--------------------+ | riga num 2 | Le celle possono occupare più colonne.| +------------+------------------+--------------------+ | riga num 3 | O allungarsi su | - Oppure | +------------+ più righe. | - contenere | | riga num 4 | | - blocchi. | +------------+------------------+--------------------+
che da:
| Titolo 1 | Titolo 2 | Titolo 3 |
|---|---|---|
| riga num 1 | colonna 2 | colonna 3 |
| riga num 2 | Le celle possono occupare più colonne. | |
| riga num 3 | O allungarsi su più righe. |
|
| riga num 4 | ||
Vedi anche il breviario e le specifiche tecniche delle Tabelle a matrice.
Trucchi per ridurre la complessità delle tabelle
mmmh...
Con il reST è possibile realizzare tabelle veramente complesse.
Sostituzioni nelle tabelle
Il maccanismo della sostituzione può risultare assai comodo per sostituire il contenuto di una intera cella:
+------------+------------------+--------------------+
| Titolo 1 | Titolo 2 | Titolo 3 |
+============+==================+====================+
| riga num 1 | colonna 2 | colonna 3 |
+------------+------------------+--------------------+
| riga num 2 | Le celle possono occupare più colonne.|
+------------+------------------+--------------------+
| riga num 3 | |sostituire| | - Oppure |
+------------+ | - contenere |
| riga num 4 | | - blocchi. |
+------------+------------------+--------------------+
.. |sostituire| sostituisci:: O allungarsi su più righe.
Addirittura qui abbiamo scelto di
scrivere un testo in una direttiva
esterna alla tabella che lo
"sostituisce" dove vogliamo.
che da:
| Titolo 1 | Titolo 2 | Titolo 3 |
|---|---|---|
| riga num 1 | colonna 2 | colonna 3 |
| riga num 2 | Le celle possono occupare più colonne. | |
| riga num 3 | O allungarsi su più righe. Addirittura qui abbiamo scelto di scrivere un testo in una direttiva esterna alla tabella che lo "sostituisce" dove vogliamo. |
|
| riga num 4 | ||
Uno dei problemi maggiori delle tabelle è quanto diventano estese e difficili da usare a video
Quello che segue è un esempio di come sia possibile, con il meccanismo della "sostituzione", inserire delle immagini in una tabella senza farla diventare troppo estesa.
Le prime due delle tabelle che seguono danno il medesimo risultato ma la seconda ha un codice decisamente più contenuto e leggibile.
+-------------------------------------------------------------------------------+-------------------------------------------------------------------+
|mappa e bandiera |carta geografica |
+===============================================================================+===================================================================+
|.. immagine:: http://upload.wikimedia.org/wikipedia/it/9/91/LocationEstonia.png|.. immagine:: http://europa.eu.int/abc/maps/images/members/lith.gif|
+-------------------------------------------------------------------------------+ :width: 400 |
| |bandiera1| | |
+-------------------------------------------------------------------------------+-------------------------------------------------------------------+
+----------------+----------------+
|mappa e bandiera|carta geografica|
+================+================+
| |mappa1| | |carta1| |
+----------------+ |
| |bandiera1| | |
+----------------+----------------+
+----------------+----------------+
|mappa e bandiera|carta geografica|
+================+================+
| |mappa2| | |carta2| |
+----------------+ |
| |bandiera2| | |
+----------------+----------------+
+----------------+----------------+
|mappa e bandiera|carta geografica|
+================+================+
| |mappa3| | |carta3| |
+----------------+ |
| |bandiera3| | |
+----------------+----------------+
.. |mappa1| immagine:: http://upload.wikimedia.org/wikipedia/it/9/91/LocationEstonia.png
.. |carta1| immagine:: http://europa.eu.int/abc/maps/images/members/lith.gif
:width: 400
.. |bandiera1| immagine:: http://upload.wikimedia.org/wikipedia/it/thumb/3/31/185px-Estonia-Bandiera.png
.. |mappa2| immagine:: http://upload.wikimedia.org/wikipedia/commons/c/c5/LocationLatvia.png
.. |carta2| immagine:: http://europa.eu.int/abc/maps/images/members/latvia.gif
:width: 400
.. |bandiera2| immagine:: http://upload.wikimedia.org/wikipedia/it/thumb/8/84/185px-Lettonia-Bandiera.png
.. |mappa3| immagine:: http://upload.wikimedia.org/wikipedia/commons/5/55/LocationLithuania.png
.. |carta3| immagine:: http://europa.eu.int/abc/maps/images/members/estonia.gif
:width: 400
.. |bandiera3| immagine:: http://upload.wikimedia.org/wikipedia/it/thumb/9/92/185px-Lituania-Bandiera.png
risultato :
| mappa e bandiera | carta geografica |
|---|---|
![]() |
![]() |
| mappa e bandiera | carta geografica |
|---|---|
![]() |
![]() |
| mappa e bandiera | carta geografica |
|---|---|
![]() |
![]() |
| mappa e bandiera | carta geografica |
|---|---|
![]() |
![]() |





