Pourquoi les tableaux en LaTeX sont laids?

Ces dernières années, plusieurs auteurs ont fait valoir que les exemples de tableaux donnés par Lamport dans son manuel LaTeX 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 LaTeX. Pour être honnête, il est même difficile de comprendre le « sens » de nombreux exemples du livre de Lamport.

Les critiques se concentrent sur l'utilisation excessive de filets (lignes horizontales et verticales) et sur l'espacement vertical que proposent les macros de Lamport.

Le problème de l'espacement vertical est évident pour tous et est abordé dans plusieurs paquets — voir la question « espacement des lignes dans les tableaux ».

Le reproche concernant les filets est expliqué dans l'excellente introduction de la documentation (en français) de l'extension booktabs de Simon Fear1). Bien entendu, cette extension implémente le style de tableau que recommandé dans cette introduction. Les mêmes règles sont également implémentées dans la classe memoir2).

Par défaut, LaTeX 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 fournies par 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 du paquet, 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).

Faire le travail soi-même serait assez facile: topcapt se contente en fait de permuter les valeurs des paramètres LaTeX \abovecaptionskip (valeur par défaut 10pt) et \belowcaptionskip (valeur par défaut: 0pt). Donc :
\begin{table}
  \setlength{\abovecaptionskip}{0pt}
  \setlength{\belowcaptionskip}{10pt}
  \caption{Example table}
  \begin{tabular}{...}
    ...
  \end{tabular}
\end{table}

ferait ce qu'il faut (si les longueurs n'ont pas été modifiées; les extensions et classes mentionnées ci-dessus sont plus prudents!)


Source: The design of tables

1)
La version anglaise de la documentation peut être plus récente.
2)
Il existe un projet de traduction de la documentation de Memoir.
3_composition/tableaux/mes_tableaux_sont_moches.txt · Dernière modification: 2021/05/21 09:11 par jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0