我正在准备一个演示文稿beamer
,并且必须制作一个包含多行单元格的表格。因此,我正在使用环境tabularx
,我的代码如下:
\documentclass{beamer}
\usepackage{tabularx}
\usepackage{graphicx}
\begin{document}
\begin{frame}{Title}
\newcommand{\tick}{%
\includegraphics[scale=0.2]{img/green-tick}%
}
\begingroup
\renewcommand*{\arraystretch}{2.0}
\begin{center}
\begin{tabularx}{0.95\textwidth}{|X|X|X|X|X|}
\hline
\centering\textbf{Column 1} &
\centering \textbf{Column 2} &
\centering \textbf{Column 3} &
\centering \textbf{Column 4} &
\textbf{Column 5}\\
\hline
Row 1\newline blah &
\tick &
\tick &
\tick & \\
\hline
Row 2 &
\tick &
&
\tick &
\tick\\
\hline
Row 3\newline blah &
\tick &
\tick &
&
\tick\\
\hline
Row 4 &
&
\tick &
\tick &
\tick\\
\hline
Row 5 &
\tick &
\tick &
\tick &
\tick\\
\hline
\end{tabularx}
\end{center}
\endgroup
\end{frame}
\end{document}
结果是
我想要做的只是将图像置于各自的单元格的中心(水平和垂直方向)。
答案1
您可以设置X
要使用的列类型,m
而不是默认值p
,并使用嵌套的垂直居中图像tabular
。
\documentclass{beamer}
\usepackage{tabularx}
\usepackage{graphicx}
\newcommand{\tick}{%
%https://openclipart.org/image/2400px/svg_to_png/167549/Kliponious-green-tick.png
\begin{tabular}{@{}c@{}}
\includegraphics[width=.5cm]{Kliponious-green-tick.png}
\end{tabular}%
}
\newcommand{\middlexcolumn}{%
\renewcommand{\tabularxcolumn}[1]{m{##1}}%
}
\begin{document}
\begin{frame}{Title}
\begin{center}
\renewcommand*{\arraystretch}{2.0}
\middlexcolumn
\begin{tabularx}{0.95\textwidth}{%
| *{4}{>{\centering}X|}
>{\centering\arraybackslash}X|
}
\hline
\textbf{Column 1} &
\textbf{Column 2} &
\textbf{Column 3} &
\textbf{Column 4} &
\textbf{Column 5}\\
\hline
Row 1\\ blah &
\tick &
\tick &
\tick & \\
\hline
Row 2 &
\tick &
&
\tick &
\tick\\
\hline
Row 3\newline blah &
\tick &
\tick &
&
\tick\\
\hline
Row 4 &
&
\tick &
\tick &
\tick\\
\hline
Row 5 &
\tick &
\tick &
\tick &
\tick\\
\hline
\end{tabularx}
\end{center}
\end{frame}
\end{document}