带图形的表格内的垂直对齐

带图形的表格内的垂直对齐

也许我做错了,但我有一个,每个里面排列了table3 ,这样我最终得到了 3 个并排的表格。每个表格只有 2 列:1 列用于文本,1 列用于。我试图将第一列中的文本垂直对齐到单元格的中间。tabularsminipageincludegraphics

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{tabu, lscape}
\begin{document}
\begin{landscape}
\begin{table}[!t]
\centering
\begin{minipage}[t]{0.25\linewidth}
    \vspace{0pt}
\begin{tabular}{cc}
    Col1 & Col2 \\
    Text & \includegraphics{<path>} \\ 
\end{tabular}
\end{minipage}
\begin{minipage}[t]{0.25\linewidth}
    \vspace{0pt}
\begin{tabular}{cc}
    Col1 & Col2 \\
    Text & \includegraphics{<path>} \\
\end{tabular}
\end{minipage}
\hspace{1.5cm}
\begin{minipage}[t]{0.25\linewidth}
    \vspace{0pt}
\begin{tabular}{cc}
    Col1 & Col2 \\
    Text & \includegraphics{<path>} \\
\end{tabular}
\end{minipage}
\end{table}
\end{landscape}
\end{document}

在此处输入图片描述

我尝试使用包m{'width'}中的array功能,但没有成功。我想知道是否有人能建议如何实现这一点?

答案1

也许我没有正确理解您的问题,但对我来说,当使用m{width}列定义(来自array包)时,单元格会居中,正如您所建议的那样。

以下是我使用的代码:

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{tabu, lscape, array}
\begin{document}
\begin{landscape}
\begin{table}[!t]
\centering
\begin{minipage}[t]{5cm}
  \begin{tabular}{@{}C{1.5cm}@{}C{3.5cm}@{}}
    Col1 & Col2 \\
    Text & \includegraphics[width=2cm]{<path>} \\ 
  \end{tabular}
\end{minipage}
\begin{minipage}[t]{5cm}
  \begin{tabular}{@{}C{1.5cm}@{}C{3.5cm}@{}}
    Col1 & Col2 \\
    Text & \includegraphics[width=2cm]{<path>} \\
  \end{tabular}
\end{minipage}
\hspace*{1.5cm}
\begin{minipage}[t]{5cm}
  \begin{tabular}{@{}C{1.5cm}@{}C{3.5cm}@{}}
    Col1 & Col2 \\
    Text & \includegraphics[width=2cm]{<path>} \\
  \end{tabular}
\end{minipage}
\end{table}
\end{landscape}
\end{document}

输出如下:

输出

如果您还想使列水平居中,则需要定义一个新的C列类型,如下所示:

\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}

并将上述代码中 s的列定义替换m为。结果如下:Ctabular

结果列也水平居中

\columnwidth最后两点说明:- 我已经用设置值替换了列宽度定义中的引用。引用\columnwidth在这里不合适,也不有效/不变(请参阅答案\textwidth、\linewidth 和 \hsize 之间的区别理解原因)。 - 在您的代码中,minipages根本没有必要。

相关内容