LaTeX含图片列表格如何按图片尺寸动态调整行高并保持内容居中
解决方案
推荐使用adjustbox包实现行高自动适配、同单元格内容垂直居中的需求,无需手动设置行高,操作如下:
- 导言区引入带
export参数的adjustbox包,参数可直接传递给\includegraphics命令使用 - 给
\includegraphics添加valign=c参数,让图片基于中线垂直对齐;添加margin=0pt 3pt参数给图片添加上下空白,避免图片紧贴单元格边框 - 表格会自动根据图片高度调整对应行高,同行其他文本会保持垂直居中对齐
完整可运行代码
\documentclass[]{article} \usepackage{multirow} \usepackage[export]{adjustbox} % 引入adjustbox包 \begin{document} \begin{table}[h!] \begin{tabular}{c|c|c|c|c c c|c c c} \multirow{2}{*}{} & \multirow{2}{*}{\textbf{mesh}} & \multirow{2}{*}{\textbf{dofs}} & \multirow{2}{*}{\textbf{levels}} & \multicolumn{3}{|c|}{\textbf{iterations}} & \multicolumn{3}{|c}{\textbf{Conv Rate}} \\ \cline{5-10} & & & & \footnotesize{SGMG} & \footnotesize{NMG} & \footnotesize{AMG} & \footnotesize{SGMG} & \footnotesize{NMG} & \footnotesize{AMG}\\\hline \multirow{2}{*}{\textbf{1D}} & \multirow{2}{*}{\includegraphics[scale = .2, valign=c, margin=0pt 3pt]{path1}} & \multirow{2}{*}{100k} & 2 & -&- & - & - & - & - \\ & & & 5 & -& -& - & - & - & - \\ \hline \multirow{8}{*}{\textbf{2D}} & \multirow{2}{*}{\includegraphics[scale = .1, valign=c, margin=0pt 3pt]{path2}} & \multirow{2}{*}{100k} & 2 & -&- & - & - & - & - \\ & & & 5 & -& -& - & - & - & - \\ \cline{2-10} & \multirow{2}{*}{mesh22} & \multirow{2}{*}{100k} & 2 & -&- & - & - & - & - \\ & & & 5 & -& -& - & - & - & - \\ \cline{2-10} &\multirow{2}{*}{mesh23} & \multirow{2}{*}{100k}& 2 & -&- & - & - & - & - \\ & & & 5 & -& -& - & - & - & - \\ \cline{2-10} & \multirow{2}{*}{mesh24}& \multirow{2}{*}{100k}& 2 & -&- & - & - & - & - \\ & & & 5 & -& -& - & - & - & - \\ \hline \end{tabular} \end{table} \end{document}
无额外包的替代方案
如果不想引入新包,可以用\raisebox手动调整图片基线,示例写法如下:
\multirow{2}{*}{\raisebox{-\height}{\includegraphics[scale=.2]{path1}}}
可在图片前后添加\vspace{3pt}留出上下边距,避免图片和边框重叠。
效果示意

内容的提问来源于stack exchange,提问作者Cla
相关产品推荐
相关产品推荐

