Pourquoi les tableaux en sont laids ?#

Depuis longtemps, plusieurs auteurs notent que les exemples de tableaux donnés par Leslie Lamport dans son manuel ne sont pas terribles, qu’ils ont mal inspiré les utilisateurs et ont généralisé une mise en forme assez médiocre des tableaux en Il est parfois même difficile de comprendre le « sens » d’exemples du livre de Lamport.

De fait, des tableaux générés avec peuvent paraître laids si leurs auteurs n’y consacrent pas un minimum d’attention. Voici ici quelques pistes pour éviter cet écueil.

1.  L’espacement vertical#

Le problème de l’espacement vertical est évident pour tous et est abordé dans plusieurs extensions. La question « Comment améliorer l’espacement entre les lignes d’un tableau ? » traite de ce sujet.

2.  Le piège des filets#

L’utilisation des filets (traits horizontaux et verticaux présents dans les tableaux) est souvent abusive. L’Comment présenter un tableau comme dans les livres ? » pour un exemple.

Les mêmes règles sont également implémentées dans la classe memoir [1].

3.  La position de la légende#

Par défaut, a également tort de mettre les légendes sous le tableau. Étant donné qu’un tableau peut s’étendre sur plusieurs pages, les règles traditionnelles de typographie placent la légende au-dessus du tableau. Si vous cherchez à mettre la légende au-dessus du tableau avec la commande \caption, la position finale sera décalée de 10pt vers le bas, et sera trop proche du tableau. Heureusement, l’extension topcapt résout le problème (ci-dessous à droite).

Légende standard

\begin{table}
  \caption{Tableau de maîtres}
  \begin{tabular}{...}
    ...
  \end{tabular}
\end{table}

Légende avec topcapt

\usepackage{topcapt}
...
\begin{table}
  \topcaption{Tableau de maîtres}
  \begin{tabular}{...}
    ...
  \end{tabular}
\end{table}
\documentclass{article}
  \usepackage[width=7cm]{geometry}
  \usepackage[french]{babel}
  \pagestyle{empty}
\begin{document}
\begin{table}
  \caption{Tableau de maîtres}
  \begin{tabular}{lc}
    Manet  & 1832--1883 \\
    Ingres & 1780--1867 \\
    Goya   & 1746--1828 \\
  \end{tabular}
\end{table}
\end{document}
\documentclass{article}
  \usepackage[width=7cm]{geometry}
  \usepackage{topcapt}
  \usepackage[french]{babel}
  \pagestyle{empty}
\begin{document}
\begin{table}
  \topcaption{Tableau de maîtres}
  \begin{tabular}{lc}
    Manet  & 1832--1883 \\
    Ingres & 1780--1867 \\
    Goya   & 1746--1828 \\
  \end{tabular}
\end{table}
\end{document}

Les classes KOMA-script disposent d’une commande similaire, \captionabove ; elles ont également une option de classe tablecaptionabove qui fait en sorte que \caption signifie \captionabove dans les environnements de tableau. L’extension caption peut être chargée avec une option qui a le même effet :

\usepackage[tableposition=top]{caption}

Cela peut aussi être changé après le chargement de l’extension, avec \captionsetup :

\usepackage{caption}
\captionsetup[table]{position=above}

Notez que les deux « options de position » sont différentes : top (en haut) dans un cas, et above (au-dessus) dans l’autre, mais dans ce contexte, elles signifient la même chose.

Astuce

Faire soi-même le travail de topcapt peut être assez facile : celle-ci se contente en fait de permuter les valeurs des paramètres \abovecaptionskip (valeur par défaut 10pt) et \belowcaptionskip (valeur par défaut : 0pt). Voici donc un exemple de modification… supposant que les valeurs n’ont pas été modifiées par ailleurs :

\begin{table}
  \setlength{\abovecaptionskip}{0pt}
  \setlength{\belowcaptionskip}{10pt}
  \caption{Example table}
  \begin{tabular}{...}
    ...
  \end{tabular}
\end{table}