Ceci est une ancienne révision du document !


Comment faire un tableau~?} %7.1

\label{q=Comment_faire_un_tableau}

$Reponse$ L'environnement permettant de faire un tableau en mode texte s'appelle tabular. Il prend un argument optionnel et un argument obligatoire. % \begin{syntax} \\begin\{tabular\}\oarg{position}\marg{format} \ \ \meta{contenu du tableau} \\end\{tabular\} \end{syntax}

L'argument obligatoire \meta{format} décrit le format des colonnes du tableau. Cela suppose que vous connaissiez à l'avance le nombre de colonnes que vous aller produire, sinon \TeX{} affichera un message d'erreur. Une colonne est représentée par une lettre parmi \texcode{l} (pour que le texte soit aligné à gauche dans la colonne), \texcode{c} (pour que le texte soit centré dans la colonne) et \texcode{r} (pour que le texte soit aligné à droite). % % Joss Wed Nov 16 23:14:36 CET 2005 % Les trois types de colonne (\texcode{l}, \texcode{c} et \texcode{r}) ne passent jamais à la ligne et sont, par conséquent, adaptées aux cellules dont le contenu est court. Lorsque les cellules sont bien remplies, il faut opter pour \texcode{p\marg{larg}} (\texcode{p} comme \gui{paragraphe}) qui compose le contenu de la cellule dans un paragraphe justifié de largeur \meta{larg}.

Une répétition $n$~fois d'un motif élémentaire est facilitée par \texcode{*\marg{$n$}\marg{motif}}. \texcode{*\{20\}\{lcc\}} est équivalent à \texcode{lcclcclcc\dots{}lcc} (en tout $60$~colonnes), plus concrètement le tableau~\vref{ex=tab2} donne un exemple utilisant ce genre de descriptions.

\begin{exemple}{Exemple de tableau (remarquez que le second

  \texcode{\|} fait partie de l'argument de \texcode{*}).\label{ex=tab2}}

\begin{center} \begin{tabular}{|*{5}{p{1cm}|}} \hline 0 & 1 & 2 & 3 & 4
\hline 1 & 2 & 3 & 4 & 5
\hline 2 & 3 & 4 & 5 & 6
\hline \end{tabular} \end{center} </code>

L'argument optionnel \meta{position} définit la position verticale du tableau par rapport à la ligne courante~: \texcode{t} pour \en{top} (le haut du tableau sera aligné avec la ligne courante), \texcode{c} pour \en{center} et \texcode{b} pour \en{bottom} (le bas du tableau sera aligné avec la ligne courante). L'effet de ces options est démontré dans l'exemple~\vref{ex=Arguments_optionnels_tabular}

\begin{exemple}{Démonstration de l'effet de l'argument optionnel de

  ''tabular''\label{ex=Arguments_optionnels_tabular}}

b \begin{tabular}[b]{l} A
B \end{tabular}\quad c \begin{tabular}[c]{l} A
B \end{tabular}\quad t \begin{tabular}[t]{l} A
B \end{tabular} </code>

% % Fin

% Joss Wed Nov 16 23:16:31 CET 2005 % % Il existe d'autres possibilités, que % nous verrons plus bas. Chaque colonne peut être séparée de sa % voisine par un ou plusieurs filets verticaux, que l'on indique à % l'aide du caractère \texcode{\|}. % % Fin

À l'intérieur de l'environnement tabular, on remplit ligne par ligne, chaque ligne se terminant par \\ (ou tabularnewline): % \begin{syntax}

\meta{ligne $1$} \ ''\\''
\meta{ligne $2$} \ ''\\''
\ \ \ $\vdots$
\meta{ligne $n$} \ ''\\''

\end{syntax} % et à l'intérieur de chaque ligne, on remplit cellule par cellule de gauche à droite, chaque cellule étant séparée de la suivante par \texcode{\&}: % \begin{syntax}

\meta{cellule $1$} \& \meta{cellule $2$} \& \dots \& \meta{cellule $m$}

\end{syntax}

L'exemple~\vref{ex=tab} présente un tableau simple.

Exemple de tableau\label{ex=tab}

\begin{center}
\begin{tabular}{|l|r|c||r|}
\hline
Article  & Prix unitaire & Quantité & Prix total \\ 
\hline
Arrosoir &  $19,90$~\EUR & 2 &  $39,80$~\EUR \\
Brouette & $129,00$~\EUR & 1 & $129,00$~\EUR \\
R\^ateau &   $9,90$~\EUR & 1 &   $9,90$~\EUR \\
\hline
Total & & & $178,70$~\EUR \\
\hline 
\end{tabular}
\end{center}

Pour placer des filets verticaux (traits délimitant les colonnes), il faudra insérer \texcode{\|} dans l'argument \meta{format} de l'environnement tabular. Placer des filet horizontaux se fait en plaçant la commande hline (\en{horizontal line}) après le \\.

Par défaut, toutes les colonnes, quel que soit leur type, sont entourées par un blanc contrôlé par le paramètre \param{\\tabcolsep}. Deux colonnes successives sont donc séparées par la valeur $2 \times
\text{\param{\\tabcolsep}}$. Dans un tableau à trois colonnes, on aurait % \begin{center}

\setlength{\tabcolsep}{12pt}
\def \tempa #1{%
  \makebox[0pt][#1]{%
    \setlength{\unitlength}{\tabcolsep}%
    \raisebox{.4ex}{%
      \begin{picture}(1,0)
        \put(0.5,0){\vector(-1,0){0.5}}
        \put(0.5,0){\vector( 1,0){0.5}}
        \put(0.5,.3){\makebox[0pt]%
          {\fboxsep=1pt \fcolorbox{white}{white}%
            {$\scriptstyle \vphantom{p} x$}}}
      \end{picture}%
    }%
  }%
}
\def \tempb {%
  \makebox[0pt][r]{%
    \setlength{\unitlength}{2\tabcolsep}%
    \raisebox{.4ex}{%
      \begin{picture}(1,0)
        \put(0.5,0){\vector(-1,0){0.5}}
        \put(0.5,0){\vector(1,0){0.5}}
        \put(0.5,0.15){\makebox[0pt]%
          {\fboxsep=1pt \fcolorbox{white}{white}%
            {$\scriptstyle \vphantom{p} 2x$}}}
      \end{picture}%
    }%
  }%
}
\begin{tabular}{|c|c|c|}
  \hline
  \tempa{r}Cellule 1          &
  \tempb   Cellule 2          &
  \tempb   Cellule 3\tempa{l} \\
  \hline
\end{tabular}

\end{center} % où $x = \text{\param{\\tabcolsep}}$.

Enfin, il est possible de séparer deux colonnes par autre chose qu'un filet vertical, en remplaçant le \texcode{\|} par \texcode{@\marg{code}}. Dans ce cas, l'espacement entre les colonnes est supprimé, et l'argument \meta{code} de \texcode{@} remplace la barre verticale «~classique~».

$Reponse$ Pour faire un tableau en mode mathématique, on utilisera l'environnement array, dont l'utilisation est similaire. Voir la question~\vref{tableau-maths} pour un exemple.

$Reponse$ L'environnement tabbing permet également de créer des tableaux, avec une optique assez différente. Voir la section~\ref{tabbing} pour des informations complémentaires.

% Joss Sun Nov 20 10:23:41 CET 2005

Où placer son tableau?}

