通过覆盖将列添加到表格,但已保留其空间

通过覆盖将列添加到表格,但已保留其空间

我想将列添加b到我的表格中,它应该看起来像我的第一个表格。除了这一点之外,列a应该不是完全居中。(显示第二张幻灯片时,列a不应跳到左侧)

\documentclass{beamer}
\usepackage{lmodern}

\usepackage{siunitx}

\begin{document}

\begin{frame}
\begin{center}
\begin{tabular}{*{2}{|>{$}{c}<{$}}|}
\hline
a \only<2>{& b}\\
\hline
1 \only<2>{& 2}\\
\hline
\end{tabular}

\begin{tabular}{*{2}{|>{$}{c}<{$}}|}
\hline
a \visible<2>{& b}\\
\hline
1 \visible<2>{& 2}\\
\hline
\end{tabular}

\begin{tabular}{*{2}{|>{$}{c}<{$}}|}
\hline
a & \visible<2>{b}\\
\hline
1 & \visible<2>{2}\\
\hline
\end{tabular}
\end{center}
\end{frame}
\end{document}

答案1

基本思路是只在第一个覆盖层上添加\hspace。您可以猜测所需的宽度,或者多做一些工作,测量包含第二列最宽条目的表格的宽度。

\documentclass{beamer}
\usepackage{lmodern}

\usepackage{siunitx}

\newlength{\mywidth}
\settowidth{\mywidth}{%
\begin{tabular}{|>{$}{c}<{$}|}%
2
\end{tabular}%
}

\begin{document}

\begin{frame}
\begin{center}
\begin{tabular}{*{2}{|>{$}{c}<{$}}|}
\hline
a \only<2>{& b}\\
\hline
1 \only<2>{& 2}\\
\hline
\end{tabular}\only<1>{\hspace*{\mywidth}}
\end{center}
\end{frame}
\end{document}

相关内容