如何在长表环境中调整单元格内图像的大小并保持其比例?

如何在长表环境中调整单元格内图像的大小并保持其比例?

问题

我目前正在写一个带有longtable环境的表格,并且想要在单元格内插入图片垂直居中对齐但是,我的尝试结果如下:

在此处输入图片描述

所以我想做的事情如下:

  • 如果男孩比牢房高,则在保持方位的同时降低他的身高以适应牢房。
  • 如果男孩比牢房胖,则在保持外形不变的情况下将他的宽度减小到牢房的宽度。

--

尝试

上表是使用以下代码生成的:

\documentclass[fontsize=12bp]{article}
\usepackage[table,xcdraw]{xcolor}
\usepackage{multirow}
\usepackage{lipsum}
\usepackage{longtable}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{float}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}

\begin{document}
\begin{longtable}{|ccc|}
\hline
\rowcolor[HTML]{C0C0C0} 
\multicolumn{1}{c}{\large \textbf{Column1} } & \multicolumn{1}{c}{\large \textbf{Column2}} & \multicolumn{1}{c}{\large \textbf{Column3}} \\ \hline \endhead 

\multicolumn{1}{|c|}{} & \multicolumn{1}{l|}{\begin{minipage}{0.5\textwidth} \medskip \scriptsize \lipsum[4] \medskip \end{minipage}} & \\ \cline{2-2} 

\multicolumn{1}{|c|}{\multirow{-4}{*}{\Large Name1}} &

\multicolumn{1}{l|}{\begin{minipage}{0.5\textwidth} \medskip \scriptsize \lipsum[2] \medskip \end{minipage}} & 
\multirow{-10}{*}{\begin{minipage}{0.4\textwidth} 
\begin{figure}[H]{\center \includegraphics[keepaspectratio=true, width=\linewidth]{figures/human.png}} \end{figure} \end{minipage}} \\ \hline
\end{longtable}

\end{document}

问题

我该如何将这个男孩关进牢房,同时又不影响他的容貌?任何帮助我都会感激不尽。

答案1

像这样吗?

在此处输入图片描述

  • 浮动图形不能被包围在minipage或类似的盒子环境中
  • 图像,包括includegraphics[width=<length>]{<image-file>}保持自己的纵横比
  • 而不是minipage在单元格中使用,最好定义列类型p{<width>}
  • 我没有更改列标题的代码
  • multirow最后一列中您可以使用最近的multirow包中定义的选项:{=}
\documentclass[fontsize=12bp]{article}
\usepackage{geometry}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}

\usepackage[table,xcdraw]{xcolor}
\usepackage{array, multirow, longtable}
\usepackage{lipsum}
\usepackage{graphicx}

\begin{document}
\begin{longtable}{|c 
                  |>{\scriptsize}p{0.4\textwidth}
                  |p{0.5\textwidth}|}
    \hline
\rowcolor[HTML]{C0C0C0}
\multicolumn{1}{c}{\large \textbf{Column1} } 
    & \multicolumn{1}{c}{\large \textbf{Column2}} 
        & \multicolumn{1}{c}{\large \textbf{Column3}} \\ 
    \hline 
\endhead
\multicolumn{1}{|c|}{} 
    & \lipsum[4] 
        &   \\ 
    \cline{2-2}
\multirow{-1}{*}{\Large Name1}
    &   \scriptsize \lipsum[2]
        &   \multirow{-6.2}{=}{\includegraphics[width=\linewidth]{example-image-duck}} \\ 
    \hline
\end{longtable}

\end{document}

相关内容