Cette semaine, nous avons nous pencher sur l'environnement Array, un environnement sous LaTeX qui permet de dessiner des tableaux dans un document. Ou plutôt, des présentations tabouillères comme des matrices ou chacune des valeurs à afficher à l'utilisateur doit être aligné avec sa précédente valeur située juste au-dessus d'elle.

On définit un tableau de la manière suivante.

Un tableau sans aucun trait de séparation

\begin{center}
  \begin{tabular}{c c c}
   cell 1 & cell 2 & cell 3 \\
   cell 4 & cell 5 & cell 6 \\
   cell 7 & cell 8 & cell 9
  \end{tabular}
\end{center}

Un tableau avec un séparateur vertical

Pour spécifier un séparateur vertical virgule il suffit d'utiliser une séparateur pipe virgule hors de la déclaration de l'environnement point ici virgule nous utilisons un pipe simple
\begin{center}
  \begin{tabular}{c|c||c}
   cell 1 & cell 2 & cell 3 \\
   cell 4 & cell 5 & cell 6 \\
   cell 7 & cell 8 & cell 9
  \end{tabular}
\end{center}

Tableau avec séparateur horizontal

\begin{center}
  \begin{tabular}{c|c||c}
\hline cell 1 & cell 2 & cell 3 [1ex] \\ \hline
\hline \end{tabular} \end{center}
On peut  voir ici un nouveau paramètre, [1 ex] qui correspond à la hauteur de la ligne
Tout comme nous venons nous voir qui est possible de créer des lignes verticales ses parents chacune des colonnes du tableau, nous pouvons faire de même pour et à séparation de chacune des lignes. le Pipe simple crée un trait simple, le pipe double crée un trait double.
Le paramètre[1ex] et la hauteur de la ligne point le paramètre pipe crée un trait vertical simple, en utilisant deux pipes nous créons un double trait.

Alignement des données dans les cellules d'un tableau

Comme nous pouvons le voir dans exemple du paragraphe 1 point 2 virgule au moment de l'utilisation de la commande \begin{tabular}, nous avons une deuxième série de paramètres qui correspond au type du centrage du contenu des cellules. 3 valeurs sont alors possibles :
  • l : left permet un alignement à gauche
  • c : permet un alignement au centre
  • r : permet un alignement à droite.
On a donc la ligne suivante pour la déclaration du tableau :
\begin{tabular}{l c r}

\end{tabular}

Tableau de base

Un tableau de base dans latex pourrait se présenter de la manière suivante :
\begin {tabular}{l c r}
   1 & 2 & 3\\
   4 & 5 & 6\\
\end{tabular}
Dans ce tableau de base, aucun trait séparateur ne sera affiché.

Tableau avec traits séparateurs

Avec trait de séparation verticaux

\begin {tabular}{l|c||r}
   1 & 2 & 3\\
   4 & 5 & 6\\
\end{tabular}
On utilise un simple double pipe dans l'en-tête de l'environnement pour créer un double trait.

Avec des traits de séparateur horizontaux

Il suffit de spécifier la commande \hline avant la ligne.
\begin {tabular}{l|c||r}
\hline 1 & 2 & 3\\ 4 & 5 & 6\\ \end{tabular}
 Avec des traits horizontaux et verticaux
\begin{center}
\begin {tabular}{l|c||r}
\hline 1 & 2 & 3\\ \hline 4 & 5 & 6\\ \hline \end{tabular}
\end{center}
Les traits verticaux sont gérés par les pipes dans l'en-tête de l'environnement. Il est très horizontaux sont gérés par la commande \hline
 Pour que les traits soient aussi sur les contours externes du tableau il faut modifier l'en-tête de l'environnement en débutant et terninant les paramètre par des pipes
\begin{center}
\begin {tabular}{|l|c||r|}
\hline 1 & 2 & 3\\ \hline
4 & 5 & 6\\ \hline
\end{tabular}
\end{center}

Tableau avec fusion de colonnes ou de lignes

Fusion de colonne