\label{q=Ou_placer_son_tableau}

$Reponse$ Placé tel quel dans un paragraphe, votre tableau va s'intégrer au texte avec les règles d'alignement évoquées à la question~\ref{q=Comment_faire_un_tableau} et illustrées dans l'exemple~\ref{ex=Arguments_optionnels_tabular}.

$Reponse$ Le flottant table défini par la plupart des classes classiques (les classes standard, et leurs clones memoir et les classe KOMA-script). Le tableau peut alors flotter (c'est-à-dire trouver la place la plus confortable) et être affublé d'une légende (commande caption) accompagnée d'un numéro que l'on peut référencer par le mécanisme habituel (label, ref). %

... Voir le tableau~\ref{tab=Un_tableau_simple}.
%
\begin{table}
  \begin{tabular}{ll}
    A & B \\
    C & D \\
  \end{tabular}
  \caption{Un tableau simple}
  \label{tab=Un_tableau_simple}
\end{table}

$Reponse$ Si l'on désire que le tableau ne flotte pas, on pourra utiliser les environnements center, flushleft, qui placeront le tableau dans un paragraphe à part avec un peu d'espace pour le séparer du texte. %

... le tableau suivant:
%
\begin{center}
  \begin{tabular}{ll}
    A & B \\
    C & D \\
  \end{tabular}
\end{center}

On perd cependant toute possibilité d'attacher une légende et de référencer le tableau. Lisez les réponses à la question \gui{Comment

est géré le positionnement des
flottants?}~\ref{q=Comment_est_gere_le_positionnement_des_flottants},

p.~\pageref{q=Comment_est_gere_le_positionnement_des_flottants}.

2_composition/tableaux/construire_un_tableau.1476828415.txt.gz · Dernière modification: 2016/10/19 00:06 par jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0