如何使用 tabularx 和 renewcommand 垂直对齐多行单元格中的文本?

如何使用 tabularx 和 renewcommand 垂直对齐多行单元格中的文本?

我又来了,

按照此指示网址我几乎完全得到了我想要的东西。然而问题是第一个多行单元格(带有文本“5 和 6”)没有垂直居中。

很感谢任何形式的帮助。

安装程序是 Miktex 2.9,截至今日,已从 CTAN 更新软件包,win7x32 上为 Texniccenter 2a3。配置文件是 Latex->PDF。

谨致以最诚挚的问候和感谢

\documentclass{article}
\usepackage{multirow,array,tabularx,booktabs}

\begin{document}
\newcolumntype{Z}{>{\centering\arraybackslash}X}
\newcolumntype{Y}{>{\small\raggedright\arraybackslash}X}
\renewcommand{\tabularxcolumn}[1]{>{\arraybackslash}m{#1}}
\begin{table}[htbp]
\begin{tabularx}{\textwidth}{|Z|Z|Z|}
\hline\hline Number&Image 1&Image 2\\\hline\hline
1&\includegraphics[width=0.2\columnwidth]{images/1.png}&\includegraphics[width=0.2\columnwidth]{images/1a.png}\\\hline
2&\includegraphics[width=0.2\columnwidth]{images/2.png}&\includegraphics[width=0.2\columnwidth]{images/2a.png}\\\hline
3&\includegraphics[width=0.2\columnwidth]{images/3.png}&\includegraphics[width=0.2\columnwidth]{images/3a.png}\\\hline
\multirow{2}{*}{5 and 6}&\multirow{2}{*}{\includegraphics[width=0.2\columnwidth]{images/56.png}}&\includegraphics[width=0.2\columnwidth]{images/5.png}\\\cline{3-3}
& & \includegraphics[width=0.2\columnwidth]{images/6.png}\\\hline
\end{tabularx}
\caption{Images}
\label{tab:figuretable}
\end{table}

\end{document}

答案1

对于此应用程序,您不需要多行:只需将双图像放在内部tabular环境中即可。列的宽度X可用为\hsize

\documentclass{article}
\usepackage{array,tabularx,booktabs}
\usepackage[demo]{graphicx}
\usepackage[export]{adjustbox}
\begin{document}
\newcolumntype{Z}{>{\centering\arraybackslash}X}
\newcolumntype{Y}{>{\small\raggedright\arraybackslash}X}
\renewcommand{\tabularxcolumn}[1]{>{\arraybackslash}m{#1}}
\begin{table}[htbp]
\begin{tabularx}{\textwidth}{ZZZ}
\toprule
Number&Image 1&Image 2\\
\midrule
1
  &\includegraphics[width=0.2\columnwidth]{images/1.png}
  &\includegraphics[width=0.2\columnwidth]{images/1a.png}\\
\midrule
2
  &\includegraphics[width=0.2\columnwidth]{images/2.png}
  &\includegraphics[width=0.2\columnwidth]{images/2a.png}\\
\midrule
3
  &\includegraphics[width=0.2\columnwidth]{images/3.png}
  &\includegraphics[width=0.2\columnwidth]{images/3a.png}\\
\midrule
5 and 6
  &\includegraphics[width=0.2\columnwidth]{images/56.png}
  &\begin{tabular}{@{}>{\centering\arraybackslash}p{\hsize}@{}}
   \includegraphics[width=0.2\columnwidth]{images/5.png}\\
   \midrule
   \includegraphics[width=0.2\columnwidth]{images/6.png}
   \end{tabular}\\
\bottomrule
\end{tabularx}
\caption{Images}
\label{tab:figuretable}
\end{table}

\end{document}

我使用的规则是booktabs;如果您确实更喜欢盒装表,请将它们改回\hline

答案2

multirow 有一个最终(在宽度之后,内容之前)可选的“fixup”参数,允许您升高或降低内容,这样您就可以直观地实现所需的居中,即使不是完全自动的。

相关内容