
Gostaria de centralizar texto e imagens vertical e horizontalmente em uma tabela longa. No entanto, não consigo fazê-lo funcionar, infelizmente. Um exemplo está abaixo:
\documentclass[11pt,a4paper,english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{array,longtable,ragged2e}
\usepackage{graphicx}
\begin{document}
\begin{longtable}{| l | c | c |}
\hline
& Here is a Text & Here is a Text \\\hline
Here is a Text & \includegraphics[height=2cm]{img/image.png} & \includegraphics[height=2cm]{img/image.png} \\\hline
Here is a Text & \raisebox{-\height}{\includegraphics[height=2cm]{img/image.png}} & \raisebox{-\height}{\includegraphics[height=2cm]{img/image.png}} \\\hline
\caption{My Caption}
\label{tab:FirstTab}
\end{longtable}
\mbox{}\\
\end{document}
Também tentei as alterações abaixo, mas não ajudou:
Here is a Text & \raisebox{-\height}{\includegraphics[height=2cm]{img/image.png}} & \raisebox{-\height}{\includegraphics[height=2cm]{img/image.png}} \\\hline
Responder1
Uma maneira é usar valign
a macro do adjusbox
pacote:
\documentclass[11pt,a4paper,english]{article}
\usepackage[T1]{fontenc}
\usepackage{ragged2e}
\usepackage{babel}
\usepackage{array,longtable,makecell}
\usepackage[demo, % in real document delete 'demo'
export]{adjustbox} % it load graphicx too
\begin{document}
\begingroup
\setcellgapes{3pt}
\makegapedcells % add vertical space/above/below cell's content
\begin{longtable}{| l | c | c |}
\hline
& Here is a Text & Here is a Text \\\hline
Here is a Text & \includegraphics[height=2cm,valign=c]{img/image.png} & \includegraphics[height=2cm,valign=c]{img/image.png} \\\hline
Here is a Text & \includegraphics[height=2cm,valign=c]{img/image.png} & \includegraphics[height=2cm,valign=c]{img/image.png} \\\hline
\caption{My Caption}
\label{tab:FirstTab}
\end{longtable}
\endgroup
\end{document}
Ao usar adjustbox
, podemos substituir includegraphics
por \adjustimage
add determinar as posições das imagens nas células com configurações em \adjustboxset
:
\documentclass[11pt,a4paper,english]{article}
\usepackage[T1]{fontenc}
\usepackage{ragged2e}
\usepackage{babel}
\usepackage{array,longtable}
\usepackage[demo, % in real document delete 'demo'
export]{adjustbox} % it load `graphicx` too
\begin{document}
\begingroup
\adjustboxset{height=20mm,valign=c, margin=0pt 3pt 0pt 3pt} % <---
\begin{longtable}{| l | c | c |}
\hline
& Here is a Text & Here is a Text \\
\hline
Here is a Text & \adjustimage{}{img/image} & \adjustimage{}{img/image} \\
\hline
Here is a Text & \adjustimage{}{img/image} & \adjustimage{}{img/image} \\
\hline
\caption{My Caption}
\label{tab:FirstTab}
\end{longtable}
\endgroup
\end{document}
o que dá o mesmo resultado que a primeira solução proposta.Observação, no MWE acima são omitidas as extensões de arquivo gráfico png
. Eles são necessários caso existam arquivos de imagens iguais com extensões diferentes e entre eles você queira usar apenas um selecionado.