18 Nov 2010

Comment faire des tableaux compliqués?

Florence @ 10:11

Les fusions de cellules

  • la commande \multicolumn fusionne n colonnes d’une même rangée.
    \begin{tabular}{|c|c|c|}
    \hline \multicolumn{3}{|c|}{Titre du tableau} \\ \hline
    A & B & C \\ \hline
    \end{tabular}
    
    Titre du tableau
    A B C
  • la commande \multirow du package multirow fusionne n rangées d’une même colonne.
    \begin{tabular}{|c|c|c|}
    \hline \multicolumn{3}{|c|}{Titre du tableau} \\ \hline
    \multirow{2}{*}{A} & B & C \\ \cline{2-3}
     & D & E \\ \hline
    \end{tabular}
    
    Titre du tableau
    A B C
    D E

Le package « array »

  1. Nouveaux styles de colonnes LaTeX reconnaît par défaut les styles de colonnes c, r, l et p{largeur}. Le package array définit :
    • m{largeur} pour une colonne équivalente à p{largeur} avec un alignement au milieu;
    • b{largeur} idem avec un alignement en bas;
    • >{déclaration} à placer juste avant le type de colonne pour insérer la déclaration au début de chaque cellule;
    • <{déclaration} à placer juste après le type de colonne pour insérer la déclaration à la fin de chaque cellule;
    • !{déclaration} remplace le séparateur de colonne par le contenu de la déclaration.

    Le changement de ligne est remplacé par \tabularnewline (au lieu de \\) quand la dernière colonne est de type p, m ou b.

  2. Création de styles de colonnes personnels grâce à la commande \newcolumntype.
    \newcolumntype{C}{>{$\displaystyle}c<{$}}
    \newcolumntype{M}[1]{>{\centering}m{#1}}
    \begin{tabular}{|C|M{2cm}|}
    \hline
    $f(x) = x$ &
    Les hommes naissent et demeurent libres
    et égaux en droits.
    \tabularnewline\hline
    $\displaystyle{\int_0^1 \sqrt{g(x)} = ?}$ &
    Les distinctions sociales ne peuvent être
    fondées que sur l'utilité commune.
    \tabularnewline\hline
    \end{tabular}
    
    $ f(x) = x$ Les hommes naissent et demeurent libres et égaux en droits.
    $ \displaystyle{\int_0^{1} \sqrt{g(x)} = ?}$ Les distinctions sociales ne peuvent être fondées que sur l’utilité commune.

Le package « tabularx »

\begin{tabularx}{largeur}{déclaration des colonnes}
...
\end{tabularx}
  • permet de fixer la largeur des tableaux;
  • définit le style de colonne X qui est un paragraphe justifié à gauche, et dont la largeur s’adapte pour que le tableau fasse la largeur demandée;
  • charge automatiquement le package array, et bénéficie donc de ses avantages:
    \newcolumntype{Y}{>{\itshape\raggedright}X}
    \newcolumntype{Z}{>{\itshape\raggedleft}X}
  • crée des styles de colonnes justifiées à gauche (Y) ou à droite (Z), avec une fonte en italique.
  • s’il y a plusieurs X dans la déclaration des colonnes, les cellules se partagent l’espace.
    \begin{tabularx}{\linewidth}{|c|Y|c|X|c|Z|}
    \hline 1 &
    Les hommes naissent et demeurent libres et égaux en droits. Les distinctions
    sociales ne peuvent être fondées que sur l'utilité commune & 2 &
    Le but de toute association politique est la conservation des droits naturels
    et imprescriptibles de l'Homme. Ces droits sont la liberté, la propriété,
    la sûreté, et la résistance à l'oppression  & 3 &
    Le principe de toute Souveraineté réside essentiellement dans la Nation. Nul
    corps, nul individu ne peut exercer d'autorité qui n'en émane expressément
    \tabularnewline\hline
    \end{tabularx}
    
    1 Les hommes naissent et demeurent libres et égaux en droits. Les distinctions sociales ne peuvent être fondées que sur l’utilité commune 2 Le but de toute association politique est la conservation des droits naturels et imprescriptibles de l’Homme. Ces droits sont la liberté, la propriété, la sûreté, et la résistance à l’oppression 3 Le principe de toute Souveraineté réside essentiellement dans la Nation. Nul corps, nul individu ne peut exercer d’autorité qui n’en émane expressément

Le package « longtable»

Permet de faire des tableaux sur plusieurs pages

\begin{longtable}{|c|c|}
\hline\multicolumn{2}{|c|}{En-tête du tableau} \\ \hline
cellule A (unités) & cellule B (remarque) \\ \hline\endfirsthead
\multicolumn{2}{c}{... suite de la page précédente...} \\ \hline
A & B \\ \hline\endhead
\hline\multicolumn{2}{c}{... suite page suivante...} \\ \endfoot
\hline\multicolumn{2}{r}{FIN} \\ \endlastfoot
01 & 02 \\ 11 & 12 \\ 21 & 22 \\ 31 & 32 \\ 41 & 42 \\
51 & 52 \\ 61 & 62 \\ 71 & 72 \\ 81 & 82 \\
\end{longtable}
En-tête du tableau
cellule A (unités) cellule B (remarque)
01 02
11 12
21 22
31 32
41 42
… suite page suivante…

saut de page
… suite de la page précédente…
51 52
61 62
71 72
81 82
FIN

Le package « colortbl »

Permet de colorier les cellules d’un tableau. Nécessite le package color

  • \rowcolor{couleur} en début de ligne colorie toute la ligne avec la couleur donnée;
  • >{\columncolor{couleur}} dans la déclaration du tableau (avant un c, r, l ou autre) colorie la colonne concernée;
  • pour colorier les lignes verticales, il faut utiliser le paramètre !{\color{couleur}\vline} à la place de | dans la déclaration du tableau
  • pour colorier toutes les lignes d’un tableau, il y a la commande \arrayrulecolor{couleur}
\setlength{\arrayrulewidth}{1pt}
\arrayrulecolor{blue}
\newcolumntype{J}{>{\columncolor{red}}X}
\newcolumntype{K}{>{\columncolor{green}}X}
\begin{tabularx}{\linewidth}
                {|J!{\color{magenta}\vline}K|}
\hline
A & B \\
\hline
\rowcolor{yellow} C & D
\tabularnewline \hline
E & F
\tabularnewline \hline
\multicolumn{1}{|>{\columncolor{cyan}}X|}{G} & H
\tabularnewline \hline
I & \multicolumn{1}{|>{\columncolor[gray]{0.8}}X|}{J}
\tabularnewline \hline
\end{tabularx}
A B
C D
E F
G H
I J

Tableau très laid

Laisser une réponse

Vous devez vous identifier pour poster un commentaire. Connectez vous maintenant.