Haut
de
page
Table
des
matières
Article
précédant
Article
suivant
Les tableaux complexe avec TABLE

Premier tableau
outes les commandes pour construire un tableau sont des environnements, elles commencent
toutes par un begin (abrégé par b) et s'achève par un end (e). Donc pour créer un tableau tu utilises :
\bTABLE
. . .
\eTABLE
Pour une colonne :
\bTD . . . \eTD
Une ligne par :
\bTR . . . \eTR
Des colonnes à en-tête par :
\bTH . . . \eTH
H pour Head, met le texte de la ligne en gras.
Attention les majuscules sont obligatoires.
Voici un premier tableau :
\bTABLE
\bTR \bTH Français \eTH \bTH Chti \eTH \bTH Anglais \eTH
\bTH Italien \eTH\eTR
\bTR \bTD Pantalon\eTD \bTD Marrone \eTD \bTD Pants \eTD\bTD Pantaloni \eTD \eTR
\bTR \bTD Serpillière\eTD \bTD Wassingue \eTD \bTD Swab \eTD
\bTD Strofinaccio \eTD \eTR
\bTR \bTD Boue\eTD \bTD Berdoule \eTD \bTD Mud \eTD\bTD Fangos \eTD \eTR
\eTABLE

Contrôler la largeur du tableau
Si tu veux que ton tableau occupe toute la largeur de ton texte, tu emploies l'option :
option=stretch
Voici le tableau précédent avec cette option :
\bTABLE[option=stretch]
\bTR \bTH Français \eTH \bTH Chti \eTH \bTH Anglais \eTH \bTH Italien \eTH\eTR
\bTR \bTD Pantalon\eTD \bTD Marrone \eTD \bTD Pants \eTD\bTD Pantaloni \eTD \eTR
\bTR \bTD Serpillière\eTD \bTD Wassingue \eTD \bTD Swab \eTD\bTD Strofinaccio \eTD \eTR
\bTR \bTD Boue\eTD \bTD Berdoule \eTD \bTD Mud \eTD\bTD Fangos \eTD \eTR
\eTABLE

Tu peux contrôler la taille du tableau avec l'option width=
Fusionner les cellules verticalement
Tu utilises l'option [nr=n] où n est le nombre de cellules fusionnées
\bTABLE
\bTR \bTH Couple \eTH \bTH Enfants \eTH \bTH Chien \eTH\bTH Autre \eTH \eTR
\bTR \bTD Robert & Raymonde \eTD \bTD \eTD \bTD Kador \eTD \bTD \eTD\eTR
\bTR \bTD[nr=2] Marcel & Ginette \eTD \bTD Alphonsine \eTD \bTD Pépette \eTD \bTD[nr=2] Raoul, coq nain \eTD\eTR
\bTR \bTD Nordine \eTD \bTD Kiki \eTD \eTR
\bTR \bTD[nr=4] Amaury & Cunégonde \eTD \bTD Amaury Jr \eTD \bTD[nr=4] Foufoune \eTD \bTD Sid, rat \eTD\eTR
\bTR \bTD Sigefroy \eTD \bTD[nr=3] Galant de Semilly, cheval \eTD\eTR
\bTR \bTD Berthe \eTD \eTR
\bTR \bTD Childéric \eTD \eTR
\eTABLE

Comme tu peux le voir tu n'es pas obligé comme avec LaTeX de créer des cellules vides dans les colonnes fusionnées.
Fusionner les cellules horizontalement
Tu utilises l'option [nc=n] où n est le nombre de cellules fusionnées
\bTABLE
\bTR \bTD colonne 1 ligne 1\eTD \bTD[nc=2] c2 l1 et c3 l1 \eTD \eTR
\bTR \bTD colonne 1 ligne 2\eTD \bTD c2 l2 \eTD \bTD c3 l2 \eTD \eTR
\bTR \bTD[nc=3] toutes les cellules fusionnées \eTD \eTR
\eTABLE

Fusionner les cellules horizontalement & verticalement
Voici un exemple repris du manuel de ConTeXt :
\bTABLE
\bTR \bTD[nc=2,nr=2] l1c1 \eTD \bTD l1c3 \eTD \bTD[nr=2] l1c4 \eTD \bTD[nr=2,nc=2] l1c5 \eTD \eTR
\bTR \bTD[nr=2] l2c3 \eTD \eTR
\bTR \bTD[nc=2] l3c1 \eTD \bTD[nc=2] l3c4 \eTD \bTD l3c6 \eTD \eTR
\bTR \bTD l4c1 \eTD \bTD[nc=2] l4c2 \eTD \bTD[nr=2] l4c4 \eTD \bTD[nc=2] l4c5 \eTD \eTR
\bTR \bTD[nr=2,nc=2] l5c1 \eTD \bTD[nr=2] l5c3 \eTD \bTD[nr=2,nc=2] l5c5 \eTD \eTR
\bTR \bTD l6c4 \eTD \eTR
\eTABLE

