Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
2_composition:tableaux:construire_un_tableau [2002/09/07 13:36]
markey créée
2_composition:tableaux:construire_un_tableau [2020/12/12 12:11] (Version actuelle)
dbitouze Correction de balises de codes LaTeX
Ligne 1: Ligne 1:
-\question{Comment faire un tableau ?} %7.1+====== ​Comment faire un tableau? ​======
  
-\reponse L'​environnement permettant de faire un tableau en mode texte 
-s'​appelle \env{tabular}. Il prend un argument optionnel et un argument 
-obligatoire. ​ 
  
-L'argument optionnel d\'​efinit la position vertical du tableau +$\Reponse$  ​L'environnement permettant de faire un tableau ​en mode texte 
-par rapport \`a la ligne courante : \texttt t pour \texttt{top} (le haut du +s'appelle ''​tabular''​. Il prend un argument optionnel ​et un argument obligatoire.
-tableau sera align\'e avec la ligne courante), \texttt c pour \texttt{center},​ +
-et \texttt b pour \texttt{bottom} (le bas du +
-tableau sera align\'​e avec la ligne courante).+
  
-L'​argument obligatoire ​d\'​ecrit ​le format des colonnes du tableau. ​Une colonne +<code latex> 
-est repr\'esent\'​ee ​par une lettre parmi \texttt ​l (pour que le texte soit +\begin{tabular}[position]{format} 
-align\'​e \`a gauche dans la colonne), ​\texttt ​c (pour que le texte soit +  contenu du tableau 
-centr\'​e ​dans la colonne) et \texttt ​r pour que le texte soit align\'​e \`a +\end{tabular} 
-droite. ​Il existe d'autres possibilit\'esque nous verrons plus bas. Chaque +</​code>​ 
-colonne peut \^etre s\'epar\'ee de sa voisine ​par une ou plusiurs lignes + 
-verticalesque l'on indique \`a l'aide du caract\`ere \texttt{\string|}. +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 <​latex>​\TeX</​latex>​ affichera un message 
 +d'erreur. ​ Une colonne est représentée ​par une lettre parmi 
 +  * ''​l'' ​(pour que le texte soit aligné à gauche dans la colonne), 
 +  * ''​c'' ​(pour que le texte soit centré ​dans la colonne) et 
 +  * ''​r''​ (pour que le texte soit aligné à droite). 
 + 
 +Les trois types de colonne (''​l'',​ ''​c''​ et ''​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 
 +rempliesil faut opter pour ''​p{larg}''​ (''​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 
 +''​*{n}{motif}''​. ​ ''​*{20}{lcc}''​ est équivalent à ''​lcclcclcc...lcc''​ (en tout 
 +60 colonnes), plus concrètement le tableau~\vref{ex=tab2donne un exemple 
 +utilisant ce genre de descriptions.
  
-\`A l'int\'erieur ​de l'environnement \env{tabular},​ on remplit chaque case du +Exemple de tableau (remarquez que le second ​''​|''​ fait partie ​de l'argument ​de ''​*''​).
-tableau, ligne par ligne, de gauche \`a droite et de haut en bas. Deux cases +
-cons\'ecutives doivent \^etre  +
-s\'epar\'ees par le caract\`ere \texttt\&,​ deux lignes cons\'ecutives par \cmd{\char92\relax}. +
-Deux lignes peuvent \^etre s\'​epar\'​ees par un trait horizontal en pla\c cant +
-la commande \cmd{hline} apr\`es le \cmd{\char92\relax}+
  
-La figure~\ref{extab} donne un exemple de tableau simple. +<code latex>
-\DeleteShortVerb{\|} +
-\begin{exemple}{Exemple de tableau\label{extab}}+
 \begin{center} \begin{center}
-\begin{tabular}{|l|r|c||r|}+\begin{tabular}{|*{5}{p{1cm}|}}
 \hline \hline
-Article ​Prix unitaire ​Quantit\'​e ​Prix total \\ +3 & 4 \\
 \hline \hline
-Arrosoir &  $19,​90$~\EUR ​& 2 & $39,​80$~\EUR \\ +& 2 & \\ 
-Brouette ​ ​$129,​00$~\EUR ​1 & $129,00$~\EUR \\ +\hline 
-Rateau ​$9,​90$~\EUR ​$9,​90$~\EUR ​\\+5 & 6 \\
 \hline \hline
-Total & & & $178,​70$~\EUR \\ 
-\hline ​ 
 \end{tabular} \end{tabular}
 \end{center} \end{center}
-\end{exemple} +</​code>​
-\MakeShortVerb{\|}+
  
-\medskip 
-Il existe quelques autres descripteurs de colonnes ; en particulier,​ le 
-descripteur \texttt{p\marg{<​longueur>​}},​ qui sp\'​ecifie une colonne de 
-longueur donn\'​ee,​ et dont le texte est align\'​e \`a gauche. On peut aussi 
-utiliser la construction \texttt{*\marg{<​nombre>​}{<​description>​}},​ qui permet 
-de d\'​efinir de mani\`ere succinte en ensemble de colonnes similaires. Le 
-tableau~\ref{extab2} donne un exemple utlisant ce genre de descriptions. 
-Enfin, il est possible de s\'​eparer deux colonnes par autre chose qu'un trait 
-vertical, en rempla\c cant le \text{\string|} par \texttt{@\marg{...}}. Dans 
-ce cas, l'​espacement entre les colonnes est supprim\'​e,​ et l'​argument de 
-\texttt{\string@} est mis \`a la place. 
  
-\DeleteShortVerb{\|+L'​argument optionnel ​\meta{position} définit la position verticale du 
-\begin{exemple}{Exemple de tableau\label{extab2}}+tableau par rapport à la ligne courante~: ''​t''​ pour //top// 
 +(le haut du tableau sera aligné avec la ligne courante), ''​c''​ 
 +pour //center// et ''​b''​ pour //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
 + 
 +Démonstration de l'​effet de l'​argument optionnel de ''​tabular'':​ 
 + 
 +<code latex> 
 +\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>​ 
 + 
 + 
 +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{\|}. 
 + 
 + 
 +À l'​intérieur de l'​environnement ''​tabular'',​ on remplit ligne par 
 +ligne, chaque ligne se terminant par ''​\\''​ (ou 
 +''​tabularnewline''​):​ 
 + 
 +<code latex> 
 +  \meta{ligne $1$} \ ''​\\''​ 
 +  \meta{ligne $2$} \ ''​\\''​ 
 +  \ \ \ $\vdots$ 
 +  \meta{ligne $n$} \ ''​\\''​ 
 +</​code>​ 
 + 
 +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 
 +''&'':​ 
 + 
 +<code latex> 
 +  \meta{cellule $1$} \& \meta{cellule $2$} \& \dots \& \meta{cellule $m$} 
 +</​code>​ 
 + 
 +L'​exemple~\vref{ex=tab} présente un tableau simple. 
 + 
 +Exemple de tableau\label{ex=tab} 
 + 
 +<code latex>
 \begin{center} \begin{center}
-\begin{tabular}{|*{5}{p{1cm}|}}+\begin{tabular}{|l|r|c||r|}
 \hline \hline
-3 & 4 \\+Article  ​Prix unitaire ​Quantité ​Prix total \\ 
 \hline \hline
-& 2 & \\ +Arrosoir &  $19,​90$~\EUR ​& 2 &  ​$39,​80$~\EUR \\ 
-\hline +Brouette ​$129,​00$~\EUR ​1 & $129,00$~\EUR \\ 
-5 & 6 \\+R\^ateau ​  $9,​90$~\EUR ​  $9,​90$~\EUR ​\\
 \hline \hline
 +Total & & & $178,​70$~\EUR \\
 +\hline ​
 \end{tabular} \end{tabular}
 \end{center} \end{center}
-\end{exemple+</​code>​ 
-\MakeShortVerb{\|}+ 
 + 
 +Pour placer des filets verticaux (traits délimitant les colonnes), il 
 +faudra insérer ''​|''​ dans l'​argument \meta{format} de 
 +l'​environnement ''​tabular''​. ​ Placer des filet horizontaux se fait 
 +en plaçant la commande ''​\hline''​ (//​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 \tabcolsep. 
 +Deux colonnes successives sont donc séparées par la valeur $2 \times \textrm{\backslash tabcolsep}$. 
 +Dans un tableau à trois colonnes, on aurait 
 + 
 +<code latex> 
 +\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} 
 +</​code>​ 
 + 
 +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 ''​|''​ par ''​@{code}''​. 
 +Dans ce cas, l'​espacement entre les colonnes est supprimé,​ 
 +et l'​argument \meta{code} de ''​@''​ 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. 
 + 
 + 
 +===== Où 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''​). 
 + 
 + 
 +<code latex> 
 +\dots{}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} 
 +</​code>​ 
 + 
 + 
 + 
 +$\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. 
 + 
 + 
 +<code latex> 
 +\dots{}le tableau suivant: 
 + 
 +\begin{center} 
 +  \begin{tabular}{ll} 
 +    A & B \\ 
 +    C & D \\ 
 +  \end{tabular} 
 +\end{center} 
 +</​code>​ 
  
 +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}.
  
-\reponse Pour faire un tableau en mode math\'​ematiques,​ on utilisera 
-l'​environnement \env{array},​ donc l'​utilisation est similaire. Voir la 
-question~\ref{tableau-maths} pour un exemple. 
  
-\reponse L'​environnement \env{tabbing} permet \'​egalement de cr\'​eer des +{{htmlmetatags>​metatag-keywords=(LaTeX) 
-tableaux, avec une optique assez diff\'​erente. Voir la section~\ref{tabbing} +metatag-og:​title=(Comment faire un tableau?) 
-pour des informations compl\'​ementaires.+metatag-og:​site_name=(FAQ LaTeX francophone) 
 +}}
  
2_composition/tableaux/construire_un_tableau.1031398579.txt.gz · Dernière modification: 2002/09/07 13:36 par markey
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0