Avec LaTeX, il n’est pas absolument évident de réaliser des tableaux à double entrée du type suivant :
Ce n’est pas très compliqué, mais il faut un peu d’astuce. C’est ce qu’explique ce billet.
Ce qui est facile avec LaTeX, c’est de dessiner des tableaux parfaitement rectangulaires. À titre d’exemple, voici un code très simple, et son résultat :
\begin{tabular}{|l|c c c|}
\hline
& A & B & C \\
\hline
$\alpha$ & $\times$ & $\times$ & \\
$\beta$ & $\times$ & & $\times$ \\
\hline
\end{tabular}
Cependant, la case située tout en haut à gauche ne sert à rien, et l’on aimerait s’en affranchir, de façon à réaliser un vrai tableau à double entrée. L’idée de base est alors la suivante :
l|c c c|
au lieu de |l|c c c|
;\hline
devient \cline{2-4}
;\vline
, mais elle trace un filet vertical, sur une ligne, à l’endroit courant et pas tout à gauche, donc cela ne produit pas le résultat escompté…La commande \multicolumn
sert à créer des cases qui s’étendent sur plusieurs colonnes. Elle prend donc en paramètres le nombre de colonnes à occuper, la spécification du format de la case en question, bordures comprises, et enfin le contenu de la case.
Ce qui est intéressant, c’est qu’avec cette commande, on puisse spécifier les bordures d’une case. Nous allons donc la détourner pour créer les cases de gauche des lignes 2 et 3 : elles feront une colonne de large (donc pas de multicolonnage au sens propre), mais nous pourront ainsi tracer leur filet de gauche. D’où le code final :
\begin{tabular}{l|c c c|}
\cline{2-4}
& A & B & C \\
\hline
\multicolumn{1}{|l|}{$\alpha$} & $\times$ & $\times$ & \\
\multicolumn{1}{|l|}{$\beta$} & $\times$ & & $\times$ \\
\hline
\end{tabular}
Moralité : pour tracer une bordure verticale récalcitrante sur une case (et non une colonne en entier), pensez à \multicolumn
. Ceci permet également de modifier l’alignement d’une cellule isolée, comme souligné sur la FAQ LaTeX francophone.