Configurer le tableau
La configuration d'un tableau ce fait à plusieurs niveaux. Tu peux configurer l'ensemble du
tableau, une seule ou un ensemble de lignes, une seule ou un ensemble de colonnes, ou bien
une seule ou un ensemble de cellules. Tu peux également avoir des options qui s'appliquent à
l'ensemble du tableaux et d'autre à des éléments particuliers.
Configurer tous les tableaux de ton document
Il faut utiliser
\setupTABLE[option1,option2]
que tu places avant le \starttext. Cela ne t'empêche pas de modifier localement un tableau.
Configurer un tableau
Tu as deux possibilités soit à la suite de \bTABLE
\bTABLE[option1,option2,. . .]
Par exemple avec l'option color qui règle la couleur du texte :
\bTABLE[color=red]
\bTR \bTH Français \eTH \bTH Chti \eTH \bTH Anglais \eTH \bTH Italien \eTH\eTR
\bTR \bTD Pantalon\eTD \bTD Marrone \eTD \bTD Pants \eTD\bTD Pantaloni \eTD \eTR
\bTR \bTD Serpillière\eTD \bTD Wassingue \eTD \bTD Swab \eTD\bTD Strofinaccio \eTD \eTR
\bTR \bTD Boue\eTD \bTD Berdoule \eTD \bTD Mud \eTD\bTD Fangos \eTD \eTR
\eTABLE

Soit avec
\setupTABLE[option1,option2]
Que tu places juste après le \bTABLE
\bTABLE
\setupTABLE[option1,option2]
...
\eTABLE
Par exemple :
\bTABLE
\setupTABLE[color=red]
\bTR \bTH Français \eTH \bTH Chti \eTH \bTH Anglais \eTH \bTH Italien \eTH\eTR
\bTR \bTD Pantalon\eTD \bTD Marrone \eTD \bTD Pants \eTD\bTD Pantaloni \eTD \eTR
\bTR \bTD Serpillière\eTD \bTD Wassingue \eTD \bTD Swab \eTD\bTD Strofinaccio \eTD \eTR
\bTR \bTD Boue\eTD \bTD Berdoule \eTD \bTD Mud \eTD\bTD Fangos \eTD \eTR
\eTABLE
Tu obtiens le même résultat que l'image précédente.
La première méthode est à réservée pour les configurations qui concernent peu d'éléments. La deuxième est préférable d'autant qu'il est possible d'utiliser plusieurs \setupTABLE, ce qui permet de structurer ta configuration. Tu peux par exemple avoir un \setupTABLE pour gérer les filet, un autre pour le texte, un pour les espaces, ou la couleur. . .
Un exemple avec les options color et rulethickness qui règle l'épaisseur des filets.
\bTABLE
\setupTABLE[color=red,rulethickness=3pt]
\bTR \bTH Français \eTH \bTH Chti \eTH \bTH Anglais \eTH \bTH Italien \eTH\eTR
\bTR \bTD Pantalon\eTD \bTD Marrone \eTD \bTD Pants \eTD\bTD Pantaloni \eTD \eTR
\bTR \bTD Serpillière\eTD \bTD Wassingue \eTD \bTD Swab \eTD\bTD Strofinaccio \eTD \eTR
\bTR \bTD Boue\eTD \bTD Berdoule \eTD \bTD Mud \eTD\bTD Fangos \eTD \eTR
\eTABLE
et
\bTABLE
\setupTABLE[color=red]
\setupTABLE[rulethickness=3pt]
\bTR \bTH Français \eTH \bTH Chti \eTH \bTH Anglais \eTH \bTH Italien \eTH\eTR
\bTR \bTD Pantalon\eTD \bTD Marrone \eTD \bTD Pants \eTD\bTD Pantaloni \eTD \eTR
\bTR \bTD Serpillière\eTD \bTD Wassingue \eTD \bTD Swab \eTD\bTD Strofinaccio \eTD \eTR
\bTR \bTD Boue\eTD \bTD Berdoule \eTD \bTD Mud \eTD\bTD Fangos \eTD \eTR
\eTABLE
donne le même résultat :

