Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
2_composition:tableaux:tableau_sur_plusieurs_pages [2002/09/07 13:36] markey créée |
2_composition:tableaux:tableau_sur_plusieurs_pages [2019/04/02 09:10] (Version actuelle) jejust Mise en forme de la description des commandes et du code. |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | \question{Comment gérer les tableaux de plus d'une page ?} %7.2 | + | ====== Comment composer des tableaux de plus d'une page? ====== |
+ | |||
+ | |||
+ | $\Reponse$ Le package [[ctanpkg>supertabular]] permet de définir de longs | ||
+ | tableaux, qui seront coupés automatiquement par <latex>\LaTeX</latex> si | ||
+ | nécessaire, pour changer de page. L'environnement s'appelle ''supertabular''. | ||
+ | À l'intérieur de cet environnement, on définit le contenu du tableau | ||
+ | de la même façon que dans l'environnement ''tabular''. On peut, en plus, | ||
+ | utiliser les commandes suivantes : | ||
+ | |||
+ | * ''\tablefirsthead{...}'' définit le contenu de la première ligne du tableau ; | ||
+ | * ''\tablehead{...}'' définit le contenu de la première ligne qui sera insérée en cas de changement de page au milieu du tableau ; | ||
+ | * ''\tabletail{...}'' définit le contenu de la dernière ligne d'une page, en cas de changement de page au milieu du tableau ; | ||
+ | * ''\tablelasttail{...}'' définit le contenu de la dernière ligne du tableau ; | ||
+ | * ''\topcaption{...}'' et ''\bottomcaption{...}'' permettent de mettre une légende sur ce tableau, soit au début, soit à la fin (ces deux commandes sont incompatibles, si l'on utilise les deux, seule la légende de fin sera appliquée). ''\tablecaption{}'' place la légende à sa position « habituelle », qui est par défaut le haut du tableau. | ||
- | \reponse Le package \pack{supertabular} permet de d\'efinir de longs tableaux, | ||
- | qui seront coup\'es automatiquement par \LaTeX si n\'ecessaire, pour changer | ||
- | de page. L'environnement s'appelle \env{supertabular}. \`A l'int\'erieur de | ||
- | cet environnement, on d\'efinit le contenu du tableau de la m\^eme fa\c con | ||
- | que dans l'environnement \env{tabular}.On peut, en plus, utiliser les commandes suivantes : | ||
- | \begin{itemize} | ||
- | \item \cmd{tablefirsthead}\marg{...}, qui d\'efinit le contenu de la | ||
- | premi\`ere ligne du tableau ; | ||
- | \item \cmd{tablehead}\marg{...} d\'efinit le contenu de la premi\`ere ligne | ||
- | qui sera ins\'er\'ee en cas de changement de page au milieu du tableau ; | ||
- | \item \cmd{tabletail}\marg{...} d\'efinit le contenu de la derni\`ere ligne | ||
- | d'une page, en cas de changement de page au milieu du tableau ; | ||
- | \item \cmd{tablelasttail}\marg{...} d\'efinit le contenu de la derni\`ere ligne du | ||
- | tableau ; | ||
- | \item \cmd{topcption}\marg{...}, \cmd{bottomcaption}\marg{...} permettent de | ||
- | mettre une l\'egende sur ce tableau, soit au d\'ebut, soit \`a la fin. | ||
- | \cmd{tablecaption} place la l\'egende \`a sa position <<~habituelle~>>, qui | ||
- | est par d\'efaut le haut du tableau. | ||
- | \end{itemize} | ||
Voici un exemple : | Voici un exemple : | ||
- | \begin{noexemple} | + | |
+ | <code latex> | ||
\begin{center} | \begin{center} | ||
- | \tablefirsthead{\hline \multicolumn{1}{|c}{Nombre} | + | \tablefirsthead{\hline |
- | & \multicolumn{1}{c}{Nombre$^2$} | + | \multicolumn{1}{|c}{Nombre} & \multicolumn{1}{c}{Nombre$^2$} & Nombre$^4$ & \multicolumn{1}{c|}{!Nombre} \\ |
- | & Nombre$^4$ | + | \hline% |
- | & \multicolumn{1}{c|}{Nombre!} \\ \hline} | + | } |
- | \tablehead{\hline \multicolumn{4}{|l|}{\small\textsl{% | + | \tablehead{\hline |
- | suite du tableau}}\\ | + | \multicolumn{4}{|l|}{\small\textsl{suite du tableau}}\\ |
- | \hline \multicolumn{1}{|c}{ Nombre} | + | \hline |
- | & \multicolumn{1}{c}{Nombre$^2$} | + | \multicolumn{1}{|c}{ Nombre} & \multicolumn{1}{c}{Nombre$^2$} & Nombre$^4$ & \multicolumn{1}{c|}{Nombre!} \\ |
- | & Nombre$^4$ | + | \hline% |
- | & \multicolumn{1}{c|}{Nombre!} \\ \hline} | + | } |
- | \tabletail{\hline\multicolumn{4}{|r|}{\small\textsl{% | + | \tabletail{\hline |
- | Suite \`a la page suivante~\ldots}}\\\hline} | + | \multicolumn{4}{|r|}{\small\textsl{Suite à la page suivante...}}\\ |
- | \tablelasttail{\hline} | + | \hline% |
- | \bottomcaption{Exemple de grand tableau} | + | } |
- | \par | + | \tablelasttail{\hline} |
- | \begin{supertabular}{| r@{\hspace{6.5mm}}| | + | \topcaption{Exemple} |
+ | \bottomcaption{Exemple de grand tableau} | ||
+ | % | ||
+ | \begin{supertabular}{| r@{\hspace{6.5mm}}| | ||
r@{\hspace{5.5mm}}| r | r|} | r@{\hspace{5.5mm}}| r | r|} | ||
- | 1 & 1 & 1 & 1 \\ | + | 1 & 1 & 1 & 1 \\ |
- | 2 & 4 & 16 & 2 \\ | + | 2 & 4 & 16 & 2 \\ |
- | 3 & 9 & 81 & 6 \\ | + | 3 & 9 & 81 & 6 \\ |
- | 4 & 16 & 256 & 24 \\ | + | 4 & 16 & 256 & 24 \\ |
- | 5 & 25 & 625 & 120 \\ | + | 5 & 25 & 625 & 120 \\ |
- | 6 & 36 & 1296 & 720 \\ | + | 6 & 36 & 1296 & 720 \\ |
- | 7 & 49 & 2401 & 5040 \\ | + | 7 & 49 & 2401 & 5040 \\ |
- | 8 & 64 & 4096 & 40320 \\ | + | 8 & 64 & 4096 & 40320 \\ |
- | ... ... ... ... ... | + | 9 & 81 & 6561 & 362880 \\ |
- | \end{supertabular} | + | ... & ... & ... & ... \\ |
+ | \end{supertabular} | ||
\end{center} | \end{center} | ||
- | \end{noexemple} | + | </code> |
+ | <latexdoc> | ||
+ | \documentclass[10pt,french]{article} | ||
+ | \usepackage[utf8]{inputenc} | ||
+ | \usepackage{supertabular} | ||
+ | \pagestyle{empty} | ||
- | \reponse Le package \pack{longtable} est assez semblable au pr\'ec\'edent, | + | \begin{document} |
- | mais en un peu mieux. Il permet notamment d'avoir (modulo un nombre suffisant | + | \tablefirsthead{\hline |
- | de compilations) la m\^eme largeur de colonnes dans tout le tableau, m\^eme si | + | \multicolumn{1}{|c}{Nombre} & \multicolumn{1}{c}{Nombre$^2$} & Nombre$^4$ & \multicolumn{1}{c|}{!Nombre} \\ |
- | celui-ci est coup\'e sur plusieurs pages. | + | \hline% |
- | Les en-t\^etes se d\'efinissent de mani\`ere un peu diff\'erente, comme dans | + | } |
- | l'exemple suivant : | + | \tablehead{\hline |
+ | \multicolumn{4}{|l|}{\small\textsl{suite du tableau}}\\ | ||
+ | \hline | ||
+ | \multicolumn{1}{|c}{ Nombre} & \multicolumn{1}{c}{Nombre$^2$} & Nombre$^4$ & \multicolumn{1}{c|}{Nombre!} \\ | ||
+ | \hline% | ||
+ | } | ||
+ | \tabletail{\hline | ||
+ | \multicolumn{4}{|r|}{\small\textsl{Suite à la page suivante...}}\\ | ||
+ | \hline% | ||
+ | } | ||
+ | \tablelasttail{\hline} | ||
+ | \topcaption{Exemple} | ||
+ | \bottomcaption{Exemple de grand tableau} | ||
+ | % | ||
+ | \begin{supertabular}{| r@{\hspace{6.5mm}}| | ||
+ | r@{\hspace{5.5mm}}| r | r|} | ||
+ | 1 & 1 & 1 & 1 \\ | ||
+ | 2 & 4 & 16 & 2 \\ | ||
+ | 3 & 9 & 81 & 6 \\ | ||
+ | 4 & 16 & 256 & 24 \\ | ||
+ | 5 & 25 & 625 & 120 \\ | ||
+ | 6 & 36 & 1296 & 720 \\ | ||
+ | 7 & 49 & 2401 & 5040 \\ | ||
+ | 8 & 64 & 4096 & 40320 \\ | ||
+ | 9 & 81 & 6561 & 362880 \\ | ||
+ | ... & ... & ... & ... \\ | ||
+ | \end{supertabular} | ||
+ | \end{document} | ||
+ | </latexdoc> | ||
- | \begin{noexemple} | + | |
- | \begin{longtable} | + | |
- | {|p{0.2\linewidth}|p{0.2\linewidth}|p{0.2\linewidth}|} | + | $\Reponse$ Le package [[ctanpkg>longtable]] est assez semblable au |
+ | précédent, mais en un peu mieux. Il permet notamment d'avoir | ||
+ | (modulo un nombre suffisant de compilations) la même largeur de | ||
+ | colonnes dans tout le tableau, même si celui-ci est coupé sur | ||
+ | plusieurs pages. Les en-têtes se définissent de manière un peu | ||
+ | différente, comme dans l'exemple suivant : | ||
+ | |||
+ | |||
+ | <code latex> | ||
+ | \begin{longtable}{|p{0.2\linewidth}|p{0.2\linewidth}|p{0.2\linewidth}|} | ||
\hline | \hline | ||
- | Premiere colonne & Deuxieme & Troisieme \endfirsthead | + | Première colonne & Deuxième & Troisième |
+ | \endfirsthead | ||
\hline | \hline | ||
- | Premiere & Deuxieme & Troisieme \\ | + | Première & Deuxième & Troisième \\ |
- | \multicolumn{3}{|p{0.6666\linewidth}|}{Suite ... } \\ | + | \multicolumn{3}{|p{0.6666\linewidth}|}{Suite...}\\ |
\endhead | \endhead | ||
\hline | \hline | ||
\multicolumn{3}{|p{0.6666\linewidth}|}{Suite page suivante} | \multicolumn{3}{|p{0.6666\linewidth}|}{Suite page suivante} | ||
- | \\ \hline \endfoot \hline | + | \\ \hline |
- | \multicolumn{3}{|p{0.6666\linewidth}|}{C'est fini} \\ | + | \endfoot |
+ | \hline | ||
+ | \multicolumn{3}{|p{0.6666\linewidth}|}{Fin}\\ | ||
+ | \hline | ||
+ | \endlastfoot | ||
\hline | \hline | ||
- | \endlastfoot \hline | ||
1 & 1 & 1 \\ | 1 & 1 & 1 \\ | ||
2 & 4 & 16 \\ | 2 & 4 & 16 \\ | ||
Ligne 89: | Ligne 135: | ||
2 & 4 & 16 \\ | 2 & 4 & 16 \\ | ||
3 & 9 & 81 \\ | 3 & 9 & 81 \\ | ||
- | ... ... ... | + | ... & ... & ... \\ |
\end{longtable} | \end{longtable} | ||
- | \end{noexemple} | + | </code> |
+ | |||
+ | <latexdoc> | ||
+ | \documentclass[10pt,french]{article} | ||
+ | \usepackage[utf8]{inputenc} | ||
+ | \usepackage{longtable} | ||
+ | \pagestyle{empty} | ||
+ | |||
+ | \begin{document} | ||
+ | \begin{longtable}{|p{0.2\linewidth}|p{0.2\linewidth}|p{0.2\linewidth}|} | ||
+ | \hline | ||
+ | Première colonne & Deuxième & Troisième | ||
+ | \endfirsthead | ||
+ | \hline | ||
+ | Première & Deuxième & Troisième \\ | ||
+ | \multicolumn{3}{|p{0.6666\linewidth}|}{Suite...}\\ | ||
+ | \endhead | ||
+ | \hline | ||
+ | \multicolumn{3}{|p{0.6666\linewidth}|}{Suite page suivante} | ||
+ | \\ \hline | ||
+ | \endfoot | ||
+ | \hline | ||
+ | \multicolumn{3}{|p{0.6666\linewidth}|}{Fin}\\ | ||
+ | \hline | ||
+ | \endlastfoot | ||
+ | \hline | ||
+ | 1 & 1 & 1 \\ | ||
+ | 2 & 4 & 16 \\ | ||
+ | 3 & 9 & 81 \\ | ||
+ | 1 & 1 & 1 \\ | ||
+ | 2 & 4 & 16 \\ | ||
+ | 3 & 9 & 81 \\ | ||
+ | 1 & 1 & 1 \\ | ||
+ | 2 & 4 & 16 \\ | ||
+ | 3 & 9 & 81 \\ | ||
+ | 1 & 1 & 1 \\ | ||
+ | 2 & 4 & 16 \\ | ||
+ | 3 & 9 & 81 \\ | ||
+ | ... & ... & ... \\ | ||
+ | \end{longtable} | ||
+ | \end{document} | ||
+ | </latexdoc> | ||
+ | |||
+ | |||
+ | {{htmlmetatags>metatag-keywords=(LaTeX,grand tableau,tableau multi-page,mise en forme,flottants,array,long table) | ||
+ | metatag-og:title=(Composer des tableaux de plus d'une page?) | ||
+ | metatag-og:site_name=(FAQ LaTeX francophone) | ||
+ | }} | ||