Dans cet exemple de deux lignes virgule et la première ligne et fusionner sur deux colonnes
\begin{center}
\begin {tabular}{|l|c||r|}
\hline 1 & 2 & 3\\ \hline
4 & 5 & 6\\ \hline
\end{tabular}
\end{center}

Fusion de colonnes sur une ligne

Dans ce tableau, seront fusionnés ensemble des colonnes sur la première ligne.
Pour mener à bien cette fusion virgule nous avons besoin d'utiliser le paquet multirow.
\begin{center}
\begin {tabular}{|l|l|}
\hline \multicolumn[2}{|c|}{titre du tableau} \\
\hline
GB & Grande Bretagne\\
FR & France\\
\hline
\end{tabular}
\end{center}
 
Les trois paramètres de multirow sont dans l'ordre :
  • le nombre de colonnes à fusionner
  • la taille de la colonne. L'utilisation du caractère étoile permet de gérer automatiquement et à largeur selon le contenu le plus grand d'une cellule.
  • le contenu de la cellule.

 Fusion de multicolonnes

Dans cet exemple, le but est de reproduire un tableau de la forme suivante :
 
Pour arriver à ce type de tableau, on s'appuie sur le paquet multirow. Pour arriver à cela nous utilisons la commande suivante :
Titre centré dans une cellule
Cell 1 Cell 2 Cell 3
Dans ce cas, nous devons faire appel au paquet multirow :
\usepackage{multirow} 
\begin{tabular}{|l|l|l|}
\hline
\multicolumn{3}{|c|}{Titre du tableau}
\hline
  Texte & Titre 1 & Titre 2 \\
\multirow{4}{*}{Defender}
  LB & Lucas \\
  & DC & Michel \\
  & DC & Matteo \\
  & RB & Sel \\ \hline
\multirow{3}{*}{Midfielder} & MC  & Betty \\ \hline
\hline   
\end{tabular}
Les 3 paramètres multirow sont :
  • le nomber de colonnes à fusionner
  • la taille de la colonne. L'utilisation de * permet de gérer automatiquement la largeur selon le contenu
  • le contenu de la cellules

Un autre exemple

L'idée est de reproduire le tableau suivant : 

multiow
Pour arriver à ce type de tableau, on s'appuie bien entendu sur le paquel multirow.
\begin{tabular}{cc|c|c|c|c|l}
  \cline{3-6} && \multicolumn{4}{c|}{Primes} \\ \cline{3-6}
              && 2 & 3 & 5 & 7 \\ \cline{1-6}
  \multicolumn{1}{|c}{\multirow{2}{*}{Powers}} &
  \multicolumn{1}{|c|}{504} & 3 & 2 & 0 & 1 \\ \cline{2-6} 
  \multicolumn{1}{|c}{}
  \multicolumn{1}{|c|}{540} & 2 & 3 & 1 & 0 \\ \cline{1-6} 
\end{tabular}

Définition de la largeur du tableau

Pour définir ya la chargeur d'un tableau virgule il faut intégrer dans une boîte avec et à commande \resizebox.
Cependant, pour utiliser cette commande, il faut faire appel au paquet graphicx avec la commande \usepackage{graphicx}

Avec une valeur fixe

Il est possible de spécifier la lalrgeur d'un tableau en spécifiant sa largeur dans une "boite" de type \resizebox.  
\resizebox{8 cm} {!} {
   \begin{tabular}
   ...
   \end{tabular}
}

Avec une valeur exprimée en pourcentage

Il est aussi possible, à la place de définir une largeur avec une dimension spécifique, de spécifier cette largeur en pourcentage. Nous allons devoir saisir une valeur entre 0 et 1, le paquet graphique X ne prenant en paramètre qu'un nombre compris entre 0 et 1 point ainsi, pour exprimer une largeur de 70 %, nous devons saisir 0.7, un nombre entre 0 et 1.
\scalebox{0.7} {
   \begin{tabular}
   ...
   \end{tabular}
}

Mise en forme d'un tableau

