我正在尝试将图像放置在 4 列表格的第一列中。但是图像超出了顶部水平线。如何将图像设置在单元格的中心,以便正确显示顶部水平线?
以下是代码
\documentclass[a4paper]{article}
\begin{document}
\begin{tabular}{| c | c | c | c |}
\hline
\multicolumn{2}{|c|}{$a_{1}$} & \multicolumn{2}{|c|}{$a_{2}$} \\
\hline
col1 & col2 & col3 & col4 \\
\hline
\includegraphics[height=.2in]{./Figures2/paths/abc.jpg} & text & text & text\\
\hline
\includegraphics[height=.2in]{./Figures2/paths/abc.jpg} & text & text & text\\
\hline
\end{tabular}
\end{document}
图片:
输出:
使图像透明后:
答案1
该cellspace
包就是为此而做的。它定义了单元格内容与上下单元格之间的最小垂直距离。您所要做的就是在列限定符前加上字母S
(或者C
如果您已加载siunitx
)。
为了使其他单元格保持垂直居中,我定义了一个\cincludegraphics
命令。
我认为此代码可以生成您想要的结果:
\documentclass[a4paper]{article}
\usepackage{graphicx}
\usepackage{cellspace}
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{4pt}
\newcommand\cincludegraphics[2][]{\raisebox{-0.3\height}{\includegraphics[#1]{#2}}}
\begin{document}
\begin{tabular}{| Sc |c | c | c |}
\hline
\multicolumn{2}{|c|}{$a_{1}$} & \multicolumn{2}{c|}{$a_{2}$} \\
\hline
col1 & col2 & col3 & col4 \\
\hline
\cincludegraphics[height=.2in]{abc.jpg} & text & text & text \\
\hline
\cincludegraphics[height=.2in]{abc.jpg} & text & text & text \\
\hline
\end{tabular}
\end{document}
答案2
多年后……
使用adjustbox
(也加载graphicx
包)和tabularray
表包:
\documentclass[a4paper]{article}
\usepackage[export]{adjustbox}
\usepackage{tabularray}
\begin{document}
\begin{table}
\centering
\begin{tblr}{hlines, vlines,
colspec={*{4}{c}},
row{1} ={mode=math},
}
\SetCell[c=2]{c} a_{1}
& & \SetCell[c=2]{c} a_{2}
& \\
col1 & col2 & col3 & col4 \\
\includegraphics[height=0.2in, width=1in, valign=m]{example-image}
& text & \includegraphics[height=0.2in, width=1in, valign=m]{example-image}
& text \\
\includegraphics[height=0.2in, width=1in, valign=m]{example-image}
& text & \includegraphics[height=0.2in, width=1in, valign=m]{example-image}
& text \\
\end{tblr}
\end{table}
\end{document}