Apparence des tableaux
On s'intéresse maintenant à la gestion des espacements et dimensions dans les tableaux. On a déjà vu trois commandes de longueur au chapitre 9 qui permettent de changer l'apparence des tableaux. Le tableau suivant reprend ces commandes de longueur avec quelque-unes en plus.
Commande |
Description |
\tabcolsep |
Moitié de l'espacement horizontal placé entre les colonnes des tableaux créé avec tabular |
\arraycolsep |
Moitié de l'espacement horizontal placé entre les colonnes des tableaux créé avec array |
\arrayrulewidth |
Largeur des filets créés par | , hline , cline ou vline |
\doublerulesep |
Espacement entre deux filets successifs créés par | ou hline |
\jot |
Espacement vertical ajouté entre les lignes dans les environnements eqnarray |
tab l13.4 Commandes de longueur pour les tableaux
| {\setlength{\jot}{20pt} | \begin{eqnarray*} | x & = & \frac{1}{5} + \frac{1}{3} \\ | & = & \frac{3 + 5}{15} \\ | & \approx & 0,53 | \end{eqnarray*}} |
|
listing l13.12 Espacement dans un environnement eqnarray
Espacement dans les cellules
Un autre élément que l'on aimerait pouvoir contrôler est l'espacement ajouté entre les lignes du tableau, c'est-à-dire l'espace entre le texte des cellules et le bord de celles-ci. Il n'y a pas une commande de longueur pour contrôler cet espacement, pour pouvoir changer cet espacement, il faut redéfinir une macro-commande.
On n'a pas encore vu ce qu'est une macro-commande, mais pour redéfinir une macro-commande, on utilise la commande renewcommand
qui prend deux paramètres, le nom de la commande à redéfinir, pour nous arraystretch
et comme deuxième paramètre, la nouvelle définition qui sera dans notre cas un simple entier représentant le facteur de modification. Avec 2, on double l'espacement, ...
| {\renewcommand{\arraystretch}{2} | \begin{tabular}{|>{\tt \color{blue}}l|>{\small}m{5cm}<{.}|} | \hline | ls & liste les fichiers et d'un \\ \hline | cp & permet de faire une copie de fichiers ou \\ \hline | mv & permet de des fichiers ou \\ \hline | \end{tabular}} |
|
listing l13.13 Espacement entre les lignes avec arraystretch
Une autre possibilité pour modifier localement l'espacement entre les lignes du tableau et le texte des cellules est d'utiliser un trait vertical invisible. Cette astuce à déjà été invoquée au chapitre 11 pour modifier l'espacement entre le texte et le cadre autour de celui-ci créé avec la commande fbox
.
| \begin{tabular}{|>{\tt \color{blue}}l|>{\small}m{5cm}<{.}|} | \hline | \rule[-0.9cm]{0cm}{2cm} ls & liste les fichiers et d'un \\ \hline | cp & permet de faire une copie de fichiers ou \\ \hline | mv & permet de des fichiers ou \\ \hline | \end{tabular} |
|
listing l13.14 Espacement entre les lignes en utilisant rule
Grâce à cette petite astuce qui consiste à insérer une ligne de largeur nulle et de hauteur et profondeur spécifiées, on peut modifier l'aspect des cellules de manière individuelle.
Dimension du tableau
Les tableaux insérés avec l'environnement tabular
ont une largeur fixe que si toutes les colonnes sont déclarées avec le descripteur p{}
. Pour pouvoir forcer une certaine largeur de tableau, on peut utiliser la version étoilée de l'environnement qui prend un paramètre supplémentaire obligatoire qui est la largeur du tableau.
Le problème avec l'environnement tabular*
est qu'il va tenter de satisfaire la contrainte de largeur du tableau en jouant sur l'espacement inter-colonne, et les résultats sont parfois inesthétique. Pour pallier ce problème, on peut utiliser à la place l'environnement tabularx
défini dans le package du même nom. Pour satisfaire la contrainte de largeur imposée du tableau, l'environnement va jouer sur la largeur des colonnes et on doit lui préciser quelles sont les colonnes redimensionnables en utilisant le nouveau descripteur X
.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| \begin{tabular*}{4cm}{|l|l|} | \hline | ls & list \\ \hline | cp & copy \\ \hline | mv & move \\ \hline | \end{tabular*} | | \begin{tabularx}{4cm}{|l|X|} | \hline | ls & list \\ \hline | cp & copy \\ \hline | mv & move \\ \hline | \end{tabularx} |
|
listing l13.15 Comparaison de tabular*
et tabularx