Alternance de couleurs une ligne sur deux

Pour spécifier ses alternances de couleur une ligne sur deux, avant environnement du tableau, nous allons spécifier les caractéristiques de cette alternance
\rowcolors{1}{green}{pink}
\begin{tabular}{l l l l}
   odd  & odd  & odd \\
   even & even & even\\
\end{tabular}
Les paramètres de rowcolor sont:
  • Le premier paramètre correspond au numéro de ligne à partir de l'accueil l'alternance va commencer. En effet, dans certains cas, nous commencerons l'alternance de couleur uniquement à compter de la deuxième ligne.
  • Le deuxième paramètre correspond à la couleur des lignes paires
  • Le troisième paramètre correspond à la couleur des lignes impairs

Appliquer une couleur dans une seule cellule du tableau

 Il suffit de spécifier avant la valeur du contenu de la cellule, la couleur de cette dite cellule au travers de la commande cellcolor
\begin{tabular}{l l l l}
   odd  & \cellcolor[gray]{0.9} odd  & odd \\
   even & even & even\\
\end{tabular}

Appliquer une couleur à l'intégralité d'une ligne d'un tableau

Pour pouvoir colorier une ligne complète d'un tableau virgule il faut utiliser ce code suivant point noter que pour cette utilisation virgule nous allons avoir besoin de l'utilisation du paquet colorbc avec \usepackage{colorbl}
\begin{tabular}{|c|c|} \hline
   \rowcolor{red} 1 & rouge \\\\hline
   \rowcolor[RGB]{255,40,80} 5 & ? \\\\hline
\end{tabular}

Colorer une colonne complète d'un tableau

Avec des couleurs définies comme constantes

Pour appliquer une couleur complète à une colonne d'un tableau virgule nous devons utiliser le même paquetage que celui cité dans le paragraphe précédent : colorbl.
\begin{tabular}{
   |>{\columncolor[RGB]{255,0,168}} c|c|>{
        \columncolor{gray!40}\color{white} \bf}c|
     }
     \hline
      col 1 & col 2 & col 3 \\\hline
      col 4 & col 5 & col 6 \\\hline
}
\end{tabular}

Avec des couleurs définies par les encodages numériques html

Dans l'exemple suivant, il y a deux lignes

\begin{table}[]
   \begin{tabular}{@{} l l c l @{}}
      \multicolumn{2}{l}{\cellcolor[HTML]{FE0000}contenu} 
& & \\ & & \\ \end{tabular} \end{table}

Mettre deux valeurs dans une cellule

\begin{tabular}{|p{3cm}|p{1cm}} \hline
  \begin{pspicture} (0,0)(3,0.6)
     \put(0,0){caract 2}
     \put(2,0.25){caract 1}
  \end{pspicture}
\end{tabular}

Encadrer une cellule

Utiliser la commande \hline
Il est parfois souhaitable de ne vouloir m'encadrer qu'une seule cellule d'un tableau.
\begin{tabular}[t]{|l|}
    with no \\hline \\command \\used
\end{tabular}
Si on souhaite l'encadrement des ou de la cellule, il faut spécifier ceci avec de chaque côté du paramètre de la commande tabular. 
Si nous remplaçons et la commande pipe par la commande : , la cellule sera encadrée en pointillé.

Fusionner des lignes

