垂直和水平对齐表格内的图像

垂直和水平对齐表格内的图像

我有一张包含两列的表格。第一列包含文本,第二列包含图像。简短示例:

\documentclass{article}
\begin{document}

\begin{table}[htbp]
    \centering
    \caption{My caption}
    \label{tab:mytab}
    \begin{tabular}{|p{1.0cm}|c|}
        \hline
        \textbf{Number}   & \textbf{Images} \\ \hline
        Nr. 1 & \raisebox{.5\totalheight}{\includegraphics[width=0.8\textwidth]{foo}}       \\ \hline
        Nr. 2 & \raisebox{.5\totalheight}{\includegraphics[width=0.8\textwidth]{foo}}       \\ \hline
    \end{tabular}
\end{table}

\end{document}

我想让文本和图像垂直和水平居中。有人知道怎么做吗?

答案1

借助该包adjustbox您可以获得:

在此处输入图片描述

第一行图​​片上下边距已添加,第二行图片未添加边距。代码如下:

\documentclass{article}
\usepackage{graphicx}
\usepackage[export]{adjustbox}

\begin{document}
\begin{table}[htbp]
    \centering
    \caption{My caption}
    \label{tab:mytab}
    \begin{tabular}{|p{1.5cm}|c|}
        \hline
\textbf{Number}   
        &   \textbf{Images} \\ 
        \hline
Nr. 1   &   \includegraphics[width=0.8\textwidth,
                             margin=0pt 1ex 0pt 1ex,valign=m]{example-image}  \\
        \hline
Nr. 2   &   \includegraphics[width=0.8\textwidth,valign=m]{example-image}  \\
        \hline
    \end{tabular}
\end{table}
\end{document}

附录:如果您希望在第一个表的列中也水平居中内容,则需要进行以下更改:

  • 在序言中补充\usepackage{array}
  • 在表参数中,列类型p{...}应该替换为>{\centering}p{...}

答案2

在提供的示例中,长度 省略了一个减号.5\totalheight。使用 时,图形图像设置在基线上方\includegraphics,而tabular单元格居中。因此,必须移动图形图像向下用其高度的一半来补偿。

\documentclass{article}
\usepackage{graphicx}
\begin{document}

\begin{table}[htbp]
    \centering
    \caption{My caption}
    \label{tab:mytab}
    \begin{tabular}{|p{1.0cm}|c|}
        \hline
        \textbf{Number}   & \textbf{Images} \\ \hline
        Nr. 1 & \raisebox{-.5\totalheight}{\includegraphics[width=0.8\textwidth]{example-image}}       \\ \hline
        Nr. 2 & \raisebox{-.5\totalheight}{\includegraphics[width=0.8\textwidth]{example-grid-100x100pt}}       \\ \hline
    \end{tabular}
\end{table}

\end{document}

在此处输入图片描述

要得到更加精确居中,图像的向下移动应该由一行文本高度的 1/2 来补偿,因此,移动应该按如下方式进行\raisebox{-.5\dimexpr\totalheight-\ht\strutbox}{...}

请注意,我还将第一列加宽至1.3cm,以便能够Number容纳单词。

\documentclass{article}
\usepackage{graphicx}
\begin{document}

\begin{table}[htbp]
    \centering
    \caption{My caption}
    \label{tab:mytab}
    \begin{tabular}{|p{1.3cm}|c|}
        \hline
        \textbf{Number}   & \textbf{Images} \\ \hline
        Nr. 1 & \raisebox{-.5\dimexpr\totalheight-\ht\strutbox}{%
          \includegraphics[width=0.8\textwidth]{example-image}}       \\ \hline
        Nr. 2 & \raisebox{-.5\dimexpr\totalheight-\ht\strutbox}{%
          \includegraphics[width=0.8\textwidth]{example-grid-100x100pt}}\\ \hline
    \end{tabular}
\end{table}

\end{document}

在此处输入图片描述

相关内容