Я пытаюсь создать новую нумерованную definition
среду на основе exampleblock
, но она работает не так, как ожидалось.
Мой код:
% !TEX program = xelatex
\documentclass[serif, compress]{beamer}
\usetheme{Warsaw}
\useoutertheme{miniframes}
\begin{document}
\newcounter{definition}
\renewenvironment{definition}[1][]
{\stepcounter{definition}\begin{exampleblock}{Definition\,\arabic{definition}}}
{\end{exampleblock}}
\begin{frame}
\onslide<1->
\begin{definition}
qwq1 % expected to be "Definition 1"
\end{definition}
\onslide<2->
\begin{definition}
qwq2 % expected to be "Definition 2"
\end{definition}
\end{frame}
\end{document}
Однако слайд выглядит так
Может ли кто-нибудь показать мне, как правильно использовать counter \onslide
?
решение1
Вместо того, чтобы пытаться изобрести велосипед, просто используйте встроенную definition
среду Beamers и активируйте числа теорем:
\documentclass{beamer}
\setbeamertemplate{theorems}[numbered]
\begin{document}
\begin{frame}
\begin{definition}<1->
qwq1 % expected to be "Definition 1"
\end{definition}
\begin{definition}<2->
qwq2 % expected to be "Definition 2"
\end{definition}
\end{frame}
\end{document}
Если вас раздражает синий цвет этого definition
окружения, его можно изменить следующим образом:
\documentclass{beamer}
\setbeamertemplate{theorems}[numbered]
\BeforeBeginEnvironment{definition}{%
\setbeamercolor{block title}{fg=white,bg=example text.fg!75!black}
\setbeamercolor{block body}{fg=black, bg=block title.bg!10!bg}
}
\AfterEndEnvironment{definition}{
\setbeamercolor{block title}{use=structure,fg=white,bg=structure.fg!75!black}
\setbeamercolor{block body}{parent=normal text,use=block title,bg=block title.bg!10!bg}
}
\begin{document}
\begin{frame}
\begin{definition}<1->
qwq1 % expected to be "Definition 1"
\end{definition}
\begin{definition}<2->
qwq2 % expected to be "Definition 2"
\end{definition}
\end{frame}
\end{document}