使用 \rowfont (tabu) 和 beamer 自动覆盖表格行

使用 \rowfont (tabu) 和 beamer 自动覆盖表格行

我在演示文稿中有一个表格,我想在显示时为每行的文本着色。我目前正在使用 beamer 包和相关解决方案这需要指定每行的幻灯片编号。

下面是一个 MWE,说明了我当前的“手动”方法,该方法具有预期的最终结果。

\documentclass{beamer}

\usepackage{tabu}

\newcommand{\rowcolor}[1]{\rowfont{\leavevmode\temporal<#1>{\color{white}}{\color{blue}}{\color{normal text.fg}}}}

\begin{document}

\begin{frame}{A Table}
    \begin{tabu}{lll}
    \rowcolor{1} cell 1 & cell 2 & cell 3\\
    \rowcolor{2} cell 4 & cell 5 & cell 6\\
    \rowcolor{3} cell 7 & cell 8 & cell 9
    \end{tabu}

\end{frame}

\end{document}

我尝试将 \rowcolor 函数包含在 \everyrow 函数中

...
\everyrow{\rowcolor{+}}
\begin{tabu}{lll}
...    

然而,显然 \rowfont 将其参数插入到行的每个单元格中内容由 beamer 进行评估,因此 <+> 规范将针对每个单元格增加,而不仅仅是针对每一行。

有没有办法增加幻灯片编号\rowfont 是否执行?或者是否有更好的方法来自动增加幻灯片,而不必为每行明确指定幻灯片编号?

答案1

类似这样的方法可能会奏效(需要> = 2次编译才能获得正确结果):

\documentclass{beamer}

\usepackage{tabu}

\usepackage{totcount}
\newtotcounter{totalrows}

\begin{document}

\begin{frame}
    \frametitle{A Table}


    bla\pause 

    test\pause

     \everyrow{%
        \ifnum\thetaburow<\totvalue{totalrows}
                \only<+>{\rowfont{\leavevmode\color{blue}}}
        \fi
        }  

        \begin{tabu}{lll}
                cell 1 & cell 2 & cell 3\\
            cell 4 & cell 5 & cell 6\\
            cell 7 & cell 8 & cell 9 
            \setcounter{totalrows}{\thetaburow}           
        \end{tabu}

\end{frame}

\end{document}

在此处输入图片描述

相关内容