Configurer une ligne
Tu ajoutes la ou les options à \bTR
\bTR[option1,option2]
Par exemple :
\bTABLE
\bTR \bTH Français \eTH \bTH Chti \eTH \bTH Anglais \eTH \bTH Italien \eTH\eTR
\bTR[color=red] \bTD Pantalon\eTD \bTD Marrone \eTD \bTD Pants \eTD\bTD Pantaloni \eTD \eTR
\bTR \bTD Serpillière\eTD \bTD Wassingue \eTD \bTD Swab \eTD\bTD Strofinaccio \eTD \eTR
\bTR \bTD Boue\eTD \bTD Berdoule \eTD \bTD Mud \eTD\bTD Fangos \eTD \eTR
\eTABLE

Configurer une cellule
Tu ajoutes la ou les options à \bTD
\bTD[option1,option2]
Par exemple :
\bTABLE
\bTR \bTH Français \eTH \bTH Chti \eTH \bTH Anglais \eTH \bTH Italien \eTH\eTR
\bTR \bTD[color=red] Pantalon\eTD \bTD Marrone \eTD \bTD Pants \eTD\bTD Pantaloni \eTD \eTR
\bTR \bTD Serpillière\eTD \bTD Wassingue \eTD \bTD Swab \eTD\bTD[color=red] Strofinaccio \eTD \eTR
\bTR \bTD Boue\eTD \bTD Berdoule \eTD \bTD Mud \eTD\bTD Fangos \eTD \eTR
\eTABLE

Tu peux mélanger toutes les méthodes précédentes pour obtenir le résultat désiré mais les réglages les plus fins s'obtiennent avec \setupTABLE qui possède d'autre possibilité.
Les réglages de \setupTABLE
Configurer une ou des ligne(s)
\setupTABLE[row][n][option1,option2]
-
row ligne en anglais que tu peux abréger en [r]
-
[n] peut prendre plusieurs valeurs. Tout d'abord le numéro de la ligne que tu veux modifier. Si tu veux en affecter plusieurs tu sépares leur numéro par une virgule : [3] modifie la troisième ligne et [ 2,7,8] affecte les deuxième, septième et huitième.
-
[r][first] : modifie la première ligne.
-
[r][last] : modifie la dernière ligne.
-
[r][odd] : modifie toutes les lignes impaires.
-
[r][even] : modifie toutes les lignes paires.
-
[r][each] : modifie toutes les lignes.
Configurer une ou des colonne(s)
C'est le même principe que pour les lignes, avec [column] abrégé en [c] et les mêmes options.
\setupTABLE[c][n][option1,option2]
-
[n] peut prendre plusieurs valeurs. Tout d'abord le numéro de la colonne que tu veux modifier. Si tu veux en affecter
plusieurs tu sépares leur numéro par une virgule : [3] modifie la troisième colonne et [2,7,8] affecte les deuxième, septième et huitième.
-
[c][first] : modifie la première colonne.
-
[c][last] : modifie la dernière colonne.
-
[c][odd] : modifie toutes les colonnes impaires.
-
[c][even] : modifie toutes les colonnes paires.
-
[r][each] : modifie toutes les colonnes.
Configurer une cellule
Chaque cellule d'un tableau est identifiée par son numéro de colonne et son numéro de ligne.
Tu peux la configurer par :
\setupTABLE[numéro de colonne][numéro de ligne][option1,option2]
Par exemple :
\bTABLE
\setupTABLE[3 ][ 2][color=red]
\bTR \bTH Français \eTH \bTH Chti \eTH \bTH Anglais \eTH \bTH Italien \eTH\eTR
\bTR \bTD Pantalon\eTD \bTD Marrone \eTD \bTD Pants \eTD\bTD Pantaloni \eTD \eTR
\bTR \bTD Serpillière\eTD \bTD Wassingue \eTD \bTD Swab \eTD\bTD Strofinaccio \eTD \eTR
\bTR \bTD Boue\eTD \bTD Berdoule \eTD \bTD Mud \eTD\bTD Fangos \eTD \eTR
\eTABLE

