L'environnement tabulate permet de créer des tableaux peu complexe intégrés au texte, sa syntaxe est proche de celle des tableaux sous LaTeX.
\starttabulate[ ] . . . \stoptabulate
Les colonnes sont délimitées par | et l'alignement du texte est défini par c (centré), l (aligné à gauche, left) et r (aligné à droite, right)
\starttabulate[|l|r|c|] . . . \stoptabulate
\HL trace un trait horizontal ;
\NC délimite une colonne (une cellule) ;
\NR débute une nouvelle ligne.
\starttext \starttabulate[|r|l|] \HL \NC {\bf Nom} \NC {\bf Caractéristique} \NC\NR \HL \NC Robert \NC Le plus vert \NC\NR \NC Ginette \NC La plus chouette \NC\NR \NC Raymond \NC Le plus con \NC\NR \NC Roland \NC Le plus lent \NC\NR \HL \stoptabulate \stoptext
D'autres alignements du texte sont possibles.
Aux trois précédents alignements c, l et r, s'ajoute :
w(taille) qui crée une colonne sur une seule ligne de dimension = taille. Si ta colonne est trop petite ton texte débordera ;
p(taille) qui produit une colonne s'étalant sur plusieurs lignes (paragraphe) et de dimension = taille. Si tu ne précises pas de taille, la colonne s'étalera au maximum sur la place disponible ;
\starttext \starttabulate[|w(4cm)|p(6cm)|] \HL \NC {\bf Nom} \NC {\bf N'importe quoi} \NC\NR \HL \NC Robert \NC Thus, I came to the conclusion that the designer of a new system must not only be the implementer and first large--scale user; the designer should also write the first user manual.\NC\NR \NC Ginette\NC The separation of any of these four components would have hurt TEX significantly.\NC\NR \NC Raymond \NC Once the initial design is complete and fairly robust, the real test begins as people with many different viewpoints undertake their own experiments.\NC\NR \HL \stoptabulate \stoptext
\starttext \starttabulate[|w(4cm)|p|] \HL \NC {\bf Nom} \NC {\bf N'importe quoi} \NC\NR \HL \NC Robert \NC Thus, I came to the conclusion that the designer of a new system must not only be the implementer and first large--scale user; the designer should also write the first user manual.\NC\NR \NC Ginette\NC The separation of any of these four components would have hurt TEX significantly.\NC\NR \NC Raymond \NC Once the initial design is complete and fairly robust, the real test begins as people with many different viewpoints undertake their own experiments.\NC\NR \HL \stoptabulate \stoptext
Tu peux combiner les différentes options :
\starttext \starttabulate[|cw(4cm)|rp|] \HL \NC {\bf Nom} \NC {\bf N'importe quoi} \NC\NR \HL \NC Robert \NC Thus, I came to the conclusion that the designer of a new system must not only be the implementer and first large--scale user; the designer should also write the first user manual.\NC\NR \NC Ginette\NC The separation of any of these four components would have hurt TEX significantly.\NC\NR \NC Raymond \NC Once the initial design is complete and fairly robust, the real test begins as people with many different viewpoints undertake their own experiments.\NC\NR \HL \stoptabulate \stoptext
Voilà tu en sais assez pour utiliser tabulate dans la majorité des cas. Si tu veux faire des choses plus complexe il vaut mieux utiliser TABLE. Mais bon Hans Hagen à quand même prévu d'autres petites choses.
Type de colonnes
Voici d'autre type de colonnes :
Changer la fonte
B met le contenu de la colonne en gras ;
I met le contenu de la colonne en italique ;
S met le contenu de la colonne en penché ;
T met le contenu de la colonne en machine à écrire ;
R met le contenu de la colonne en roman ;
\starttext \starttabulate[|B|T|] \HL \NC Nom \NC {\bf Caractéristique}\NC\NR \HL \NC Robert \NC Le plus vert \NC\NR \NC Ginette \NC La plus chouette \NC\NR \NC Raymond \NC Le plus con \NC\NR \NC Roland \NC Le plus lent \NC\NR\HL \stoptabulate \stoptext
Tu peux combiner plusieurs caractéristiques
\starttext \starttabulate[|cIw(6cm)|Rr|] \HL \NC Nom \NC {\bf Caractéristique}\NC\NR \HL \NC Robert \NC Le plus vert \NC\NR \NC Ginette \NC La plus chouette \NC\NR \NC Raymond \NC Le plus con \NC\NR \NC Roland \NC Le plus lent \NC\NR\HL \stoptabulate \stoptext
Mode mathématique
Là je te laisse essayer tout seul, j'ai arrêté les maths en terminal, çà fait un bail.
m l'équivalent de $. . .$
M l'équivalent de \startformula . . . \stopformula
n ou q des nombres ;
N ou Q des nombres mathématiques.
Ajouter un espace horizontal
Il est possible d'augmenter l'espace à gauche, à droite et des 2 côtés entre le texte et le bord de la colonne à l'aide des types de colonnes suivant :
in à gauche ;
jn à droite ;
kn à gauche et à droite ;
où n est un nombre (coefficient multiplicateur). La valeur par défaut de l'espace entre le texte et le bord de la colonne est de 0,5em.
\starttext \starttabulate[|li3|rj5|]? \HL \NC Nom \NC {\bf Caractéristique}\NC\NR? \HL \NC Robert \NC Le plus vert \NC\NR? \NC Ginette \NC La plus chouette \NC\NR \NC Raymond \NC Le plus con \NC\NR? \NC Roland \NC Le plus lent \NC\NR?\HL? \stoptabulate \stoptext
Tu peux modifier la valeur de l'espace par défaut (0,5em) avec \setuptabulate[unit=dimension]
Avec :
\setuptabulate[unit=1cm]
Le tableau ci-dessus devient :
Modifier encore la fonte
Si les commandes vue précédemment ne te suffise pas tu peux utiliser ceci :
f{\commande}
où \commande est une commande de changement de fonte (dans les anciennes versions de ConTeXt les {} n'étaient pas nécessaires mais depuis la version de ConTeXt livrée avec la TeXlive2012 elles sont indispensable). Un exemple :
f{\tfxx}
Ceci ne suffit pas il faut aussi encadrer de {} le texte des cellules concernées et utiliser \HC au-lieu de \NC pour déclarer la cellule :
\starttext \starttabulate[|lf{\tfxx}|rf{\tfd}|] \HL \NC Nom \NC {\bf Caractéristique}\NC\NR \HL \HC{Robert} \HC{Le plus vert} \NC\NR \HC{Ginette} \HC{La plus chouette} \NC\NR \HC{Raymond} \HC{Le plus con} \NC\NR \HC{Roland} \HC{Le plus lent} \NC\NR\HL \stoptabulate \stoptext
Appliquer une commande
Dans le même principe que ci-dessus
h{\commande}
permet d'appliquer une commande ConTeXt, dans l'exemple suivant \framed qui dessine un cadre autour de l'objet :
\starttext \starttabulate[|lh{\framed}|r|] \HL \NC Nom \NC {\bf Caractéristique}\NC\NR \HL \HC{Robert} \NC Le plus vert \NC\NR \HC{Ginette} \NC La plus chouette \NC\NR \HC{Raymond} \NC Le plus con \NC\NR \HC{Roland} \NC Le plus lent \NC\NR\HL \stoptabulate \stoptext
\starttext \starttabulate[|l|a{)}b{(}r|] \HL \NC Nom \NC {\bf Caractéristique}\NC\NR \HL \HC{Robert} \NC Le plus vert \NC\NR \HC{Ginette} \NC La plus chouette \NC\NR \HC{Raymond} \NC Le plus con \NC\NR \HC{Roland} \NC Le plus lent \NC\NR\HL \stoptabulate \stoptext
Aligner le texte des cellules par rapport à un élément
Par exemple pour aligner les chiffres d'une cellule sur la décimale : g{,} en France et g{.} en Angleterre. Il faut aussi utiliser \NG :
Remarque l'utilisation de \overbar{ } pour ajouter un trait pour l'addition (Attention il faut utiliser \NC et non \NG.
Tu peux aligner sur ce que tu veux par exemple sur un e:
\starttext \starttabulate[|lg{e}|l|] \HL \NC Nom \NC {\bf Caractéristique}\NC\NR \HL \HC{Robert} \NC Le plus vert \NC\NR \HC{Ginette} \NC La plus chouette \NC\NR \HC{Annie} \NC Qui aime les sucettes \NC\NR \HC{Hervé} \NC Le plus énervé \NC\NR\HL \stoptabulate \stoptext
D'autre type de séparateur de cellule
\EQ permet de séparer les cellules avec un symbole, deux points : par défaut :
\starttext \starttabulate[|l|l|] \HL \NC Nom \NC {\bf Caractéristique}\NC\NR \HL \NC Robert \EQ Le plus vert \NC\NR \NC Ginette \EQ La plus chouette \NC\NR \NC Raymond \EQ Le plus con \NC\NR \NC Roland \EQ Le plus lent \NC\NR\HL \stoptabulate \stoptext
Comme tu peux le voir les : sont un peu trop collés à Raymond, donc l'utilisation d'un jn sera utile :
\starttext \starttabulate[|lj1|l|]\HL \NC Nom \NC {\bf Caractéristique}\NC\NR \HL \NC Robert \EQ Le plus vert \NC\NR \NC Ginette \EQ La plus chouette \NC\NR \NC Raymond \EQ Le plus con \NC\NR \NC Roland \EQ Le plus lent \NC\NR\HL \stoptabulate \stoptext
Tu peux également utiliser le type de colonne e qui produit le même effet pour tous les élément de la colonne, entête compris (pas forcement très bien venu dans notre exemple).
\starttext \starttabulate[|lej1|l|] \HL \NC Nom \NC {\bf Caractéristique}\NC\NR \HL \NC Robert \NC Le plus vert \NC\NR \NC Ginette \NC La plus chouette \NC\NR \NC Raymond \NC Le plus con \NC\NR \NC Roland \NC Le plus lent \NC\NR\HL \stoptabulate \stoptext
Tu peux modifier le : à l'aide de :
\setuptabulate[EQ={texte}]
par exemple avec =
\setuptabulate[EQ={=}] \starttext \starttabulate[|lj1|l|]? \HL \NC Nom \NC {\bf Caractéristique}\NC\NR? \HL \NC Robert \EQ Le plus vert \NC\NR \NC Ginette \EQ La plus chouette \NC\NR \NC Raymond \EQ Le plus con \NC\NR \NC Roland \EQ Le plus lent \NC\NR\HL \stoptabulate \stoptext
Si tu veux utiliser à la foi une commande avec h{\commande} et un séparateur de colonne comme : ou = tu dois utiliser \HQ comme début de cellule
Traits verticaux
\VL permet de tracer un trait vertical séparant les cellules :
\setuptabulate[EQ={=}] \starttext \starttabulate[|l|l|]?\HL \NC Nom \NC {\bf Caractéristique}\NC\NR? \HL \NC Robert \VL Le plus vert \NC\NR \NC Ginette \NC La plus chouette \NC\NR \NC Raymond \VL Le plus con \NC\NR \NC Roland \VL Le plus lent \NC\NR\HL \stoptabulate \stoptext
Là encore l'utilisation de n jn ou de n in est nécessaire. Je te rappelle que tabulate est fait pour des tableaux simples et si tu veux des filets verticaux il vaut mieux utliser d'autre environnement de tableaux.
Modifier la taille des filets horizontaux
Tu utilises une option de \setuptabulate
\setuptabulate[rulethickness=dimension]
Un exemple :
\setuptabulate[rulethickness=0.5em]\starttext \starttabulate[|l|l|] \HL \NC {\bf Nom} \NC {\bf Caractéristique} \NC\NR \HL \NC Robert \NC Le plus vert \NC\NR \NC Ginette \NC La plus chouette \NC\NR \NC Raymond \NC Le plus con \NC\NR \NC Roland \NC Le plus lent \NC\NR \HL \stoptabulate \stoptext
Régler l'espace entre les filets et le texte
Tu utilises une option de \setuptabulate
\setuptabulate[distance=valeur]
Où valeur peut être : blank, grid, depth, une dimension, small, medium, big et none
Avec :
\setuptabulate[distance=2em]
le tableau précédent devient :
La couleur
Colorier le texte des cellules
Tu emploies les commandes standards pour la colorisation :
\starttext \starttabulate[|l|l|] \HL \NC {\bf Nom} \NC {\bf Caractéristique} \NC\NR \HL \NC Robert \NC {\green Le plus vert} \NC\NR \NC Ginette \NC {\red La plus chouette} \NC\NR \NC Raymond \NC Le plus con \NC\NR \NC Roland \NC Le plus lent \NC\NR \HL \stoptabulate \stoptext
Colorier les traits horizontaux
Tu utlises une option de \setuptabulate
\setuptabulate[rulecolor=nom de la couleur]
Un exemple :
\setuptabulate[rulecolor=red] \starttext \starttabulate[|l|l|] \HL \NC {\bf Nom} \NC {\bf Caractéristique} \NC\NR \HL \NC Robert \NC Le plus vert \NC\NR \NC Ginette \NC La plus chouette \NC\NR \NC Raymond \NC Le plus con \NC\NR \NC Roland \NC Le plus lent \NC\NR \HL \stoptabulate \stoptext
Colorier les traits verticaux
Il suffi d'ajouter une option à \VL
\setuptabulate[rulecolor=red] \starttext \starttabulate[|lj1|l|] \HL \NC {\bf Nom} \NC {\bf Caractéristique} \NC\NR \HL \NC Robert \VL[green] Le plus vert \NC\NR \NC Ginette \VL[red] La plus chouette \NC\NR \NC Raymond \VL[red] Le plus con \NC\NR \NC Roland \VL[blue] Le plus lent \NC\NR \HL \stoptabulate \stoptext
Colorier le fond des cellules
Tu utilises les types de colonnes suivants :
CR[nom de la couleur] colorie l'espace occupé par le texte plus l'espace à droite ;
CC[nom de la couleur] colorie uniquement l'espace occupé par le texte et ignore les espaces à droite et à gauche ;
CM[nom de la couleur] colorie l'espace occupé par le texte plus les espaces de droite et de gauche ;
CL[nom de la couleur] colorie l'espace occupé par le texte plus l'espace à gauche.
\setuptabulate[rulecolor=red] \starttext \starttabulate[|lk1CR{red}|lk1CC{green}|] \HL \NC {\bf Nom} \NC {\bf Caractéristique} \NC\NR \HL \NC Robert \NC Le plus vert \NC\NR \NC Ginette \NC La plus chouette \NC\NR \NC Raymond \NC Le plus con \NC\NR \NC Roland \NC Le plus lent \NC\NR \HL \stoptabulate \starttabulate[|lk1CM{red}|lk1CL{green}|] \HL \NC {\bf Nom} \NC {\bf Caractéristique} \NC\NR \HL \NC Robert \NC Le plus vert \NC\NR \NC Ginette \NC La plus chouette \NC\NR \NC Raymond \NC Le plus con \NC\NR \NC Roland \NC Le plus lent \NC\NR \HL \stoptabulate \stoptext
\starttext \starttabulate[|c|c|c|c|c|] \NC l \NC e \NC s \NC c \NC h \NC \NR \NC t \NC i \NC c \CM[green] e\NC s \NC \NR \NC l \NC e \NC s \NC p \CM[green] l \NC \NR \NC u \NC s \CM[green] c \CM[green] h \CM[green] o \NC \NR \NC u \NC e \NC t \NC t \NC e \NC \NR \stoptabulate \stoptext
Définir ses tableaux
Comme beaucoup d'environement ConTeXt tu peux définir tes tableaux :
\startmonBeauTableau \HL \NC {\bf Nom} \NC {\bf Caractéristique} \NC\NR \HL \NC Robert \NC Le plus vert \NC\NR \NC Ginette \NC La plus chouette \NC\NR \NC Raymond \NC Le plus con \NC\NR \NC Roland \NC Le plus lent \NC\NR \HL \stopmonBeauTableau
Étendre le contenu d’une cellule sur plusieurs
À partir de la version du 3 septembre 2021 de la LMTX, Hans Hagen a ajouté une nouvelle commande qui permet de placer du contenu sur plusieurs cellules :
\NS[nombre de cellules impliquées][position]
position prend 3 valeurs r pour right (à droite) l pour left (à gauche) et c pour centré.
Un exemple :
\starttabulate[|c|c|c|] \NC 1 \NC deuxième colonne \NC troisième colonne \NC \NR \NC 2 \NC seconde \NC troisième \NC \NR \NC 3 r \ NS[1][r]seconde & troisième \NC \NR \NC 3 c \NS[1][c]seconde & troisième \NC \NR \NC 3 l \NS[1][l]seconde & troisième \NC \NR \stoptabulate
Voila je t'ai donné toutes les possibilités offertes par tabulate, mais il est préférable de l'utiliser pour des tableaux simples et si tu veux faire des choses plus complexe il vaut mieux utiliser d'autres environnements comme TABLE ou xtables.