在带有计数器的 Beamer 中使用 \uncover

在带有计数器的 Beamer 中使用 \uncover

我在演示文稿中使用了表格,并且按日期排序,但我希望一些主要日期在第一张幻灯片上可见,而所有其他日期则逐张幻灯片显示。

我认为这是一个定义命令的好方法:

\newcounter{coveredRows}
\newcommand{\uncoverrowauto}[3]{
    \addtocounter{coveredRows}{1}
    \uncoverrow{\value{coveredRows}-}{#1}{#2}{#3}
}
\newcommand{\uncoverrow}[4]{
    \uncover<#1>{#2} & \uncover<#1>{#3} & \uncover<#1>{#4}\\
}

我想要一张这样的表格:

..      
11.06. & ..begin.. & 24\\
\uncoverrowauto{11.06.}{begin subtask1}{24}
\uncoverrowauto{22.06.}{end subtask1}{25}
25.06.& ..mile stone.. & 26\\
\uncoverrowauto{25.06.}{begin subtask2}{26}
\uncoverrowauto{29.06.}{end subtask2}{26}
..

因此,它可能变成一张大表,而且我很懒,所以我想在行被覆盖时自动增加计数器。不幸的是,这行不通,它会编译无限数量的幻灯片。

是否有一个好的解决方案可以满足我的愿望,或者唯一的方法是手动定义未覆盖不同行的幻灯片?

编辑 正如戴维所说,下面是我所拥有的完整示例:

\documentclass{beamer}

\begin{document}

\begin{frame}
    \titlepage
\end{frame}

\begin{frame}
    \frametitle{Outline}
    \tableofcontents
\end{frame}

\section{Plan}

    \newcounter{coveredRows}
    \setcounter{coveredRows}{1}
    \newcommand{\uncoverrowauto}[3]{
        \addtocounter{coveredRows}{1}
        \uncoverrow{\value{coveredRows} -}{#1}{#2}{#3}
    }
    \newcommand{
        \uncoverrow}[4]{\uncover<#1>{#2} & \uncover<#1>{#3} & \uncover<#1>{#4}\\
    }

\begin{frame}
    \frametitle{Plan}
    \framesubtitle{Dates}

    \centering
    \begin{tabular}{| c l c |}
        \hline
        Date    & Explanation & Week\\
        \hline\hline
        11.06. & Begin of work & 24\\
        \uncoverrowauto{11.06.}{Begin of subtask one}{24}
        \uncoverrowauto{22.06.}{End of subtask one}{25}
        25.06.& Mile stone of work & 26\\
        \uncoverrowauto{25.06.}{Begin of subtask two}{26}
        \uncoverrowauto{29.06.}{End of subtask two}{26}
        \uncoverrowauto{02.07.}{Begin of subtask three}{27}
        \uncoverrowauto{30.07.}{Begin of subtask four}{31}
        \uncoverrowauto{03.08.}{End of subtask four}{31}
        \uncoverrowauto{17.08.}{End of subtask three}{33}
        \uncoverrowauto{24.08.}{Planned end of work}{34}
        03.09. & End of work & 36\\
        \hline
    \end{tabular}

\end{frame}
\end{document}

答案1

这是 Andrew 提到的完整解决方案。谢谢!

\documentclass{beamer}

\resetcounteronoverlays{coveredRows}

\begin{document}

\begin{frame}
    \titlepage
\end{frame}

\begin{frame}
    \frametitle{Outline}
    \tableofcontents
\end{frame}

\section{Plan}

    \newcounter{coveredRows}
    \setcounter{coveredRows}{1}
    \newcommand{\uncoverrowauto}[3]{%
        \addtocounter{coveredRows}{1}%
        \uncoverrow{\value{coveredRows} -}{#1}{#2}{#3}
    }
    \newcommand{%
        \uncoverrow}[4]{\uncover<#1>{#2} & \uncover<#1>{#3} & \uncover<#1>{#4}\\
    }

\begin{frame}
    \frametitle{Plan}
    \framesubtitle{Dates}

    \centering
    \begin{tabular}{| c l c |}
        \hline
        Date    & Explanation & Week\\
        \hline\hline
        11.06. & Begin of work & 24\\
        \uncoverrowauto{11.06.}{Begin of subtask one}{24}
        \uncoverrowauto{22.06.}{End of subtask one}{25}
        25.06.& Mile stone of work & 26\\
        \uncoverrowauto{25.06.}{Begin of subtask two}{26}
        \uncoverrowauto{29.06.}{End of subtask two}{26}
        \uncoverrowauto{02.07.}{Begin of subtask three}{27}
        \uncoverrowauto{30.07.}{Begin of subtask four}{31}
        \uncoverrowauto{03.08.}{End of subtask four}{31}
        \uncoverrowauto{17.08.}{End of subtask three}{33}
        \uncoverrowauto{24.08.}{Planned end of work}{34}
        03.09. & End of work & 36\\
        \hline
    \end{tabular}

\end{frame}
\end{document}

唯一的问题是,现在行的第一个单元格有一个前导空格。因此我个人会删除这两个命令定义中的空格。但我不确定是否有更好的方法,而不会破坏格式。

编辑

我插入了%上面的示例来解决前导空格的问题。

相关内容