Tu peux également utiliser first et last
\setupTABLE[first][last][option1,option2]
Applique les options à la première colonne (cellule) de la dernière ligne.
\setupTABLE[last][2,5][option1,option2]
Applique les options à la dernière colonne (cellule) des lignes 2 et 5.
Les options de configuration
L'alignement du texte
C'est l'option align qui peux prendre les valeurs :
-
left pour aligner le texte à gauche ;
-
middle pour aligner le texte au centre ;
-
right pour aligner à droite ;
-
lohi permet de centrer verticalement le contenu de la cellule.
Si tu utilises deux valeurs, tu les encadre de { }. Par exemple pour centrer le contenu horizontalement et verticalement :
align={middle,lohi}
Par exemple :
\bTABLE[align={middle,lohi}]
\bTR \bTH Couple \eTH \bTH Enfants \eTH \bTH Chien \eTH\bTH Autre \eTH \eTR
\bTR \bTD Robert & Raymonde \eTD \bTD \eTD \bTD Kador \eTD \bTD \eTD\eTR
\bTR \bTD[nr=2] Marcel & Ginette \eTD \bTD Alphonsine \eTD \bTD Pépette \eTD \bTD[nr=2] Raoul, coq nain \eTD\eTR
\bTR \bTD Nordine \eTD \bTD Kiki \eTD \eTR
\bTR \bTD[nr=4] Amaury & Cunégonde \eTD \bTD Amaury Jr \eTD \bTD[nr=4] Foufoune \eTD \bTD Sid, rat \eTD\eTR
\bTR \bTD Sigefroy \eTD \bTD[nr=3] Galant de Semilly, cheval \eTD\eTR
\bTR \bTD Berthe \eTD \eTR
\bTR \bTD Childéric \eTD \eTR
\eTABLE

La largeur et la hauteur des cellules
-
width=dimension : règle la largeur des colonnes.
-
height=dimension : règle la hauteur des lignes.
Les traits
-
frame=on/off : par défaut frame vaut on et donc un cadre entoure la cellule.
-
topframe=on/off : dessine ou non le trait du haut de la cellule.
-
bottomframe=on/off : dessine ou non le trait du bas de la cellule.
-
leftframe=on/off : dessine ou non le trait de gauche de la cellule.
-
rightframe=on/off : dessine ou non le trait de droite de la cellule.
-
rulethickness=dimension : l'épaisseur des traits entourant la cellule.
Pour pouvoir utiliser topframe, bottomframe,leftframe et rightframe il faut au préalable mettre frame=off.
La couleur
Les options pour la couleur dans un tableau sont :
- color=nom de la couleur : colorie le texte ;
- background=color : Attention c'est le mot color et pas le nom de la couleur, c'est en gros un commutateur qui passe le tableau en mode couleur. On verra plus tard que background peut prendre d'autre valeur ;
-
backgroundcolor=nom de la couleur : ici tu indiques la couleur de fond de la cellule ;
-
framecolor=nom de la couleur : la couleur des filets.
Pour utiliser des niveaux de gris :
background=screen
et
backgroundscreen=nombre
avec nombre compris entre 0 (noir) et 1 (blanc), donc 0.25 donnera un gris foncé et 0.85 un gris clair.
Changer de fonte
Tu peux également employer des commandes comme : style=\tfx\it
Longs tableaux, sur plusieurs pages
Pour créer un tableau s'étalant sur plusieurs page il faut diviser ton tableau en plusieurs parties :
\bTABLEhead . . . \eTABLEhead
Qui contient l'entête de ton tableau, attention il faut mettre des \bTH
\bTABLEnext . . . \bTABLEnext
Un entête alternatif qui n'est pas obligatoire et qui remplace l'entête sur les pages suivantes, attention il faut mettre des \bTH
\bTABLEbody . . . \bTABLEbody
Le corps de ton tableau
\bTABLEfoot . . . \bTABLEfoot
Un pied de tableau qui n'est pas obligatoire. Enfin il faut ajouter l'option :
\setupTABLE[split=yes%]
Pour te monter comment ça marche j'ai créé une petite page de 15cm de large sur 8 cm de haut sur laquelle j'ai mis mon tableau.
Voici le code complet :
\mainlanguage[fr]
\definepapersize[exemple][width=15cm,height=8cm]
\setuppapersize[exemple][exemple]
\setuppagenumbering[location={footer,right}]
\setupheader[state=empty]
\usetypescript[heros]
\setupbodyfont[heros,16pt]
\starttext
\setupTABLE[r][each][ align=center]
\setupTABLE[r][first] [background=color,backgroundcolor=red]
\bTABLE[split=yes,option=stretch]
\bTABLEhead
\bTR \bTH Nom \eTH \bTH Caractéristique \eTH\eTR
\eTABLEhead
\bTABLEbody
\bTR \bTC Robert \eTC \bTC Le plus vert \eTC \eTR
\bTR \bTC Ginette \eTC \bTC La plus chouette \eTC\eTR
\bTR \bTC Annie \eTC \bTC Qui aime les sucettes \eTC\eTR
\bTR \bTC Hervé \eTC \bTC Le plus énervé \eTC\eTR
\bTR \bTC Roland \eTC \bTC Le plus lent \eTC\eTR
\bTR \bTC Marius \eTC \bTC Un sacré olibrius \eTC\eTR
\bTR \bTC Léon \eTC \bTC Qui joue du bandonéon \eTC\eTR
\bTR \bTC Cunégonde \eTC \bTC Une sacrée blonde \eTC\eTR
\bTR \bTC Armand \eTC \bTC Le plus charmant \eTC\eTR
\bTR \bTC Roberte \eTC \bTC Elle est experte \eTC\eTR
\eTABLEbody
\eTABLE
\stoptext

