如何在最后一列居中并插入图像和文本

如何在最后一列居中并插入图像和文本

我想要创建一个如下所示的表格:

在此处输入图片描述

这就是我已经取得的进展:


\begin{document}
\begin{table}[!h]
  \centering
  \begin{tabular}{| m{3,2cm} |m{3,4cm} | m{3,8cm}| m{3,8cm}|}
    \hline \hline 

    & {\textbf{Header1}} &   {\textbf{Header2}} &  {\textbf{Header3}} \\ [2ex] \hline \hline 
  {\textbf{Text}} & \centering Text1
\begin{minipage} {0.3\textwidth}
    \includegraphics[width=3.2cm, height= 3cm]{image1} 

    \end{minipage} 
 &  \centering Text2
\begin{minipage} {0.3\textwidth}
    \includegraphics[width=3.4cm, height= 3.1cm]{image2} 

    \end{minipage}
 &
Text3
  

    \\ \hline
  \end{tabular}
  \caption{text}\label{.}
\end{table}

\end{document}

当我尝试使用 \centering 将标题 3 居中时,它会抛出一个错误。当我尝试插入图像 3 时也会出现同样的情况。我不知道为什么?

答案1

我将加载该array包并使用其\newcolumntype指令来创建列类型的居中版本m。请注意,无需将\includegraphics指令包含在minipage环境中。

在此处输入图片描述

\documentclass{article}
\usepackage[a4paper,margin=2.5cm]{geometry} % set page parameters appropriately
\usepackage[demo]{graphicx}                 % remove 'demo' option in real document
\usepackage{array} % for '\newcolumntype' macro
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}} % centered version of 'm' col. type
\begin{document}

\begin{table}[!h]
\setlength\extrarowheight{2pt} % for a more open "look"
\centering
\begin{tabular}{| C{3.2cm} | C{3.4cm} | C{3.8cm}| C{3.8cm}| }
  \cline{2-4}
  \multicolumn{1}{c|}{} 
  & {\textbf{Header1}} & {\textbf{Header2}} & {\textbf{Header3}} \\[0.5ex] 
  \hline  
  \textbf{Text0} 
  & Text1\strut % '\strut' creates some vertical separation to the image below
  
  \includegraphics[width=\linewidth, height= 3.1cm]{image1} 
  & Text2\strut
  
  \includegraphics[width=\linewidth, height= 3.1cm]{image2} 
  & Text3\strut
  
  \includegraphics[width=\linewidth, height= 3.1cm]{image3} 
  \\
  \hline
\end{tabular}
\caption{text}\label{.}
\end{table}

\end{document}

答案2

使用包\adjustimage{<settings>}{<image file name>}中定义的,adjustbox您可以简单地设置图像的位置及其边距。在下面的 MWE 中,假设所有图像都可以具有相同的宽度(从您的代码片段可以看出,它们之间的差异非常小)。这个假设使表格代码更短:

\documentclass{article}
\usepackage{makecell, tabularx}
\renewcommand\theadfont{\bfseries}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\usepackage[demo,
            export]{adjustbox}

\begin{document}
    \begin{table}[!h]
    \centering
    \setlength\tabcolsep{3pt}
\adjustboxset{width=\dimexpr\linewidth, height=32mm,
              valign=c, margin=0pt 4pt 0pt 2pt}
\begin{tabularx}{\linewidth}{|>{\bfseries} l |*{3}{C|} }
    \hline \hline
        & \thead{Header 1}  & \thead{Header 2}  & \thead{Header 3}      \\ 
    \hline \hline
        &  Text 1           &   Text 2          &   Text 3              \\
Text    & \adjustimage{}{image1}
                            &  \adjustimage{}{image2}
                                                & \adjustimage{}{image3} \\
    \hline
  \end{tabularx}
\caption{text}
\label{tab:images}
    \end{table}
\end{document}

在此处输入图片描述

附录:\height考虑到@Mico 评论,可以通过在 中插入和width来 更改图像宽度adjustbox。在这种情况下,article文档类中的表变得比其标准文本宽度更宽。因此建议使用包更改页面布局geometry

\documentclass{article}
\usepackage{geometry}
\usepackage{makecell, tabularx}
\renewcommand\theadfont{\bfseries}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\usepackage[demo,
            export]{adjustbox} % it also load grahicx package

\begin{document}
    \begin{table}[!h]
    \centering
    \renewcommand\tabularxcolumn[1]{m{#1}}
    \setlength\tabcolsep{3pt}
\adjustboxset{valign=c, margin=0pt 4pt 0pt 2pt}
\begin{tabularx}{\linewidth}{|>{\bfseries\raggedright} X |*{3}{c|} }
    \hline \hline
        & \thead{Header 1}  & \thead{Header 2}  & \thead{Header 3}  \\ 
    \hline \hline
        &  Text 1   &   Text 2  &   Text 3                          \\
Text    & \adjustimage{width=34mm,height=16mm}{image1}
                    &  \adjustimage{width=38mm,height=16mm}{image2}
                                & \adjustimage{width=38mm,height=16mm}{image3} \\
    \hline
  \end{tabularx}
\caption{text}
\label{tab:images}
    \end{table}
\end{document}

在此处输入图片描述

相关内容