Comment fixer la largeur d’un tableau?

  • L’environnement tabular* permet de faire cela, mais seul l’espace entre les colonnes peut s’adapter. Cet espace n’est pas à confondre avec \tabcolsep qui est l’espacement de part et d’autre d’une colonne et non celui qui sépare celles-ci. On doit utiliser \extracolsep{\stretch{1}} ainsi

\begin{tabular*}{0.5\linewidth}{
    @{\extracolsep{\stretch{1}}}
    l
    p{8cm}
    @{}
  }
  \hline
  fonctions & rôle \\
  \hline
  atoi()    & transforme une chaîne de caractères
              en entier \\
  fscanf()  & remplit les variables dont on donne
              l'adresse à partir d'un fichier
              (attention, d'utilisation délicate) \\
  printf()  & impression formatée d'une chaîne de
              caractères \\
  sqrt()    & racine carrée (penser à lier à la
              bibliothèque mathématique) \\
  \hline
\end{tabular*}

% ou (avec le package array) %

\begin{tabular*}{0.5\linewidth}{
    !{\extracolsep{\stretch{1}}}
    l
    p{8cm}
  }
  \hline
  fonctions & rôle \\
  \hline
  atoi()    & transforme une chaîne de caractères
              en entier \\
  fscanf()  & remplit les variables dont on donne
              l'adresse à partir d'un fichier
              (attention, d'utilisation délicate) \\
  printf()  & impression formatée d'une chaîne de
              caractères \\
  sqrt()    & racine carrée (penser à lier à la
              bibliothèque mathématique) \\
  \hline
\end{tabular*}

!{code} est équivalent à @{code} à la différence près que la séparation \tabcolsep n’est pas supprimée. Donc soit on supprime cette séparation des deux côtés du tableau, soit on utilise cette fonction !{code}.

  • Les packages tabularx et easytable permettent de faire cela. Avec l’environnement tabularx, par exemple, on peut utiliser un nouveau type de colonne: X qui ressemble à une colonne de type p{larg}, si ce n’est qu’il n’est pas nécessaire de passer l’argument \meta{larg}, et que la largeur s’adapte à la place restante: ainsi,

\begin{tabularx}{\linewidth}{|X|X|}
   \hline
    salut   & coucou \\
    bonjour & hello  \\
   \hline
\end{tabularx}

donne

<latex> \begin{flushleft} \begin{tabularx}{linewidth}{X|}

\hline
 salut   & coucou \\
 bonjour & hello  \\
\hline

\end{tabularx} \end{flushleft} </latex>

Cet exemple donnera un tableau s’étalant sur tout une ligne et divisé en deux colonnes de largeur égale.

  • Il est également possible de spécifier la largeur d’une colonne (p{larg}). À partir de là, en gérant habilement les longueurs, on peut fixer la largeur du tableau et de chacune de ses colonnes.

  • Le package tabulary fonctionne un peu comme tabularx, mais accepte les paramètres L, C, R, J qui permettent respectivement d’aligner à gauche, de centrer, d’aligner à droite et de justifier le contenu d’une colonne. De plus, la largeur des colonnes est proportionnelle à la longueur de la plus grande entrée (de chaque colonne).