viernes, 4 de abril de 2014

Cómo añadir imágenes en una tabla

En esta entrada mostraré cómo añadir imágenes en una tabla. Es muy fácil, y en lo único en lo que hay que fijarse más, es cuando queremos alinear las imágenes.

En este ejemplo, tengo dos imágenes (en formato .eps), "dibujo1.eps" y "dibujo2.eps". La primera imagen tiene un tamaño 1039 x 549 pixels, y la segunda 484 x 498 pixels.  (Importante para luego.)

A continuación, puedes ver el código de ejemplo. Recuerda que con "p{xxx}" definimos la anchura de la columna igual a xxx.

\documentclass[a4paper,openright,12pt]{book}
\usepackage[spanish]{babel}
\usepackage[latin1]{inputenc}
\usepackage{graphicx}
\usepackage{array}
\usepackage{float}

\begin{document}

\begin{table}[H]
\centering
\begin{tabular}{| p{4cm} | p{3cm} | p{2cm} |}
\hline
\includegraphics[width=40mm]{./dibujo1} & \includegraphics[width=30mm]{./dibujo2} & Targaryen y Arryn \\
\hline
\end{tabular}
\end{table}

\end{document}


La verdad es que así solo, ha quedado un poco feo. El texto está muy abajo, la segunda imagen está completamente pegada arriba...

Para centrar todas las celdas, podemos poner "m{xxx}". Además, para evitar que la segunda imagen queda pegada arriba, añado un pequeño margen con "\vspace{1.52mm}". (Añado también este espacio en la primera imagen para que quede centrada con respecto a la segunda imagen).

\begin{table}[H]
\centering
\begin{tabular}{| m{4cm} | m{3cm} | m{2cm} |}
\hline
\vspace{1.52mm}\includegraphics[width=40mm]{./dibujo1} & \vspace{1.52mm} \includegraphics[width=30mm]{./dibujo2} & Targaryen y Arryn \\
\hline
\end{tabular}
\end{table}


Como la primera imagen es más bajita que la segunda, podemos decidir si dejarla centrada, ajustarla arriba, o bien ajustarla abajo. Para hacer esto, basta con que movamos esta imagen la distancia justa arriba o abajo. Y para ello, basta con hacer unos pequeños cálculos.

La primera imagen mide de ancho 40 mm (porque lo definimos en [width=40mm]), y de alto 549 / 1039 · 40 mm = 21.14 mm.
La segunda imagen mide de ancho 30 mm, y de alto  498 / 484 · 30 mm = 30.87 mm.

De forma que si queremos alinear arriba la primera imagen, tenemos que moverla 30.87 - 21.14 - 1.52 = 8.21 mm. (Descontando los 1.52 mm, que bajamos la segunda imagen.) Como queremos moverla hacia arriba, ponemos el valor negativo.

\begin{table}[H]
\centering
\begin{tabular}{| m{4cm} | m{3cm} | m{2cm} |}
\hline
\vspace{-8.21mm} \includegraphics[width=40mm]{./dibujo1} & \vspace{1.52mm} \includegraphics[width=30mm]{./dibujo2} & Targaryen y Arryn \\
\hline
\end{tabular}
\end{table}


Por último, si lo que queremos es alinearla en la parte de abajo, tenemos que moverla 30.87 - 21.14 + 1.52 = 11.25 mm.

\begin{table}[H]
\centering
\begin{tabular}{| m{4cm} | m{3cm} | m{2cm} |}
\hline
\vspace{11.25mm}\includegraphics[width=40mm]{./dibujo1} & \vspace{1.52mm} \includegraphics[width=30mm]{./dibujo2} & Targaryen y Arryn \\
\hline
\end{tabular}
\end{table}