在 Beamer 中使用覆盖时,停止 tcolorbox 中的计数器增量

在 Beamer 中使用覆盖时,停止 tcolorbox 中的计数器增量

我使用 Beamer 中 tcolorbox 包中的 \newtcbtheorem 定义了两个新定理,myexample 和 myexercise。我在新定理中加入了覆盖(例如 \pause、\uncover<2+>{ ... } 等)。

1)我希望能够“点击”过去\pause、\uncover 等,而无需增加定理计数器。

2) 在幻灯片 1 上,似乎两个新定理有单独的计数器(正如我希望的那样),但是当我“单击”过 \pause 到示例定理中的幻灯片 2 时,示例和练习定理的计数器都会递增。(解决我的第一个问题可能会解决第二个问题?)

我曾尝试实现计数器,但显然没有搞清楚计数器的作用,因为它们没有达到我的期望(尽管它们确实编译时没有错误)。我已将它们注释掉,但您可以看到我试图做什么。

\documentclass[mathserif]{beamer}
\usepackage[most]{tcolorbox}
\newtcbtheorem{myexample}{Example}{}{exam}
\newtcbtheorem{myexercise}{Exercise}{}{exer}

%\newcounter{examplecounter}

\begin{document}
\begin{frame}{}
  \begin{myexample}{}{}
    %\setcounter{examplecounter}{\thetcbcounter}
    Example 1, part A \theexamplecounter \par
    \uncover<2->{
      %\setcounter{\tcbcounter}{\theexamplecounter}
      Example 1, part B
    }
  \end{myexample}

  \begin{myexample}{}{}
    Example 2
  \end{myexample}

  \begin{myexercise}{}{}
    Exercise 1
  \end{myexercise}

\end{frame}
\end{document}

欢迎提出任何建议。谢谢 :)

答案1

该宏\tcbcounter包含当前计数器的名称,该名称与上下文相关。请注意myexamplemyexercise具有不同的计数器。

\documentclass[mathserif]{beamer}
\usepackage[most]{tcolorbox}
\newtcbtheorem{myexample}{Example}{}{exam}
\newtcbtheorem{myexercise}{Exercise}{}{exer}

\resetcounteronoverlays{tcb@cnt@myexample}
\resetcounteronoverlays{tcb@cnt@myexercise}

\begin{document}

\begin{frame}{}
  \begin{myexample}{}{}
    \tcbcounter\newline
    Example 1, part A \thetcbcounter \par
    \uncover<2->{
      Example 1, part B
    }
  \end{myexample}

  \begin{myexample}{}{}
    Example 2
  \end{myexample}

  \begin{myexercise}{}{}
    \tcbcounter\newline
    Exercise 1
  \end{myexercise}

\end{frame}
\end{document}

相关内容