Si tu veux que l'entête se répète sur toutes les pages il faut mettre
\setupTABLE[split=repeat]
Dans ce cas ce qui se trouve entre \bTABLEhead . . . \eTABLEhead sera répété sur toutes les pages sauf si tu as précisé une \bTABLEnext . . . \bTABLEnext alors sur la première page tu as l'entête et sur toutes les suivante l'entête alternatif. La dernière ligne du tableau (sur la dernière page) contient le pied de tableau si tu as renseigné \bTABLEfoot . . . \bTABLEfoot.
\mainlanguage[fr]
\definepapersize[exemple][width=15cm,height=8cm]
\setuppapersize[exemple][exemple]
\setuppagenumbering[location={footer,right}]
\setupheader[state=empty]
\usetypescript[heros]
\setupbodyfont[heros,16pt]
\starttext
\setupTABLE[r][each][ align=center]
\setupTABLE[r][first][background=color,backgroundcolor=red]
\setupTABLE[r][last][style=bold,background=color,backgroundcolor=yellow]
\bTABLE[split=repeat,option=stretch]
\bTABLEhead
\bTR \bTH Nom \eTH \bTH Caractéristique \eTH\eTR
\eTABLEhead
\bTABLEnext
\bTR [background=color,backgroundcolor=green]
\bTH Nom (suite) \eTH \bTH Caractéristique (suite) \eTH\eTR
\eTABLEnext
\bTABLEbody
\bTR \bTC Robert \eTC \bTC Le plus vert \eTC \eTR
\bTR \bTC Ginette \eTC \bTC La plus chouette \eTC\eTR
\bTR \bTC Annie \eTC \bTC Qui aime les sucettes \eTC\eTR
\bTR \bTC Hervé \eTC \bTC Le plus énervé \eTC\eTR
\bTR \bTC Roland \eTC \bTC Le plus lent \eTC\eTR
\bTR \bTC Marius \eTC \bTC Un sacré olibrius \eTC\eTR
\bTR \bTC Léon \eTC \bTC Qui joue du bandonéon \eTC\eTR
\bTR \bTC Cunégonde \eTC \bTC Une sacrée blonde \eTC\eTR
\bTR \bTC Armand \eTC \bTC Le plus charmant \eTC\eTR
\bTR \bTC Roberte \eTC \bTC Elle est experte \eTC\eTR
\eTABLEbody
\bTABLEfoot
\bTR \bTH Nom (fin) \eTH \bTH Caractéristique (fin) \eTH\eTR
\eTABLEfoot
\eTABLE
\stoptext

Distance entre deux colonnes
Elle se règle avec l'option distance
\setupTABLE[distance=longueur]
\setupTABLE[distance=3em]
\bTABLE
\bTR \bTH Français \eTH \bTH Chti \eTH \bTH Anglais \eTH \bTH Italien \eTH\eTR
\bTR \bTD Pantalon\eTD \bTD Marrone \eTD \bTD Pants \eTD\bTD Pantaloni \eTD \eTR
\bTR \bTD Serpillière\eTD \bTD Wassingue \eTD \bTD Swab \eTD\bTD Strofinaccio \eTD \eTR
\bTR \bTD Boue\eTD \bTD Berdoule \eTD \bTD Mud \eTD\bTD Fangos \eTD \eTR
\eTABLE

Tu peux préciser une distance à droite et à gauche du tableau. Dans l'exemple suivant j'ai encadré le tableau d'un cadre rouge pour une meilleur compréhension :
\framed[offset=none,framecolor=red]{
\setupTABLE[distance=2cm,,leftmargindistance=1cm,rightmargindistance=.5cm]
\bTABLE
\bTR \bTH Français \eTH \bTH Chti \eTH \bTH Anglais \eTH \eTR
\bTR \bTD Pantalon\eTD \bTD Marrone \eTD \bTD Pants \eTD \eTR
\bTR \bTD Serpillière\eTD \bTD Wassingue \eTD \bTD Swab \eTD \eTR
\bTR \bTD Boue\eTD \bTD Berdoule \eTD \bTD Mud \eTD \eTR
\eTABLE}




Si tu veux aller directement à l'article suivant ou précédant regarde bien dans les marges j'ai mis des liens pour cela. Il est pas balèze le Bébert ?