如何将文本和图像垂直居中放置在表格的同一行中

如何将文本和图像垂直居中放置在表格的同一行中

我想创建一个表格,其中包含以下形式的多行:一个单元格包含文本,然后是多个单元格包含图像。文本应垂直居中,每列的内容也应水平居中。我知道列类型,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也无需区分表格中的cm列。

\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}

在此处输入图片描述

相关内容