Colonne de largeur fixe
Pour avoir des colonnes de largeur fixe, on va utiliser un autre symbole dans la déclaration des colonnes, on va utiliser le p
en spécifiant entre accolades la largeur à utiliser.
Voici par exemple un tableau dont la première colonne est fixée à 2 cm et la deuxième a son texte centré.
| \begin{tabular}{|p{2cm}|c|} | \hline | 1 & 550 \texteuro \\ | \hline | 2 & 710 \texteuro \\ | \hline | \end{tabular} |
|
listing l4.3 Colonne de largeur fixe
Pour pouvoir compiler cet exemple, il vous faudra importer le package textcomp
pour pouvoir utiliser la commande texteuro
qui affiche le symbole euro.
Pour pouvoir changer l'alignement dans de telle cellule, il faut utiliser les commandes centering
, raggedright
et raggedleft
dans les cellules du tableau. Voici par exemple l'année 1 centrée et l'année 2 justifiée à droite.
| \begin{tabular}{|p{7cm}|c|} | \hline | \centering 1 & 550 \texteuro \\ | \hline | \raggedleft 2 & 710 \texteuro \\ | \hline | \end{tabular} |
|
listing l4.4 Colonne de largeur fixe avec alignement
Ligne épaisses
Avec doublerulesep
La première solution est uniquement valable pour les lignes horizontales et offre deux niveaux : les lignes normales et les lignes épaisses. En réalité, la technique consiste à mettre deux lignes à la suite l'une de l'autre et de fixer à zéro la distance entre deux lignes.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| \documentclass[a4paper,11pt]{report} | | | \usepackage[latin1]{inputenc} | \usepackage[francais]{babel} | \usepackage{textcomp} | | | \setlength{\doublerulesep}{\arrayrulewidth} | | \begin{document} | | \begin{tabular}{|p{2cm}|c|} | \hline | & \\ | \hline\hline | 1 & 550 \texteuro \\ | \hline | 2 & 710 \texteuro \\ | \hline | \end{tabular} | | \end{document} |
|
listing l4.5 Ligne épaisse (1)
Un peu d'explication s'impose, la commande setlength
permet de définir une distance, on l'étudiera en détail lors du chapitre 9. Le premier paramètre représente la distance à changer et pour notre exemple, il s'agit de doublerulesep (espace entre deux lignes). Ensuite, le deuxième paramètre est la valeur à donner, et chez nous, il s'agit de arrayrulewidth
(la largeur d'une ligne).
Remarquez que la définition de la largeur se situe dans le préambule, c'est-à-dire avant le \begin{document}
et après le \documentclass
.
Avec la macro de A. Kessi
Une autre solution est celle proposée par Monsieur Alain Kessi. Cette solution utilise une macro. Nous n'avons pas encore vu ce que sont les macros, néanmoins, nous allons pouvoir les utiliser. En fait, ce sont des morceaux de code qui effectuent une tâche en fournissant de nouvelles commande. On étudiera les macros dans le cadre d'un autre chapitre.
La première chose à faire est d'insérer la macro dans le préambule du code LaTeX. Ensuite, on peut utiliser la commande hlinewd
qui prend comme paramètre la hauteur de la ligne voulue. Voici un exemple avec une ligne de 1mm de haut.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| \documentclass[a4paper,11pt]{report} | | | \usepackage[latin1]{inputenc} | \usepackage[francais]{babel} | \usepackage{textcomp} | | | \makeatletter | \def\hlinewd#1{ | \noalign{\ifnum0=`}\fi\hrule \@height #1 | \futurelet\reserved@a\@xhline} | \makeatother | | | \begin{document} | | \begin{tabular}{|p{2cm}|c|} | \hline | & \\ | \hlinewd{1mm} | 1 & 550 \texteuro \\ | \hline | 2 & 710 \texteuro \\ | \hline | \end{tabular} | | \end{document} |
|
listing l4.6 Ligne épaisse (2)
Séparateurs de colonne
On a déjà beaucoup parlé des lignes, mais qu'en est-il des colonnes ? Et bien, on va voir comment agir sur les séparateurs de colonnes. Jusqu'à présent, soit on avait rien, soit on avait des lignes verticales.
Pour représenter un séparateur de colonne, on utilisait la barre verticale |
. À la place, on peut utiliser une arobase @
avec entre accolade un symbole de séparation. Voici un exemple avec un aperçu plutôt didactique qu'esthetique avouons-le.
Pour obtenir cet effet, on a utilisé respectivement @{;}
, @{,}
et @{.}
comme séparateurs de colonne. On peut mettre un plus long mot bien entendu comme par exemple @{Cool}
, on peut également ne rien mettre @{}
, cette dernière possibilité aura pour effet de coller les colonnes les unes contre les autres.
| \begin{tabular}{@{;}p{2cm}@{,}c@{.}} | \hline | & \\ | \hline | 1 & 550 \texteuro \\ | \hline | 2 & 710 \texteuro \\ | \hline | \end{tabular} |
|
listing l4.7 Séparateur de colonne
A quoi celà pourrait bien servir me demanderez-vous ? Et bien par exemple, pour avoir un tableau contenant des nombres alignés sur la virgule décimale. On va un peut tricher et mettre les parties entières et fractionnaires dans deux colonnes et les aligner sur la virgule.
| \begin{tabular}{|p{2cm}|r@{,}l|} | \hline | & & \ | \hline | 1 & 0 & 25 \texteuro \ | \hline | 2 & 710 & 605 \texteuro \ | \hline | 2 & 12710 & 10 \texteuro \ | \hline | \end{tabular} |
|
listing l4.8 Colonnes alignée sur virgule décimale
Il reste néanmoins un petit problème en ce qui concerne le titre du tableau, en effet, en mettant deux colonnes pour le nombre, l'intitulé Bénéfice se trouve dans la première des deux colonnes, il faudrait pouvoir dire que ce mot prenne deux colonnes de large, c'est la matière de la section suivante.
Largeur des lignes verticales
Maintenant qu'on a vu comment changer les séparateurs de colonne, il nous reste à voir comment changer la largeur des lignes de séparation. On va pour celà choisir comme séparateur de colonne une ligne verticale plus ou moins épaisse.
Pour créer une ligne verticale, il faut utiliser la commande LaTeX vrule
dont la syntaxe est un peu particulière, en effet, voici un petit exemple qui trace une ligne verticale de 2cm de haut et 0.5cm de large.
| {\vrule height 2cm width 0.1cm} Texte qui suit la ligne |
|
listing l4.9 Ligne verticale
On va donc placer de telles lignes verticales comme séparateur de colonne pour obtenir de larges colonnes, ce qui donne :
| \begin{tabular}{|p{2cm}@{\,{\vrule width 5pt}\,}r@{,}lr|} | \hline | & & \\ | \hline | 1 & 0 & 25 \texteuro \\ | \hline | 2 & 710 & 605 \texteuro \\ | \hline | 2 & 12710 & 10 \texteuro \\ | \hline | \end{tabular} |
|
listing l4.10 Largeur des lignes verticales
Pour rappel, \,
permet d'insérer un espace insécable, et ce afin de ne pas avoir le texte des cellules collé aux lignes verticales.