Comment fixer la largeur d'un tableau?

$\Reponse$ 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}.

$\Reponse$ 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


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

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

$\Reponse$ 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.

$\Reponse$ 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).

composition/tableaux/fixer_la_largeur_d_un_tableau.txt · Dernière modification: 2018/12/09 11:25 par jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0