Aller au contenu

ConTeXt/Tables et tableaux

Un livre de Wikilivres.

ConTeXt

 Page précédente : Listes

Part. II, ch. 6  •  Tables et tableaux  •  Sommaire

Page suivante : Images et figures 


Tables et tableaux

[modifier | modifier le wikicode]

Objectifs Objectifs de cette section

Ce chapitre présente toutes les bases pour créer des tables (listes, sommaires automatiques) et des tableaux (mise en colonnes) dans ConTeXt. Le lecteur apprendra :

  • 1. à créer un tableau simple ;
  • 2. à gérer les largeurs, alignements, cadres et couleurs ;
  • 3. à utiliser les tableaux avancés (xtable) ;
  • 4. à importer un fichier CSV ;
  • 5. à connaître les astuces indispensables pour éviter les pièges courants.


Les tableaux sont essentiels dans les documents scientifiques, financiers ou pédagogiques. ConTeXt offre plusieurs mécanismes puissants, très différents de LATEX : ce sont de *vraies* structures typographiques, pas un bricolage de colonnes.

Avertissement Avertissement
Les commandes LaTeX (\begin{tabular}, array, longtable) ne fonctionnent pas dans ConTeXt. ConTeXt possède ses propres environnements dédiés : TABLE et xtable.


1. Tableau simple : syntaxe essentielle

[modifier | modifier le wikicode]

La structure minimale utilise :

\bTABLE
  \bTR \bTD A \eTD \bTD B \eTD \eTR
  \bTR \bTD C \eTD \bTD D \eTD \eTR
\eTABLE

Ce tableau génère deux lignes et deux colonnes.

Variante lisible

[modifier | modifier le wikicode]
\bTABLE
    \bTR
        \bTD Colonne 1 \eTD
        \bTD Colonne 2 \eTD
    \eTR
    \bTR
        \bTD Exemple A \eTD
        \bTD Exemple B \eTD
    \eTR
\eTABLE

2. Largeur, alignement et style des cellules

[modifier | modifier le wikicode]

Largeur automatique

[modifier | modifier le wikicode]
\setupTABLE[column][1][width=fit]
\setupTABLE[column][2][width=fit]

Tableau occupant toute la ligne

[modifier | modifier le wikicode]
\setupTABLE[width=\textwidth]

Alignement du contenu

[modifier | modifier le wikicode]
\setupTABLE[column][each][align={middle,lohi}]

Options utiles :

  • left – aligné à gauche
  • middle – centré
  • right – aligné à droite
  • lohi – alignement vertical optimal

Ajouter des lignes horizontales

[modifier | modifier le wikicode]
\setupTABLE[row][first][rulethickness=1pt, bottomrulethickness=1pt]

Exemple complet

[modifier | modifier le wikicode]
\setupTABLE[frame=on, rulethickness=0.6pt]
\setupTABLE[column][each][align=middle]

\bTABLE
  \bTR \bTH Année \eTH \bTH Auteur \eTH \bTH Ouvrage \eTH \eTR
  \bTR \bTD 1952 \eTD \bTD L. Strauss \eTD \bTD Hobbes \eTD \eTR
  \bTR \bTD 1978 \eTD \bTD P. Manent \eTD \bTD Histoire intellectuelle \eTD \eTR
\eTABLE

3. Tableaux avancés : xtable

[modifier | modifier le wikicode]

La syntaxe xtable est plus propre, plus puissante et recommandée dans les grands documents.

\startxtable
  \startxtablehead
    \startxrow
      \startxcell Titre 1 \stopxcell
      \startxcell Titre 2 \stopxcell
    \stopxrow
  \stopxtablehead

  \startxtablebody
    \startxrow
      \startxcell A1 \stopxcell
      \startxcell A2 \stopxcell
    \stopxrow
    \startxrow
      \startxcell B1 \stopxcell
      \startxcell B2 \stopxcell
    \stopxrow
  \stopxtablebody
\stopxtable

Avantages :

  • indentation lisible,
  • contrôle fin des sections head/body/footer,
  • idéal pour les tableaux longs ou complexes.

4. Colonnes proportionnelles

[modifier | modifier le wikicode]
\setupxtable[column][1][width=3cm]
\setupxtable[column][2][width=5cm]

5. Tableaux colorés

[modifier | modifier le wikicode]

Exemple : en-tête gris + lignes alternées

[modifier | modifier le wikicode]
\definecolor[gris][s=0.85]

\setupTABLE[row][first][background=color, backgroundcolor=gris]
\setupTABLE[row][odd][background=color, backgroundcolor=gris!10]

\bTABLE
  \bTR \bTH Élément \eTH \bTH Valeur \eTH \eTR
  \bTR \bTD A \eTD \bTD 12 \eTD \eTR
  \bTR \bTD B \eTD \bTD 18 \eTD \eTR
\eTABLE

6. Tableaux en mode paysage

[modifier | modifier le wikicode]

Pour des tableaux trop larges :

\startlandscape

\bTABLE
  ... tableau très large ...
\eTABLE

\stoplandscape
Astuce

Si la table déborde, trois solutions :

  • réduire la police : \switchtobodyfont[9pt]
  • utiliser landscape
  • réduire les marges ou les largeurs de colonnes

7. Importer un fichier CSV

[modifier | modifier le wikicode]

Méthode simple (lecture directe)

[modifier | modifier le wikicode]
\startbuffer[moncsv]
\readfile{donnees.csv}
\stopbuffer

\startxtable
  \processcommalist[\getbuffer[moncsv]]{\startxrow#1\stopxrow}
\stopxtable

Exemple de CSV attendu

[modifier | modifier le wikicode]

 Page précédente : Listes

Part. II, ch. 9  •  Tables et tableaux  •  Sommaire

Page suivante : Images et figures