Images dans tabelaux

Images dans tabelaux

par COUROYER STELLA,
Nombre de réponses : 1

Bonjour,

J'essaie de rajouter des images dans un tableau mais les images couvrent certaines lignes dudit tableau. J'ai essayé deux méthodes afin d'y remédier:

 - Mettre les images dans une minipage

 - Utiliser la methode \raisebox

( les deux méthodes viennent de réponses formulées sur ce site https://tex.stackexchange.com/questions/53061/insert-image-and-list-inside-a-table)


Y a-t-il quelque chose que j'ai loupé ou existe-t-il une méthode plus facile?Example des images genant la ligne du tableau


En réponse à COUROYER STELLA

Re: Images dans tabelaux

par FACCANONI Gloria,

Bonjour Stella,

Tu n'as pas loupé de points importants. Tu essaies simplement de forcer un comportement qui n'est pas nécessairement optimal du point de vue typographique. En LaTeX, lorsqu'une mise en page semble difficile, il est toujours bon de réfléchir si une approche différente de ce que l'on avait en tête n'est pas possible (et préférable).

Dans ton cas, posons-nous d'abord quelques questions :

  1. as-tu vraiment besoin d'un tableau contenant des images ? Ne serait-il pas plus adapté d'utiliser un environnement comme figure, qui peut contenir plusieurs images avec éventuellement une légende pour chacune (utilisant par exemple le package subfig avec la commande subfloat) ?

  2. si l'utilisation d'un tableau est incontournable, est-il vraiment nécessaire d'avoir des lignes de séparation ?

Si la mise en page nécessite réellement un tableau avec des images et des lignes de séparation, voyons comment procéder (forcement un peu manuellement).

Tout d'abord, coté images : est-ce que toutes les images doivent avoir la même hauteur ou la même largeur ? Dans une même ligne, je recommanderais d'utiliser la même hauteur pour toutes les images (option height de includegraphics). De plus, j'utiliserais l'option align de graphbox (qui améliore le package graphicx) pour centrer verticalement les images sur leur ligne.

Ensuite, coté tableau. On pourrait fixer la hauteur des lignes du tableau avec la commande \renewcommand{\arraystretch}{<valeur>} du package array. Mais cela ne rajoute pas d'espace uniforme avant et après les lignes. Je préfère alors plutôt \setlength{\extrarowheight}{<valeur>} et ajouter la même espace lors du saut de ligne \\(<valeur>]. Attention, Moodle modifie cette instruction lorsque je l'écris au format code. Il s'agit de \\ puis, tout collé, [...].

Voici un exemple avec des images quelconques :

\documentclass{scrartcl}

\usepackage{array}
\usepackage{graphbox} 

\begin{document}

{ % limite la portée de setlength
\newcommand{\monespace}{1.5cm}
\setlength{\extrarowheight}{\monespace} 

\begin{tabular}{|c|c|}
    \hline
    Colonne 1 & Colonne 2 \\(\monespace]
    \hline
    \includegraphics[height=2cm, align=c]{example-image-a} 
    &
    \includegraphics[height=2cm, align=c]{example-image-b} \\(\monespace]
    \hline
    \includegraphics[height=2cm, align=c]{example-image-c} 
    &
    \includegraphics[height=2cm, align=c]{example-image-b} \\(\monespace]
    \hline
    \includegraphics[height=1cm, align=c]{example-image-a} 
    &
    \includegraphics[height=2cm, align=c]{example-image-c} \\(\monespace]
    \hline
\end{tabular}
}
\end{document}

 

Voici un document avec des comparaisons et d'autres approches (mais que pour du texte) :
https://statatexblog.com/wp-content/uploads/2013/09/tabletricks_latex.pdf