FAQ LaTeX/TeXConsultez toutes les FAQ
Nombre d'auteurs : 25, nombre de questions : 148, dernière mise à jour : 31 août 2017 Ajouter une question
Bienvenue sur la FAQ LaTeX, elle répondra aux questions les plus fréquemment posées.
Je tiens à souligner que cette faq ne garantit en aucun cas que les informations qu'elle propose soient correctes ; les auteurs font le maximum, mais l'erreur est humaine. Cette faq ne prétend pas non plus être complète.
- Comment insérer une barre oblique dans une cellule ?
- Comment tracer un filet vertical ne faisant pas toute la largeur ?
- Comment supprimer la première cellule d'un tableau ?
- Comment faire une liste des tableaux ?
- Comment changer le séparateur de colonnes ?
- Comment définir un descripteur de colonnes personnel ?
- Comment modifier le comportement d'une colonne ?
- Comment associer une légende à un tableau ?
- Comment avoir des appels de notes de bas de pages dans un tableau ?
- Comment fusionner les cellules d'une même ligne ?
- Comment fusionner les cellules d'une même colonne ?
- Comment fusionner des cellules sur deux lignes et deux colonnes ?
- Comment augmenter l'espace entre les filets et le texte ?
Pour insérer une barre oblique dans une cellule, il est possible d'utiliser l'extension slashbox.
Cette extension n'est pas par défaut dans les distributions courantes. Il faudra installer cette extension manuellement.
Une autre solution est d'utiliser l'extension diagbox, disponible sur une distribution comme Tex Live.
Ainsi le code suivant (trouvé dans la documentation de diagbox) :
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 6 7 8 | \begin{tabular}{|l|ccc|} \hline \diagbox{Time}{Day} & Mon & Tue & Wed \\ \hline Morning & used & used &\\ Afternoon && used & used \\ \hline \end{tabular} |
donne :
Pour réaliser un filet vertical interrompu, il existe la commande \cline[a-b] où :
- a est le numéro de la colonne de début de filet ;
- b est le numéro de la colonne de fin de filet.
Ainsi le code suivant :
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | \begin{tabular}{|c|c|c|c|c|c|} \hline a & b & c & d & e & f \\ \cline{2-3}\cline{5-6} 1 & 2 & 3 & 4 & 5 & 6 \\ \cline{1-1}\cline{6-6} 7 & 8 & 1 & 2 & 3 & 4 \\ \hline \end{tabular} |
L'astuce consiste à combiner les commandes \cline et \multicolumn. Il faut faire une \multicolumn{1}{c|}{}, donc vide, et ne pas tracer le filet vertical au-dessus de cette cellule.
Ainsi le code suivant :
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | \begin{tabular}{|c|c|c|} \cline{2-3} \multicolumn{1}{c|}{} & Entr\'ee A & Entr\'ee B \\ \hline Entr\'ee 1 & 10 & 20 \\ \hline Entr\'ee 2 & 40 & 60 \\ \hline \end{tabular} |
Pour imprimer une liste de tableaux, il suffit d'ajouter la commande \listoftables à l'endroit du document où vous voulez la voir imprimer. Tous les tableaux se trouvant dans un environnement table se verront référencés dans cette liste.
Comme les références des pages sont indiquées dans cette liste, il faut compiler deux fois.
Pour changer le séparateur de colonnes, il faut remplacer le caractère « | » ( tube ou pipe) qui se trouve entre deux descripteurs de colonnes par @{ <sep> } où <sep> sera le nouveau séparateur de colonnes. Vous pouvez y mettre un mot ou un symbole (mathématique ou non).
Ainsi, le code suivant :
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 | \begin{tabular}{|l @{ ou } l|} noir & blanc\\ bien & mal \\ tout & rien\\ \end{tabular} |
Il existe aussi !{<sep>} qui conservera l'espacement des colonnes.
L'extension array fournit deux nouveaux descripteurs :
- m{<largeur>} : le texte de ce type de colonne se comportera comme un paragraphe (retour à la ligne) et les autres cellules seront centrées par rapport à cette colonne ;
- b{<largeur>} : le texte de ce type de colonne se comportera comme un paragraphe (retour à la ligne) et les autres cellules seront alignées en bas (b : bottom).
Pour définir un type de colonne personnel, il faut utiliser la commande \newcolumntype{<nom>}[1]{>{<commande>}<type>{#1}} où :
- <nom> : nom que l'on donne à notre nouvelle colonne ;
- <commande> : on y mettra les commandes qui régiront notre colonne ;
- <type> : type de colonne ("c", "l", "r", "p", "m", "b") que l'on veut redéfinir
Dans le préambule du document, il est possible d'ajouter :
Code LaTeX : | Sélectionner tout |
1 2 3 | \newcolumntype{R}[1]{>{\raggedleft\arraybackslash}m{#1}} \newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}} \newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}} |
La commande \arraybackslash sert à rendre à la commande \\ la fonction \tabularnewline. Cela est nécessaire lorsqu'on utilise des commandes telles que \raggedleft, \raggedright, \centering qui redéfinissent la commande \\. |
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 6 7 | \begin{tabular}{|L{3cm}|C{3cm}|R{3cm}|} \hline \raggedright Une cellule contenant un texte tr\`es long & Une autre cellule contenant un texte encore plus long, beaucoup, beaucoup plus long & Une autre cellule contenant un texte encore plus long, beaucoup, beaucoup plus long\\ \hline \end{tabular} |
Les descripteurs >{...} et <{...} permettent de modifier le comportement d'une colonne complète : ils permettent de mettre une colonne en couleur (voir section les tableaux en couleur) mais ont aussi d'autres utilisations :
- >{...} permet par exemple de rajouter du texte "avant" la colonne et <{...} "après" la colonne.
Ainsi, le code suivant :
Code LaTeX : Sélectionner tout 1
2
3
4
5
6
7
8
9
10\begin{tabular}{|ll|} chat & les souris\\ chien & les chats \\ cheval & l'avoine\\ \end{tabular}\hfill \begin{tabular}{|>{le }l<{ aime :}l|} chat & les souris\\ chien & les chats \\ cheval & l'avoine\\ \end{tabular}
donne :
- >{...} accepte les commandes LaTeX telles que \bfseries ou \Large, ce qui peut s’avérer très pratique.
Ainsi, le code :
Code LaTeX : Sélectionner tout 1
2
3
4
5\begin{tabular}{|>{\bfseries}l|>{\Large}l|} une & une \\ colonne & colonne \\ en gras & avec \verb!\Large!\\ \end{tabular}
- >{...} et <{...} permettent de passer une colonne entière en mode mathématique.
Ainsi, le code suivant :
Code LaTeX : Sélectionner tout 1
2
3
4
5\begin{tabular}{|l|>{$}c<{$}|} un symbole & \alpha\\ une fraction & \frac{2}{3} \\ une \'equation & e^{i\pi}+1=0\\ \end{tabular}
donne :
La commande \caption{<legende>} permet de mettre une légende à un tableau. Cette commande doit se trouver dans un environnement flottant tel que l'environnement table.
Ainsi, le code suivant :
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | \begin{table} \begin{center} \begin{tabular}{|c|c|c|} \hline Voici &un tableau& et une l\'egende\\ \hline \end{tabular} \end{center} \caption{mon tableau} \end{table} |
Pour les options et la configuration, il y a la (future) section sur les flottants)
La commande \footnote{<note>} ne fonctionne pas à l'intérieur d'un environnement tel que tabular. Il va donc falloir utiliser les commandes \footnotemark dans le tableau, à l'endroit où l'on souhaite voir apparaître l'appel de note et la commande \footnotetex{<note>} à l'extérieur du tableau.
Ainsi, le code suivant :
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 6 | \begin{tabular}{|c|c|c|} \hline Voici &un tableau\footnotemark& avec une note de bas de page\\ \hline \end{tabular} \footnotetext{ma note de bas de page} |
La commande \multicolumn{<nombre de cellules à fusionner>}{<descripteur de colonne>}{<texte>} permet de fusionner les colonnes d'une même ligne.
Ainsi, le code suivant :
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 6 7 | \begin{tabular}{|c|c|c|} \hline 1&2&3\\ \hline \multicolumn{2}{|c|}{a}&b\\ \hline \end{tabular} |
L'emploi de « | » ( tube ou pipe) peut être délicat.
En effet, le code suivant :
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 6 7 | \begin{tabular}{|c|c|c|} \hline 1&2&3\\ \hline b&\multicolumn{2}{|c|}{a}\\ \hline \end{tabular} |
Les filets verticaux entre "a" et "b" sont tracés deux fois, ce qui est gênant. Dans ce cas, il suffit de supprimer | dans la commande \multicolumn.
Ainsi, le code suivant :
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 6 7 | \begin{tabular}{|c|c|c|} \hline 1&2&3\\ \hline b&\multicolumn{2}{c|}{a}\\ \hline \end{tabular} |
La commande \multicolumn permet de supprimer la première cellule d'un tableau : Comment supprimer la première cellule d'un tableau ?
Pour fusionner les cellules d'une même colonne, on utilisera l'extension multirow. Il faut donc ajouter \usepackage{multirow} dans le préambule et utiliser dans le tableau la commande \multirow{<nombre de lignes à fusionner>}{<taille>}{<texte>}. <taille> est la largeur de la cellule, elle peut être remplacée par * qui ajustera automatiquement la taille au contenu de la cellule.
Ainsi, le code suivant :
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | \begin{tabular}{|c|c|c|} \hline 1&2&3\\ \hline \multirow{2}{*}{A}&4&5\\ \cline{2-3} &6&7\\ \hline \end{tabular} |
On peut remarquer la présence de la commande \cline. En effet, \hline tracerait une ligne sur tout le tableau sans se soucier des cellules fusionnées.
Il est possible de combiner les commandes \multirow et \multicolumn pour fusionner plusieurs cellules juxtaposées.
Ainsi, le code suivant :
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | \begin{tabular}{|c|c|c|} \hline 1 & 2 & 3 \\ \hline \multicolumn{2}{|c|}{\multirow{2}{*}{ABC}} & 4 \\ \cline{3-3} \multicolumn{2}{|c|}{} & 5 \\ \hline \end{tabular} |
L'espace entre les filets horizontaux et le texte d'une cellule peut être trop faible, notamment si l'on veut des fractions dans une cellule.
En effet, le code suivant :
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 6 | \begin{document} \begin{tabular}{|c|c|c|} \hline $\dfrac{1}{2}$&$\dfrac{3}{7}$&$\dfrac{12}{9}$\\ \hline \end{tabular} |
Une solution pour pallier ce défaut est de modifier la valeur de \arraystretch à l'aide de \renewcommand.
Ainsi, le code suivant :
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 6 | \renewcommand{\arraystretch}{2} \begin{tabular}{|c|c|c|} \hline $\dfrac{1}{2}$&$\dfrac{3}{7}$&$\dfrac{12}{9}$\\ \hline \end{tabular} |
Une autre solution est d'utiliser l'extension cellspace. On ajoutera dans le préambule \usepackage{cellspace} ainsi que \cellspacetoplimit=<h1> et \cellspacebottomlimit=<h2> où :
- h1 est la distance entre le texte et le filet supérieur de la cellule ;
- h2 est la distance entre le texte et le filet inférieur de la cellule.
Il faudra aussi rajouter "S" devant les descripteurs de colonnes.
Ainsi le code suivant :
Code LaTeX : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | \documentclass[10pt,a4paper]{article} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{cellspace} \cellspacetoplimit=4pt \cellspacebottomlimit=4pt \begin{document} \begin{tabular}{|Sc|Sc|Sc|} \hline $\dfrac{1}{2}$&$\dfrac{3}{7}$&$\dfrac{12}{9}$\\ \hline \end{tabular} \end{document} |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.