也许我做错了,但我有一个,每个里面排列了table
3 ,这样我最终得到了 3 个并排的表格。每个表格只有 2 列:1 列用于文本,1 列用于。我试图将第一列中的文本垂直对齐到单元格的中间。tabulars
minipage
includegraphics
\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
为。结果如下:C
tabular
\columnwidth
最后两点说明:- 我已经用设置值替换了列宽度定义中的引用。引用\columnwidth
在这里不合适,也不有效/不变(请参阅答案到\textwidth、\linewidth 和 \hsize 之间的区别理解原因)。 - 在您的代码中,minipages
根本没有必要。