Ceci est une ancienne révision du document !


\question{Comment fixer la largeur d'un tableau ?} %7.20

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

\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\`eres \\
  sqrt()    & racine carrée (penser à lier à la
              bibliothèque mathématique) \\
  \hline
\end{tabular*}

\end{noexemple} % ou (avec le package \pack{array}) % \begin{noexemple}

\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\`eres \\
  sqrt()    & racine carrée (penser à lier à la
              bibliothèque mathématique) \\
  \hline
\end{tabular*}

\end{noexemple} % \texcode{!\marg{code}} est équivalent à \texcode{@\marg{code}} à la différence près que la séparation \param{\\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 \texcode{!\marg{code}}.

\reponse Les packages \pack{tabularx} et \pack{easytable} permettent de faire cela. Avec l'environnement \env{tabularx}, par exemple, on peut utiliser un nouveau type de colonne: \texcode{X} qui ressemble à une colonne de type \texcode{p\marg{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{noexemple} \begin{tabularx}{\linewidth}{|X|X|}

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

\end{tabularx} \end{noexemple} % 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 \'egalement possible de sp\'ecifier la largeur d'une colonne (\texcode{p\marg{larg}}). \`A partir de l\`a, en g\'erant habilement les longueurs, on peut fixer la largeur du tableau et de chacune de ses colonnes.

\reponse Le package \pack{tabulary} fonctionne un peu comme \pack{tabularx}, mais accepte les paramètres \texcode{L}, \texcode{C}, \texcode{R}, \texcode{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).

\endinput

2_composition/tableaux/fixer_la_largeur_d_un_tableau.1476604679.txt.gz · Dernière modification: 2016/10/16 09:57 par jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0