Centering Text Horizontally and Vertically in LaTeX

You can make a new column type, or simply add >{\centering\arraybackslash} before m{6cm} for the two image columns.

For example:

\newcolumntype{C}{>{\centering\arraybackslash} m{6cm} }  %# New column type
\begin{tabular}{m{1cm}CC}                                %# Table with two of them
...

The > directive lets you basically inject the contained code before each entry in that column. We need the \arraybackslash to deal with incompatibility between the centering environment and the tabular environment. [More info can be found here.] 1


I use \dummyimage, because I have no im.png. Replace it with \includegraphics{im.png}.

\font\dummyfont = cmr10 at 100pt
\def\dummyimage{{\vbox to 100pt{\vfil\hbox to 100pt{\hfil\dummyfont A\hfil}\vfil}}}

\hfil\vbox{
\halign{&\hfil\ $\vcenter{\hbox{#}}$\strut \ \hfil\cr
&a&b\cr 
1&\dummyimage&\dummyimage\cr
2&\dummyimage&\dummyimage\cr
}}