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 :
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 :
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.
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]
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
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 :
\setupTABLE hérite de \setupframed donc tout ce qui est valable pour \setupframed l'est également pour \setupTABLE. \setupframed a une option orientation donc tu peux l'utiliser pour ton tableau. D'une manière général si tu veux un entête particulier il faut utiliser \bTABLEhead…\eTABLEhead qui gère l'entête du tableau et \bTABLEbody …\eTABLEbody pour le corps du tableau.