我想创建一个表格,其中包含以下形式的多行:一个单元格包含文本,然后是多个单元格包含图像。文本应垂直居中,每列的内容也应水平居中。我知道列类型,m{}
但如果行中包含图像并决定行高,这似乎会失败。有什么想法吗?
最小示例:
\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\begin{document}
\begin{figure}
\begin{tabular}{m{3cm}c}
(a) & \includegraphics{some_picture.pdf}\\
\end{tabular}
\end{figure}
\end{document}
答案1
图片的基线在底部。您可以使用\raisebox
将其上移。使用 的一半\height
,代表要升高的框的高度。
\raisebox{-.5\height}{\includegraphics{some_picture}}
例如:
\documentclass{article}
\usepackage{mwe}
\begin{document}
\begin{tabular}{lll}
\raisebox{-.5\height}{\includegraphics[scale=0.25]{example-image}} & text & text\\
\end{tabular}
\end{document}
产量:
答案2
新的graphbox
包引入了一个新的(垂直)align
键,可用于\includegraphics
选项中。使用它,无需\raisebox
,\parbox
也无需区分表格中的c
或m
列。
\documentclass{article}
\usepackage{mwe}
\usepackage{graphbox} %loads graphicx package
\begin{document}
\begin{tabular}{ccc}
text & \includegraphics[scale=0.25]{example-image} & text\\
text & \includegraphics[align=c,scale=0.25]{example-image} & text\\
text & \includegraphics[align=t,scale=0.25]{example-image} & text\\
\end{tabular}
\end{document}
正如egreg
我所提醒的,adjustbox
包提供了类似的功能。使用选项加载它,可以使用export
新键作为选项。valign={t|m|b|T|M|B}
\includegraphics
\documentclass{article}
\usepackage{mwe}
\usepackage[export]{adjustbox}
\begin{document}
\begin{tabular}{ccc}
text & \includegraphics[valign=m,scale=0.25]{example-image} & text \\
\end{tabular}
\end{document}
答案3
对图像使用 m 列类型,例如:
\begin{tabular}{c m{4cm}}
答案4
tblr
使用新 LaTeX3 包环境的替代解决方案tabularray
:使用stretch=0
并设置图像的头部对齐方式(h
)。
\documentclass{article}
\usepackage{graphicx}
\usepackage{mwe}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{
stretch = 0,
colspec = {Q[h,l]ll},
hlines,
}
\includegraphics[scale=0.25]{example-image} & Alpha & Sigma \\
\end{tblr}
\end{document}