Beamer 中的表格列动画不显示表格线和注释

Beamer 中的表格列动画不显示表格线和注释

我正在尝试在 beamer 中制作表格动画。我想逐列显示表格。我按照其他示例使用 \onslide,但表格的 \midrules 和 \bottomrules 直到最后一张幻灯片才出现。如果我通过为表格的每个元素而不是整个列指定 \onlide 来制作动画,这不是问题,但对于较大的表格来说,编写它会花费更多时间。有没有更简单的方法让表格结构线出现?

这是我的第一篇帖子(多年来我一直在阅读其他人的问答),所以如果我搞错了什么或表达不清楚,请告诉我。谢谢!

\documentclass[10pt, xcolor=dvipsnames]{beamer}     
\usepackage{array}
\usepackage{booktabs}

\begin{document}

%The example that I am struggling with
\begin{frame}
\begin{tabular}{>{\onslide<1->}l >{\onslide<1->}c  >{\onslide<2->}c }
\toprule
& Col A & Col B \\
\cmidrule{2-3} 
1 & a & b \\
\bottomrule
\end{tabular}
\end{frame}

%This looks like I want it to, but requires specifying which slide each and every element should appear on.
\begin{frame}
\begin{tabular}{lcc }
\toprule
&\onslide<1->{Col A} & \onslide<2->{Col B} \\
       \cmidrule{2-3} 
\onslide<1->{1} & \onslide<1->{a} & \onslide<2->{b} \\
\bottomrule
\end{tabular}
\end{frame}


\end{document}

答案1

这里有一个选项,它由保存列元素组成,savebox然后您可以在此框中应用\onslide,您可以根据需要更改外观顺序

\documentclass[10pt, xcolor=dvipsnames]{beamer}     
\usepackage{array}
\usepackage{booktabs}

\newsavebox{\mybox}

\newcolumntype{M}[2]{>{\begin{lrbox}{\mybox}}#1<{\end{lrbox}
  \onslide<#2>{\unhbox\mybox}}}

\begin{document}


\begin{frame}
\begin{tabular}{M{l}{1-} M{c}{1-} M{c}{2-}}
\toprule
  & Col A & Col B \\
\cmidrule{2-3} 
1 &   a   &   b   \\
\bottomrule
\end{tabular}
\end{frame}

\end{document}

相关内容