Par cette commande, l'idée est d'arriver à un tableau de ce type (
soffice.bin Sggmqnikfh
\begin{tabular}{|l|c|r|}
   \hline
     col 1 & \multicolumn{2}{c|}{col 2}\\
   \hline
      1.1 & 1.2 & 1.3 \\
   \cline{2-3} & 2.2 & 2.3\\\
   \hline
\end{tabular}

Placement d'un tableau

Jusque-là, nous n'avons juste vu comment dessiner un tableau et intégré à votre document. Mais nous n'avons pas véritablement vu comment placer le tableau dans le document point en rendant flottant un tableau, vous pouvez me placer ou vous le souhaitez.

Rendre flottant un tableau

Pour rendre votre tableau flottant, il suffit de lui spécifier les paramètres position.
\begin{table}[<position>]
   \begin{tabular}{<colonnes>}

   \end{tabular}
\end{table}
Les valeurs de colonnes, surlignée, peuvent être : 
  • l : centré à gauche
  • r : centré à droite
  • c : centré au centre
Les valeurs de position peuvent être :
  • h (here) : classement du tableau à côté du texte le précédant
  • t (top) : placement du tableau en haut d'une page
  • b (bottom) : placement du tableau en bas d'une page
  • p : placement du tableau dans une page une contenant que des flottants.

 Affecter une légende à un tableau

Pour affecter une légende à un tableau, au niveau de la déclaration de l'environnement de ce tableau, il suffit de spécifier la légende en ni déclarant deux paramètres dans l'environnement label et caption
\begin{table}[<position>]
   \caption{\label{<etiquette>} <titre>}
   \begin{tabular}{<colonnes>}
      
   \end{tabular}
\end{table} 

La commande \cline

Cette commande permet de créer une barre horizontale entre deux cellules d'un tableau
\begin{tabular}{l l r r}
   a & b & c & d \\
   \cline{1-1}
   \cline{3-4}
   e & f & g
\end{tabular}
Les paramètres de cette commande sont le numéro des cellules contenant les cellules à séparer.

Définir la largeur d'une colonne

Il suffit de définir la largeur du tableau dans la définition de en-tête de ce tableau
\begin{tabular}{l|l|p{5cm}}
   a & b & c \\
   e & f & g
\end{tabular}

Définir la largeur du paragraphe au sein d'une cellule

\begin{tabular}{cc}
   boring cell a \parbox[t]{5cm}{votre texte ici sur la lareur spécifiée}
\end{tabular}

Espacement dans une cellule 

Il faut simplement redéfinir et à valeur de et à commande \tabcolsep
\setlength{\tabcolsep}{20pt}
Cela correspond à l'équivalent du padding en CSS.

Créer une nouvelle ligne

\begin{tabular}{\centering}p{3.5cm}>{\centering}p{3.5cm}}
   Géométrie et algèbre
   \tabularnewline
   \hline
   Point et Addition
   \tabularnewline
   sphére et multi
\end{tabular}

Libellé d'un tableau

L'idée est de générer un libellé d'un tableau permettant de faire ainsi une table des matières des tableaux avec la commande \listoftables
\begin{table}[!ht]
  \center
    \begin{tabular}

    \end{tabular}
    \caption{Ceci est le libellé de la légende du tableau}
\end{table}

L'environnement tabbing

Cet environnement permet de faire une simulation de la création d'un tableau, centrêt, mais avec les alignements correspondant à ceux d'un tableau. 
On utilise deux séparateurs : 
  • \> : création d'une ligne
  • \= : séparateur de cellules
\begin{tabbing}
  Voici \= un petit exemple \= de l'environnement\\
 \> ici une 2e ligne, 2e colonne
 \> \> ici 3e ligne, 3e colonnes
\end{tabbing}
Comme on peut le voir, on utilise la commande pour avancer d'un repère, mais on peut aussi utiliser d'autres éléments :
  • \= : Fixe un repère de tabulation à l'emplacement courant
  • \kill : La ligne courante n'est pas affichée
  • \> : avance d'une tabulation
  • \< : recule d'une tabulation
  • \+ : La marge gauche avance d'une tabulation pour toutes les lignes suivantes
  • \- : La marge gauche recule d'une tabulation pour toutes les lignes suivantes
  • \' : Met le texte précédent juste à gauche du prochain repère de tabulation et le texte suivant justte à droite
  • \` : Met le texte qui suit le long de la marge droite de la ligne suivante
Exemple 
\begin{tabbing}
   \hspace{3cm} \= \hspace{3cm} \= \hspace{3cm} \= \kill
   Nom     \>      \> Age
   William \> John \> 36
\end{tabbing}

Mon Github

slhuilli1's GitHub repositories